Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
127e415
Vectorize point observations and add feature observations
ptgrogan Oct 25, 2026
ecc48c3
Add sample sizes of observations
ptgrogan Oct 25, 2026
920f61f
Add conical sample sizes and use sample sizes in the OSSE examples
ptgrogan Oct 25, 2026
f381e34
Add attitudes and attitude schedules of space systems
ptgrogan Oct 25, 2026
fc2f281
Add target pointing attitudes of space systems
ptgrogan Oct 25, 2026
ca86571
Use attitudes and target pointing in validation notebooks
ptgrogan Oct 25, 2026
147e1ef
Add scan periods of pointed instruments
ptgrogan Oct 25, 2026
af44106
Fix MODIS scan times in the drift validation
ptgrogan Oct 25, 2026
571cdcc
Add sample size and TC PRIMED feature observation validations
ptgrogan Oct 25, 2026
8b6ba59
Add sun glint modeling
ptgrogan Oct 25, 2026
bb73b0f
Model OCO-2 glint mode with GlintAttitude
ptgrogan Oct 25, 2026
fc0511b
Add glint avoidance test to the PACE OCI validation
ptgrogan Oct 25, 2026
8a1fd1d
Fix RO rising/setting labels for transmitters nearly abeam
ptgrogan Oct 25, 2026
13a8180
Add element switch times to align satellites' TLE switches
ptgrogan Oct 25, 2026
6b2aab2
Add satellite-to-satellite validations against COSMIC-2 and GRACE-FO
ptgrogan Oct 25, 2026
9b835b8
Fix grazing occultations, polar polygons, and gridded revisits
ptgrogan Oct 26, 2026
b1ceea4
Add instantaneous coincidences and closest approaches
ptgrogan Oct 26, 2026
2051aab
Add coincidence, SOCRATES, polar region, and SMAP validations
ptgrogan Oct 26, 2026
bf196e9
Merge branch 'main' of github.com:code-lab-org/tatc into grid-coverag…
ptgrogan Oct 26, 2026
739620e
apply black
ptgrogan Oct 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions CHANGELOG.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions docs/api_reference/analysis/coverage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ Compute Region Access Periods
-----------------------------
.. autofunction:: tatc.analysis.compute_region_access_periods

Compute Sample Sizes
--------------------
.. autofunction:: tatc.analysis.compute_sample_sizes

Aggregate Observations
----------------------
.. autofunction:: tatc.analysis.aggregate_observations
Expand Down
6 changes: 6 additions & 0 deletions docs/api_reference/analysis/feature_coverage.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Feature Observations
====================

Collect Feature Observations
----------------------------
.. autofunction:: tatc.analysis.collect_feature_observations
1 change: 1 addition & 0 deletions docs/api_reference/analysis/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Analysis functions simulate mission operation to compute key performance metrics
coverage
track
coincidence
feature_coverage
latency
dop
ro_coverage
Expand Down
27 changes: 27 additions & 0 deletions docs/api_reference/schemas/space.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,33 @@ Conical Instrument
.. autopydantic_model:: tatc.schemas.ConicalInstrument
:members:

Attitude
--------

.. autopydantic_model:: tatc.schemas.Attitude
:members:

Target Attitude
---------------

.. autopydantic_model:: tatc.schemas.TargetAttitude
:members:

Glint Attitude
--------------

.. autopydantic_model:: tatc.schemas.GlintAttitude
:members:

Attitude Schedule
-----------------

.. autopydantic_model:: tatc.schemas.AttitudeSchedule
:members:

.. autopydantic_model:: tatc.schemas.AttitudeSegment
:members:

Satellite
---------

Expand Down
10 changes: 10 additions & 0 deletions docs/api_reference/utils/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,14 @@ Utility Functions

.. autofunction:: tatc.utils.compute_cone_and_azimuth

.. autofunction:: tatc.utils.compute_ground_sample_size

.. autofunction:: tatc.utils.compute_ground_advance

.. autofunction:: tatc.utils.compute_specular_point

.. autofunction:: tatc.utils.compute_glint_angle

.. autoclass:: tatc.utils.VelocityFrame
:members:

Expand Down Expand Up @@ -71,6 +79,8 @@ Utility Functions

.. autofunction:: tatc.utils.compute_j2_mean_motion_rate

.. autofunction:: tatc.utils.align_element_switches

.. autofunction:: tatc.utils.compute_max_access_time

.. autofunction:: tatc.utils.compute_max_transit_time
Expand Down
8 changes: 6 additions & 2 deletions docs/examples/CollectLimb.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -12514,7 +12514,9 @@
"# embed frames as JPEG images, which are much smaller than PNG\n",
"plt.rcParams[\"animation.frame_format\"] = \"jpeg\"\n",
"\n",
"fig, ax = plt.subplots(figsize=(8, 4), dpi=72, subplot_kw={\"projection\": ccrs.PlateCarree()})\n",
"fig, ax = plt.subplots(\n",
" figsize=(8, 4), dpi=72, subplot_kw={\"projection\": ccrs.PlateCarree()}\n",
")\n",
"\n",
"frame_duration = timedelta(hours=1)\n",
"num_frames = int(duration / frame_duration)\n",
Expand All @@ -12525,7 +12527,9 @@
" time = times[0] + frame * frame_duration\n",
" orbit_track.loc[\n",
" (orbit_track.time >= time) & (orbit_track.time < time + frame_duration)\n",
" ].plot(ax=ax, marker=\".\", color=\"k\", markersize=1, lw=0, transform=ccrs.PlateCarree())\n",
" ].plot(\n",
" ax=ax, marker=\".\", color=\"k\", markersize=1, lw=0, transform=ccrs.PlateCarree()\n",
" )\n",
" frame_obs = limb_obs.loc[\n",
" (limb_obs.start >= time) & (limb_obs.start < time + frame_duration)\n",
" ]\n",
Expand Down
27 changes: 15 additions & 12 deletions docs/examples/CollectOrbitGroundTrack.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,7 @@
"fig, ax = plt.subplots(figsize=(8, 5), subplot_kw={\"projection\": ccrs.PlateCarree()})\n",
"\n",
"results.plot(\n",
" column=\"valid\",\n",
" legend=True,\n",
" cmap=\"inferno\",\n",
" ax=ax,\n",
" transform=ccrs.PlateCarree()\n",
" column=\"valid\", legend=True, cmap=\"inferno\", ax=ax, transform=ccrs.PlateCarree()\n",
")\n",
"ax.stock_img()\n",
"ax.set_global()\n",
Expand Down Expand Up @@ -558,13 +554,13 @@
"fig, ax = plt.subplots(figsize=(8, 5), subplot_kw={\"projection\": ccrs.PlateCarree()})\n",
"\n",
"results.plot(\n",
" column=\"valid\", \n",
" edgecolor=\"none\", \n",
" alpha=0.4, \n",
" legend=True, \n",
" cmap=\"inferno\", \n",
" column=\"valid\",\n",
" edgecolor=\"none\",\n",
" alpha=0.4,\n",
" legend=True,\n",
" cmap=\"inferno\",\n",
" ax=ax,\n",
" transform=ccrs.PlateCarree()\n",
" transform=ccrs.PlateCarree(),\n",
")\n",
"ax.stock_img()\n",
"ax.set_global()\n",
Expand Down Expand Up @@ -604,7 +600,14 @@
"\n",
"results = compute_ground_track(noaa20, times)\n",
"fig, ax = plt.subplots(figsize=(8, 5), subplot_kw={\"projection\": ccrs.PlateCarree()})\n",
"ax = results.plot(facecolor=\"r\", edgecolor=\"none\", alpha=0.4, zorder=1, ax=ax, transform=ccrs.PlateCarree())\n",
"ax = results.plot(\n",
" facecolor=\"r\",\n",
" edgecolor=\"none\",\n",
" alpha=0.4,\n",
" zorder=1,\n",
" ax=ax,\n",
" transform=ccrs.PlateCarree(),\n",
")\n",
"ax.stock_img()\n",
"ax.set_global()\n",
"plt.show()"
Expand Down
Loading
Loading