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.31
, Leap_Second.dat
, deltat.data
dan deltat.preds
file 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 skyfield
loader 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=True
sebagai 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 expire
opsi 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-data
jalur:
>>> 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 RuntimeWarning
akan 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_limit
argumen 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_limit
harus berupa bilangan bulat positif (atau nol).
Pengembang
Kami berasumsi Anda akan menggunakan versi Python3.7+ untuk semua operasi rutin.
Kami menyediakan beberapa Makefile
target dasar untuk bermain-main dengan perangkat ini. gunakan make help
untuk mendapatkan rincian lebih lanjut.
Agar dapat menjalankan download.py
skrip 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 skyfield
. Meskipun 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-data
Anda harus memiliki setidaknya virtualenv yang tox
terinstal 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:
Hak cipta
berkas data
de421.bsp
disediakan oleh Laboratorium Propulsi Jet ,finals2000A.all
disediakan oleh Layanan Sistem Rotasi dan Referensi Bumi Internasional .
Perangkat lunak
Kode Paket Python ini diterbitkan berdasarkan ketentuan lisensi MIT. Lihat COPYING
berkas 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.
- Salin Kodenya: Salin seluruh kode program dari link https://falakmu.id/skyfield/sf_1.py.
- Buka Online Interpreter: Kunjungi situs web yang menyediakan interpreter Python online, seperti:
- Tempel dan Jalankan: Tempelkan kode yang sudah Anda salin ke area editor di situs online tersebut. Cari tombol “Run” atau “Execute” dan klik. Interpreter online akan menjalankan kode tersebut (jika library
skyfield
tersedia di lingkungan mereka) dan menampilkan hasilnya.
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.