SKYFIELD – Python untuk Astronomi yang Akurat

Link Website SKYFIELD

Skyfield adalah pustaka Python untuk perhitungan astronomi. Ia bergantung pada berbagai berkas data untuk menghitung fase bulan, posisi planet, dll. secara akurat.

Beberapa masalah muncul akibat berkas data ini:

  • Jika tidak ditemukan di jalur Loader, file tersebut akan diunduh saat runtime . Bergantung pada arsip yang Anda minta, beberapa file mungkin berukuran sangat besar, yang menyebabkan penundaan yang lama (berhubungan langsung dengan lebar pita jaringan Anda). Dalam kasus aplikasi server web, Anda akan menyebabkan batas waktu di sisi klien.
  • Data tersebut sebagian besar berasal dari 2 sumber: JPL milik NASA dan IERS. Jika salah satu dari keduanya tidak tersedia untuk sementara , Anda tidak dapat melakukan perhitungan apa pun.
  • Di beberapa negara, atau di balik beberapa proxy penyaringan, beberapa host mungkin diblokir .
  • File-file ini memiliki tanggal kedaluwarsa (di masa depan yang lebih atau kurang jauh). Akibatnya, meskipun file-file tersebut sudah diunduh di jalur yang benar, pada setiap waktu proses Anda mungkin harus mengunduh satu atau beberapa file sebelum melakukan perhitungan apa pun menggunakan file-file tersebut.

Tanggal kedaluwarsa yang diketahui saat ini

Mengajukan Tanggal
final2000A.semua Tanggal 16 Juni 2024
de421.bsp tanggal 08-10-2053

Peringatan penghentian : Sejak python-skyfield>=1.31Leap_Second.datdeltat.datadan deltat.predsfile tidak digunakan lagi. File-file tersebut tidak lagi dikelola, dan Brandon Rhodes beralih ke file sumber lain untuk perhitungan ∆T.

Tujuan dari proyek ini

  • Menyediakan setidaknya aset yang paling umum dalam Paket Python.
  • Lakukan rilis berkala untuk menyegarkan berkas sebelum kedaluwarsa.
  • Berikan mekanisme peringatan/pencatatan saat file akan kedaluwarsa (atau saat file sudah ketinggalan zaman) agar Anda tetap dapat menghitung berbagai hal dengan aset yang dimuat, tetapi dengan pemberitahuan bahwa Anda perlu memutakhirkan.

Dengan cara ini, Anda dapat menginstal atau memutakhirkan paket data ini melalui pip.

Setelah semua berkas berada pada ruang disk Anda, Anda dapat membuat skyfieldloader yang menunjuk ke jalur berkas tersebut, tanpa perlu khawatir tentang apa pun.

Penggunaan

Instal paket menggunakan:

pip  install  skyfield  skyfield-data

Untuk membuat loader Skyfield khusus, gunakan kode berikut:

dari  skyfield_data  impor  get_skyfield_data_path 
dari  skyfield.api  impor  Loader 
load  =  Loader ( get_skyfield_data_path ()) 
planets  =  load ( 'de421.bsp' )   # perintah ini tidak akan mengunduh file ini 
ts  =  load . timescale ( builtin = False )   # perintah ini tidak akan mengunduh file IERS

Sebagai catatan, menggunakan buitin=Truesebagai argumen untuk memuat data skala waktu tidak akan memicu pengunduhan berkas, karena python-skyfield menyematkan berkas datanya sendiri sebagai sumber data bawaan.

Jika Anda ingin memastikan bahwa berkas data tidak akan pernah diunduh, Anda juga dapat menggunakan expireopsi seperti ini:

muat  =  Loader ( get_skyfield_data_path (),  kedaluwarsa = Salah )

Setiap kali file yang terdapat dalam katalog telah kedaluwarsa, Anda akan menerima peringatan saat memuat skyfield-datajalur:

>>>  from  skyfield_data  import  get_skyfield_data_path 
>>>  from  skyfield.api  import  Loader 
>>>  load  =  Loader ( get_skyfield_data_path ( 
) ) / home / [ redacted ] / skyfield_data / expires.py : 25 : RuntimeWarning : File de421 .bsp telah kedaluwarsa . Harap tingkatkan versi ` skyfield - data ` Anda atau perkirakan kesalahan komputasi RuntimeWarning                
  

Secara default, pemuatan tidak diblokir, tetapi sangat disarankan untuk memperbarui ke versi yang lebih baru, untuk memastikan Anda tidak akan membuat perhitungan astronomi yang salah.

Batasan khusus

Secara default, peringatan RuntimeWarningakan muncul saat file telah kedaluwarsa. Anda mungkin ingin mengetahui peringatan ini sebelumnya , yaitu beberapa hari atau minggu sebelumnya, agar dapat meningkatkan versi skyfield-data.

Untuk memicu peringatan ini, Anda dapat menggunakan expiration_limitargumen seperti ini:

>>>  from  skyfield_data  import  get_skyfield_data_path 
>>>  from  skyfield.api  import  Loader 
>>>  load  =  Loader ( get_skyfield_data_path ( batas_kedaluwarsa = 30 ) ) 
/ home / [ disunting ] / skyfield_data / kedaluwarsa .py : 25 : RuntimeWarning : File de421 .bsp akan kedaluwarsa dalam waktu kurang dari 30 hari . Harap tingkatkan versi ` skyfield - data ` Anda atau perkirakan kesalahan komputasi RuntimeWarning                     
  

Catatan: Argumen expiration_limitharus berupa bilangan bulat positif (atau nol).

Pengembang

Kami berasumsi Anda akan menggunakan versi Python3.7+ untuk semua operasi rutin.

Kami menyediakan beberapa Makefiletarget dasar untuk bermain-main dengan perangkat ini. gunakan make helpuntuk mendapatkan rincian lebih lanjut.

Agar dapat menjalankan download.pyskrip tersebut, kami sarankan untuk menjalankannya dari virtualenv tempat Anda menginstal dependensi “dev”, menggunakan:

buat  install-dev

Kompatibilitas Python

Penting: Proyek ini kompatibel dengan Python 2.6, 2.7, dan Python 3.7+ hingga 3.11, agar kompatibilitas Python tetap sama skyfieldMeskipun demikian , perubahan terbaru pada gambar Github telah mempersulit untuk memastikan bahwa proyek ini masih kompatibel. Kami mohon maaf atas ketidaknyamanan ini.

Peretasan

Untuk meningkatkan atau memperbaiki, skyfield-dataAnda harus memiliki setidaknya virtualenv yang toxterinstal di dalamnya.

Kami akan meminta Anda untuk menambahkan pengujian sepanjang patch Anda, untuk memastikan bahwa tidak ada kemunduran atau bug yang akan diperkenalkan oleh patch Anda atau patch-patch selanjutnya.

Untuk melakukan pengujian cepat dan mudah, di dalam virtualenv “tox-ready” Anda, jalankan:

membuat tes 

untuk meluncurkan pekerjaan pengujian Python 2.7 dan Python 3.7+.

Jika Anda ingin menguji cabang Anda terhadap Python 2.6, Anda harus menyiapkan lingkungan tox yang siap untuk Python 2.6, dengan melakukan sesuatu yang mirip dengan:

sudo  apt  install  python2.6  python2.6-dev # header dev untuk mengkompilasi numpy 
mkvirtualenv TOX26 --python = ` which python2.6 ` # Anda akan mengaktifkan venv ini dengan `workon TOX26` 
pip install tox         
racun  -c  tox-py26.ini

Masalah yang diketahui : di Ubuntu, Anda mungkin tidak dapat membuat numpy saat ini, karena file header C yang salah tempat di sistem Anda. Saya mengalami masa-masa sulit di Ubuntu, tetapi pengalaman Anda mungkin berbeda.

Catatan: Saat ini, kami tidak dapat membuktikan bahwa skyfield-data 100% kompatibel dengan Python 2.6, karena CI yang sudah tidak berfungsi. Meskipun demikian, kami cukup yakin demikian. Semoga berhasil!

CI daring dengan Travis & Circle-CI

CI online bergantung pada Github Actions:

Tes

Hak cipta

berkas data

  • de421.bspdisediakan oleh Laboratorium Propulsi Jet ,
  • finals2000A.alldisediakan oleh Layanan Sistem Rotasi dan Referensi Bumi Internasional .

Perangkat lunak

Kode Paket Python ini diterbitkan berdasarkan ketentuan lisensi MIT. Lihat COPYINGberkas untuk keterangan lebih lanjut.


Link Website SKYFIELD


Cara menjalankan file python secara online

Gunakan Online Python Interpreter: Jika Anda tidak ingin menginstal Python di komputer Anda, Anda bisa menggunakan layanan online.

Jadi, intinya adalah Anda perlu menjalankan kode Python di lingkungan yang memiliki interpreter Python, bukan langsung dari link URL di browser. Metode menjalankan secara lokal di komputer Anda adalah cara yang paling umum dan direkomendasikan jika Anda akan sering bekerja dengan Python.

Leave a Reply

Your email address will not be published. Required fields are marked *