Commit Graph

1656 Commits

Author SHA1 Message Date
Brandon Rhodes 9c1faa95d1 Try unittest.mock before third-party mock library 2020-07-22 10:28:23 -04:00
Brandon Rhodes dda2b2f1a4 Add CHANGELOG entry 2020-07-22 08:59:09 -04:00
Brandon Rhodes a8e66742b4 Fix #409 ts.utc() would die if given a date object
The routine would die because `combine()` is a class method, not a
module method; and because it needed a timezone.  A test is here added
to keep the feature fixed.  Also, the timelib module used `dt` for the
`datetime` module but also sometimes as a convenient local name for a
`datetime`, so let’s rename the module to `dt_module` for readability
and consistency.  Inspired by the attempted fix in #410.
2020-07-22 08:46:49 -04:00
Brandon Rhodes 0af8e01b4a Switch to faster read_csv() for Hipparcos catalog
Yes, it has fixed-width fields, but Pandas is slow at importing those,
so we take advantage of the fact that it also has delimiters!
2020-07-21 07:19:22 -04:00
Brandon Rhodes a7c2794b60 Convert docs entirely over to using plt.subplots()
This eliminates repeated deprecation warnings when rendering the docs:

```
MatplotlibDeprecationWarning: Adding an axes using the same arguments as
a previous axes currently reuses the earlier instance.  In a future
version, a new instance will always be created and returned.  Meanwhile,
this warning can be suppressed, and the future behavior ensured, by
passing a unique label to each axes instance.
```
2020-07-21 06:21:16 -04:00
Brandon Rhodes 9462af0f4e Declare version 1.24 2020-07-20 21:40:23 -04:00
Brandon Rhodes cf94de371d Discover how to make ITRF->GCRS very high accuracy
But don’t turn it on by default because, wow, it’s expensive!
2020-07-20 21:29:25 -04:00
Brandon Rhodes d2e0549601 Make the Earth rotation angle vastly more precise 2020-07-20 12:01:25 -04:00
Brandon Rhodes 0099c353e7 Improve precision of sidereal time equinox method
This does not affect any tests, but seems worth carrying through as I am
otherwise trying to improve precision in Earth rotation.
2020-07-19 06:06:02 -04:00
Brandon Rhodes 43fdb7bc9d Note the units of a few constants 2020-07-19 05:38:44 -04:00
Brandon Rhodes bba1f8bc94 For #350, add a long-term TODO item 2020-07-17 11:12:46 -04:00
Brandon Rhodes a7f8863d6b Add CHANGELOG entries for new ts.from_datetime() 2020-07-17 10:09:03 -04:00
Brandon Rhodes 24b0ac3700 For #406, add Time constructors from datetimes
This was previously an implicit power of `ts.utc()` which was more
difficult for users to find.
2020-07-17 09:41:48 -04:00
Brandon Rhodes d23ce4e1ee For #406, mention more modern timezone sources 2020-07-17 08:18:50 -04:00
Brandon Rhodes b8fdc4dc4a For #407, explain that open() does not re-download 2020-07-17 06:08:15 -04:00
Brandon Rhodes 5d17b96fcb Lock in velocity accuracy with an actual test 2020-07-17 05:55:34 -04:00
Brandon Rhodes 3c5b869131 Fix order of operations in ITRF_to_GCRS2()
Because two components of the position vector are used to finish
building the velocity vector, it was a mistake to rotate the position
vector using the M matrix until after the velocity vector has also been
built.  This increases by almost two magnitudes the agreement between
Earth satellite reported velocities and the actual difference between
their successive positions.
2020-07-16 16:31:02 -04:00
Brandon Rhodes d5736b1832 Fix docs: slight change in satellite numbers 2020-07-16 06:09:07 -04:00
Brandon Rhodes aff3731cf7 Use JD whole + fraction when computing GMST1982
This eliminates one source of noise as I dive into why Skyfield
satellite velocities do not hew as closely to actual satellite motion as
they do when the underlying sgp4 library is used alone.
2020-07-16 05:53:22 -04:00
Brandon Rhodes d2b105d6a0 Extend two-float precision to how UT1 is stored 2020-07-15 06:24:48 -04:00
Brandon Rhodes da2e1fd735 Make TEME→ITRF test 20,000 times more sensitive
It turns out I was somehow being hamfisted in how I built the Julian
date to pass to `TEME_to_ITRF()` in the test.  By building the Julian
date manually, without going through a `Time` object, I can produce far
more exactly the quantities specified in AIAA-2006-6753 Appendix C.
2020-07-14 15:44:55 -04:00
Brandon Rhodes af622b7f69 Add another TODO item, for making API friendlier 2020-07-14 15:38:40 -04:00
Brandon Rhodes 87f4611030 Remove some old comment debris 2020-07-13 05:13:57 -04:00
Brandon Rhodes 72ff2c2348 For #402, try describing each axis of ICRS 2020-07-09 21:09:29 -04:00
Brandon Rhodes 2c13217b05 Update Positions doc: we now do comets, asteroids 2020-07-09 20:45:44 -04:00
Brandon Rhodes 1e7a7a0b58 Update Circular 179 link, and save it just in case 2020-07-09 20:21:18 -04:00
Brandon Rhodes 43bb53036d Remove old Keplerian library
With thanks to its author, @hoylemd, for this early prototype!
2020-07-09 19:31:46 -04:00
Brandon Rhodes 4fb5e7a9f4 Fix a :doc: link in documentation 2020-07-09 19:31:06 -04:00
Brandon Rhodes b4efc4f06a Update changelog and declare 1.23 2020-07-09 15:11:05 -04:00
Brandon Rhodes 1bec4666f2 Fix CI: only run pyflakes if already installed 2020-07-09 15:02:52 -04:00
Brandon Rhodes dbd2d3c9ec Start running pyflakes locally again; and, fixes 2020-07-09 14:56:57 -04:00
Brandon Rhodes fa8fdc2315 Remove internal round-trips through unit objects 2020-07-09 14:51:43 -04:00
Brandon Rhodes 3f2b8a6941 Have comet and minor planet orbits take GM as arg
This replaces the flawed design where GM is a hidden parameter, which
would put Skyfield in a bad position when a higher precision estimate
for GM became available: Skyfield would have had to choose between
keeping the old value for compatibility (maybe with a way to supply an
updated value instead), or updating the value and suddenly having the
new version of Skyfield give different results.  Instead, each user’s
program will now make explicit its choice of constant.
2020-07-09 14:18:09 -04:00
Brandon Rhodes c39c67a051 Move all MPC-specific knowledge into "mpc" module 2020-07-09 11:30:54 -04:00
Brandon Rhodes f8af2591c5 Document minor planet orbits; many tweaks 2020-07-08 06:26:51 -04:00
Brandon Rhodes 8a0a60fd6a Sample script for filtering the MPCORB file 2020-07-07 21:05:24 -04:00
Brandon Rhodes 5f655a517e Commit a copy of CometEls.txt for CI to use 2020-07-07 15:17:52 -04:00
Brandon Rhodes b14185584e Document how to generate a comet position 2020-07-07 14:15:04 -04:00
Brandon Rhodes 872583504c Rewrite comet import with RE-powered CSV transform
Nearly as fast as the previous “fast” version, but (a) this one never
gets the wrong values in the wrong columns, and (b) it returns the full
names instead of the awkward packed designations.
2020-07-07 13:42:58 -04:00
Brandon Rhodes b254335063 Fix #395 by making Time objects hashable 2020-07-02 12:47:07 -04:00
Brandon Rhodes d67462be78 Fix docstring of Geocentric to name GCRS, not ITRF 2020-07-01 13:53:24 -04:00
Brandon Rhodes ba1172a0cc Add some TODO items inspired by a Stack Overflow Q 2020-07-01 12:29:25 -04:00
Brandon Rhodes a59e0d8796 Use packed designation for minor planet target 2020-06-17 16:06:47 -04:00
Brandon Rhodes 0249ff9c68 Move unpacking into a separate function 2020-06-17 15:59:52 -04:00
Brandon Rhodes 393deb3df6 Try unpacking comet designation automatically 2020-06-17 15:50:17 -04:00
Brandon Rhodes f24edc2c61 Give comet objects a string target as well 2020-06-17 15:09:35 -04:00
Brandon Rhodes 8cf61540c6 Use minor planet name as its "target" value 2020-06-17 12:23:51 -04:00
Brandon Rhodes 77564f8b23 Fix an unused import 2020-06-17 11:11:51 -04:00
Brandon Rhodes 733185e07e First successful test of a minor planet position! 2020-06-17 11:06:11 -04:00
Brandon Rhodes f9e854c029 Expand test to both comet import routines 2020-06-16 16:28:03 -04:00