pycontrails 0.55.0__tar.gz → 0.56.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pycontrails might be problematic. Click here for more details.

Files changed (285) hide show
  1. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/workflows/docs.yaml +1 -1
  2. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/workflows/doctest.yaml +1 -1
  3. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/workflows/test.yaml +1 -1
  4. {pycontrails-0.55.0 → pycontrails-0.56.0}/.zenodo.json +8 -3
  5. {pycontrails-0.55.0 → pycontrails-0.56.0}/CHANGELOG.md +19 -0
  6. {pycontrails-0.55.0 → pycontrails-0.56.0}/Makefile +1 -0
  7. {pycontrails-0.55.0/pycontrails.egg-info → pycontrails-0.56.0}/PKG-INFO +3 -1
  8. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/api.rst +3 -0
  9. pycontrails-0.56.0/docs/notebooks/Sentinel.ipynb +961 -0
  10. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/_version.py +3 -3
  11. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/airports.py +1 -1
  12. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/cache.py +3 -3
  13. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/fleet.py +1 -1
  14. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/flight.py +47 -43
  15. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/met_var.py +1 -1
  16. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/rgi_cython.c +152 -152
  17. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/vector.py +28 -30
  18. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/landsat.py +49 -26
  19. pycontrails-0.56.0/pycontrails/datalib/leo_utils/__init__.py +5 -0
  20. pycontrails-0.56.0/pycontrails/datalib/leo_utils/correction.py +266 -0
  21. pycontrails-0.56.0/pycontrails/datalib/leo_utils/landsat_metadata.py +300 -0
  22. {pycontrails-0.55.0/pycontrails/datalib/_leo_utils → pycontrails-0.56.0/pycontrails/datalib/leo_utils}/search.py +1 -1
  23. pycontrails-0.56.0/pycontrails/datalib/leo_utils/sentinel_metadata.py +748 -0
  24. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/sentinel.py +236 -93
  25. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/dry_advection.py +1 -1
  26. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/extended_k15.py +8 -8
  27. {pycontrails-0.55.0 → pycontrails-0.56.0/pycontrails.egg-info}/PKG-INFO +3 -1
  28. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails.egg-info/SOURCES.txt +7 -3
  29. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails.egg-info/requires.txt +2 -0
  30. {pycontrails-0.55.0 → pycontrails-0.56.0}/pyproject.toml +3 -1
  31. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_apcemm.py +1 -1
  32. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_datalib_metsource.py +1 -1
  33. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_fleet.py +1 -1
  34. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_leo.py +5 -5
  35. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_met.py +5 -5
  36. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_models.py +2 -2
  37. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_ps_model.py +2 -2
  38. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_utils.py +1 -1
  39. pycontrails-0.55.0/docs/notebooks/Sentinel.ipynb +0 -853
  40. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  41. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  42. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/dependabot.yaml +0 -0
  43. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/pull_request_template.md +0 -0
  44. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/workflows/release.yaml +0 -0
  45. {pycontrails-0.55.0 → pycontrails-0.56.0}/.github/workflows/scorecard.yaml +0 -0
  46. {pycontrails-0.55.0 → pycontrails-0.56.0}/.gitignore +0 -0
  47. {pycontrails-0.55.0 → pycontrails-0.56.0}/.pre-commit-config.yaml +0 -0
  48. {pycontrails-0.55.0 → pycontrails-0.56.0}/CONTRIBUTING.md +0 -0
  49. {pycontrails-0.55.0 → pycontrails-0.56.0}/LICENSE +0 -0
  50. {pycontrails-0.55.0 → pycontrails-0.56.0}/NOTICE +0 -0
  51. {pycontrails-0.55.0 → pycontrails-0.56.0}/README.md +0 -0
  52. {pycontrails-0.55.0 → pycontrails-0.56.0}/RELEASE.md +0 -0
  53. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/_static/css/style.css +0 -0
  54. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/_static/img/colab.png +0 -0
  55. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/_static/img/favicon.png +0 -0
  56. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/_static/img/logo-dark.png +0 -0
  57. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/_static/img/logo.png +0 -0
  58. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/_static/pycontrails.bib +0 -0
  59. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/changelog.rst +0 -0
  60. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/conf.py +0 -0
  61. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/contributing.rst +0 -0
  62. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/develop.rst +0 -0
  63. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/flight.rst +0 -0
  64. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/index.rst +0 -0
  65. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/install.rst +0 -0
  66. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/integrations/ACCF.ipynb +0 -0
  67. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/integrations/APCEMM.ipynb +0 -0
  68. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/literature.rst +0 -0
  69. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/meteorology.rst +0 -0
  70. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/models.rst +0 -0
  71. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
  72. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/AircraftPerformance.ipynb +0 -0
  73. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/Cache.ipynb +0 -0
  74. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/CoCiP.ipynb +0 -0
  75. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/CoCiPGrid.ipynb +0 -0
  76. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/ECMWF.ipynb +0 -0
  77. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/Flight.ipynb +0 -0
  78. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/GFS.ipynb +0 -0
  79. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/GOES.ipynb +0 -0
  80. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/ISSR.ipynb +0 -0
  81. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/Landsat.ipynb +0 -0
  82. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/Meteorology.ipynb +0 -0
  83. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/SAC.ipynb +0 -0
  84. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/advection.ipynb +0 -0
  85. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/airports.ipynb +0 -0
  86. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/.gitignore +0 -0
  87. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/flight-ap.csv +0 -0
  88. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/flight-cocip.csv +0 -0
  89. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/flight-fdr.csv +0 -0
  90. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/flight-noisy.csv +0 -0
  91. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/flight.csv +0 -0
  92. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
  93. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
  94. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/flightplan.ipynb +0 -0
  95. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/model-levels.ipynb +0 -0
  96. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
  97. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
  98. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
  99. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/notebooks.rst +0 -0
  100. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/observations.rst +0 -0
  101. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/tutorials.rst +0 -0
  102. {pycontrails-0.55.0 → pycontrails-0.56.0}/docs/utilities.rst +0 -0
  103. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/__init__.py +0 -0
  104. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/__init__.py +0 -0
  105. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/aircraft_performance.py +0 -0
  106. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/coordinates.py +0 -0
  107. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/flightplan.py +0 -0
  108. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/fuel.py +0 -0
  109. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/interpolation.py +0 -0
  110. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/met.py +0 -0
  111. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/models.py +0 -0
  112. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/polygon.py +0 -0
  113. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/core/rgi_cython.pyx +0 -0
  114. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/__init__.py +0 -0
  115. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/_met_utils/metsource.py +0 -0
  116. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/__init__.py +0 -0
  117. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/arco_era5.py +0 -0
  118. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/common.py +0 -0
  119. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/era5.py +0 -0
  120. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/era5_model_level.py +0 -0
  121. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/hres.py +0 -0
  122. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/hres_model_level.py +0 -0
  123. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/ifs.py +0 -0
  124. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/model_levels.py +0 -0
  125. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
  126. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/variables.py +0 -0
  127. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/gfs/__init__.py +0 -0
  128. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/gfs/gfs.py +0 -0
  129. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/gfs/variables.py +0 -0
  130. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/goes.py +0 -0
  131. {pycontrails-0.55.0/pycontrails/datalib/_leo_utils → pycontrails-0.56.0/pycontrails/datalib/leo_utils}/static/bq_roi_query.sql +0 -0
  132. {pycontrails-0.55.0/pycontrails/datalib/_leo_utils → pycontrails-0.56.0/pycontrails/datalib/leo_utils}/vis.py +0 -0
  133. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/spire/__init__.py +0 -0
  134. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/spire/exceptions.py +0 -0
  135. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/datalib/spire/spire.py +0 -0
  136. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/ext/bada.py +0 -0
  137. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/ext/cirium.py +0 -0
  138. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/ext/empirical_grid.py +0 -0
  139. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/ext/synthetic_flight.py +0 -0
  140. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/__init__.py +0 -0
  141. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/accf.py +0 -0
  142. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/apcemm/__init__.py +0 -0
  143. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/apcemm/apcemm.py +0 -0
  144. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/apcemm/inputs.py +0 -0
  145. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
  146. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/apcemm/utils.py +0 -0
  147. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/__init__.py +0 -0
  148. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/cocip.py +0 -0
  149. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/cocip_params.py +0 -0
  150. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
  151. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/contrail_properties.py +0 -0
  152. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/output_formats.py +0 -0
  153. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/radiative_forcing.py +0 -0
  154. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/radiative_heating.py +0 -0
  155. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
  156. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/wake_vortex.py +0 -0
  157. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocip/wind_shear.py +0 -0
  158. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocipgrid/__init__.py +0 -0
  159. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
  160. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
  161. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/__init__.py +0 -0
  162. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/black_carbon.py +0 -0
  163. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/emissions.py +0 -0
  164. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/ffm2.py +0 -0
  165. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
  166. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
  167. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
  168. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/__init__.py +0 -0
  169. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
  170. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
  171. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
  172. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/issr.py +0 -0
  173. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/pcc.py +0 -0
  174. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/pcr.py +0 -0
  175. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/__init__.py +0 -0
  176. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
  177. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_grid.py +0 -0
  178. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_model.py +0 -0
  179. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
  180. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv +0 -0
  181. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv +0 -0
  182. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/sac.py +0 -0
  183. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/models/tau_cirrus.py +0 -0
  184. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/__init__.py +0 -0
  185. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/constants.py +0 -0
  186. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/geo.py +0 -0
  187. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/jet.py +0 -0
  188. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/static/iata-cargo-load-factors-20250221.csv +0 -0
  189. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/static/iata-passenger-load-factors-20250221.csv +0 -0
  190. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/thermo.py +0 -0
  191. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/physics/units.py +0 -0
  192. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/py.typed +0 -0
  193. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/utils/__init__.py +0 -0
  194. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/utils/dependencies.py +0 -0
  195. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/utils/iteration.py +0 -0
  196. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/utils/json.py +0 -0
  197. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/utils/temp.py +0 -0
  198. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails/utils/types.py +0 -0
  199. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails.egg-info/dependency_links.txt +0 -0
  200. {pycontrails-0.55.0 → pycontrails-0.56.0}/pycontrails.egg-info/top_level.txt +0 -0
  201. {pycontrails-0.55.0 → pycontrails-0.56.0}/setup.cfg +0 -0
  202. {pycontrails-0.55.0 → pycontrails-0.56.0}/setup.py +0 -0
  203. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/__init__.py +0 -0
  204. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/_deprecated.py +0 -0
  205. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/Makefile +0 -0
  206. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/README.md +0 -0
  207. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/benchmark.py +0 -0
  208. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/compare.py +0 -0
  209. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/data.md +0 -0
  210. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/output.py +0 -0
  211. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip/review.ipynb +0 -0
  212. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/cocip-fortran/README.md +0 -0
  213. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
  214. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/README.md +0 -0
  215. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/support.py +0 -0
  216. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/validate.py +0 -0
  217. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/fixtures/cocip-met.py +0 -0
  218. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/fixtures/cocip-met2.py +0 -0
  219. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/fixtures/ecmwf-met.py +0 -0
  220. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/fixtures/gfs-met.py +0 -0
  221. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/__init__.py +0 -0
  222. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/conftest.py +0 -0
  223. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
  224. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/cocip-contrail-output.json +0 -0
  225. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/cocip-contrail-output2.json +0 -0
  226. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/cocip-flight-output.json +0 -0
  227. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/cocip-flight-output2.json +0 -0
  228. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
  229. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
  230. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/flight-cocip2.csv +0 -0
  231. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/flight-meridian.csv +0 -0
  232. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/flight-metadata.json +0 -0
  233. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
  234. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/flight.csv +0 -0
  235. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
  236. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-20190101-eu.nc +0 -0
  237. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-accf-pl.nc +0 -0
  238. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-accf-sl.nc +0 -0
  239. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
  240. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-ml.nc +0 -0
  241. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-pl.nc +0 -0
  242. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-sl.nc +0 -0
  243. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-era5-cocip1.nc +0 -0
  244. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-era5-cocip2.nc +0 -0
  245. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/met-gfs.nc +0 -0
  246. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/polygon-bug.nc +0 -0
  247. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/rad-20190101-eu.nc +0 -0
  248. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/rad-era5-cocip1.nc +0 -0
  249. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/rad-era5-cocip2.nc +0 -0
  250. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/static/rad-gfs.nc +0 -0
  251. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_accf.py +0 -0
  252. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_airports.py +0 -0
  253. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_cache.py +0 -0
  254. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_cocip.py +0 -0
  255. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_cocip_grid.py +0 -0
  256. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_cocip_grid_parity.py +0 -0
  257. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_cocip_radiative_forcing.py +0 -0
  258. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_cocip_uncertainty.py +0 -0
  259. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_coordinates.py +0 -0
  260. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_dry_advection.py +0 -0
  261. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_dtypes.py +0 -0
  262. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_ecmwf.py +0 -0
  263. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_emissions.py +0 -0
  264. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_flight.py +0 -0
  265. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_flightplan.py +0 -0
  266. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_fuel.py +0 -0
  267. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_geo.py +0 -0
  268. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_gfs.py +0 -0
  269. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_goes.py +0 -0
  270. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_grid_to_netcdf.py +0 -0
  271. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_humidity_scaling.py +0 -0
  272. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_init.py +0 -0
  273. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_interpolation.py +0 -0
  274. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_met_cache.py +0 -0
  275. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_pcc.py +0 -0
  276. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_polygons.py +0 -0
  277. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_sac_issr.py +0 -0
  278. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_spire.py +0 -0
  279. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_tau_cirrus.py +0 -0
  280. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_thermo_sac.py +0 -0
  281. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_units.py +0 -0
  282. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
  283. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_vector.py +0 -0
  284. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_vpm.py +0 -0
  285. {pycontrails-0.55.0 → pycontrails-0.56.0}/tests/unit/test_zarr.py +0 -0
@@ -41,7 +41,7 @@ jobs:
41
41
  id: get_version
42
42
  run: echo "version=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
43
43
 
44
- - uses: actions/setup-python@v5
44
+ - uses: actions/setup-python@v6
45
45
  with:
46
46
  python-version: '3.13'
47
47
  cache: pip
@@ -39,7 +39,7 @@ jobs:
39
39
  with:
40
40
  fetch-depth: 0
41
41
 
42
- - uses: actions/setup-python@v5
42
+ - uses: actions/setup-python@v6
43
43
  with:
44
44
  python-version: '3.13'
45
45
  cache: pip
@@ -46,7 +46,7 @@ jobs:
46
46
  with:
47
47
  fetch-depth: 0
48
48
 
49
- - uses: actions/setup-python@v5
49
+ - uses: actions/setup-python@v6
50
50
  with:
51
51
  python-version: ${{ matrix.pyversion }}
52
52
  cache: pip
@@ -1,4 +1,7 @@
1
1
  {
2
+ "license": "Apache-2.0",
3
+ "title": "pycontrails: Python library for modeling aviation climate impacts",
4
+ "description": "<p><strong>pycontrails</strong> is an open source project and Python package for modeling aircraft contrails and other<br>\naviation related climate impacts.</p>\n\n<p><code>pycontrails</code> defines common data structures and interfaces to efficiently build and run models of aircraft performance, emissions, and radiative forcing.</p>\n\n<p>See the <a href=\"https://github.com/contrailcirrus/pycontrails\">Github repository</a> and <a href=\"https://py.contrails.org\">documentation</a> for more information.</p>",
2
5
  "creators": [
3
6
  {
4
7
  "name": "Marc Shapiro",
@@ -26,9 +29,6 @@
26
29
  "affiliation": "Breakthrough Energy"
27
30
  }
28
31
  ],
29
- "license": "Apache-2.0",
30
- "title": "pycontrails: Python library for modeling aviation climate impacts",
31
- "description": "<p><strong>pycontrails</strong> is an open source project and Python package for modeling aircraft contrails and other<br>\naviation related climate impacts.</p>\n\n<p><code>pycontrails</code> defines common data structures and interfaces to efficiently build and run models of aircraft performance, emissions, and radiative forcing.</p>\n\n<p>See the <a href=\"https://github.com/contrailcirrus/pycontrails\">Github repository</a> and <a href=\"https://py.contrails.org\">documentation</a> for more information.</p>",
32
32
  "contributors": [
33
33
  {
34
34
  "affiliation": "DLR",
@@ -49,6 +49,11 @@
49
49
  "name": "Jakob Smretschnig",
50
50
  "affiliation": "TU Delft",
51
51
  "type": "Researcher"
52
+ },
53
+ {
54
+ "name": "Thymen Woldhuis",
55
+ "affiliation": "TU Delft",
56
+ "type": "Researcher"
52
57
  }
53
58
  ]
54
59
  }
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.56.0
4
+
5
+ ### Features
6
+
7
+ - Improve the accuracy of overlaying flight tracks and contrails on Landsat and Sentinel imagery. This includes:
8
+ - A new `correction` module to align vectorized aircraft data with satellite imagery using sensing-angle (parallax error) and scan-time corrections. *Naively overlaying ADS-B data results in errors of several kilometers; with this correction, typical errors are reduced to a few hundred meters.*
9
+ - An updated `Sentinel` interface for parsing metadata required for overlay correction (see the new `sentinel_metadata` module for low-level details). This includes a new `colocate_flight` method to overlay flight tracks on Sentinel-2 imagery.
10
+ - A new `landsat_metadata` module for parsing Landsat metadata required for overlay correction (not exposed within the `Landsat` datalib).
11
+ - A new `open_landsat_metadata` function for accessing the [USGS Bulk Metadata service](https://www.usgs.gov/landsat-missions/bulk-metadata-service).
12
+ - Update the [Sentinel notebook](https://py.contrails.org/notebooks/Sentinel.html) to demonstrate the new overlay correction functionality available in the `Sentinel` datalib.
13
+
14
+ ### Fixes
15
+
16
+ - Fix the `Flight.to_geojson_multilinestring` method to handle flights without an "altitude" field.
17
+
18
+ ### Internals
19
+
20
+ - Update the `Landsat` datalib documentation to describe current limitations. The `Landsat` datalib should be considered legacy and may be replaced in future releases.
21
+
3
22
  ## 0.55.0
4
23
 
5
24
  ### Features
@@ -204,6 +204,7 @@ nb-test: ensure-era5-cached nb-clean-check nb-format-check nb-check-links
204
204
  --ignore=docs/notebooks/run-cocip-on-flight.ipynb \
205
205
  --ignore=docs/notebooks/model-levels.ipynb \
206
206
  --ignore=docs/notebooks/ARCO-ERA5.ipynb \
207
+ --ignore=docs/notebooks/Sentinel.ipynb \
207
208
  docs/notebooks docs/integrations
208
209
 
209
210
  # Check for broken links in notebooks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycontrails
3
- Version: 0.55.0
3
+ Version: 0.56.0
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: "Contrails.org" <py@contrails.org>
6
6
  License-Expression: Apache-2.0
@@ -88,12 +88,14 @@ Requires-Dist: cartopy>=0.22; extra == "sat"
88
88
  Requires-Dist: db-dtypes>=1.2; extra == "sat"
89
89
  Requires-Dist: gcsfs>=2022.3; extra == "sat"
90
90
  Requires-Dist: geojson>=3.1; extra == "sat"
91
+ Requires-Dist: geopandas>=1.1.1; extra == "sat"
91
92
  Requires-Dist: google-cloud-bigquery>=3.23; extra == "sat"
92
93
  Requires-Dist: google-cloud-bigquery-storage>=2.25; extra == "sat"
93
94
  Requires-Dist: pillow>=10.3; extra == "sat"
94
95
  Requires-Dist: pyproj>=3.5; extra == "sat"
95
96
  Requires-Dist: rasterio>=1.3; extra == "sat"
96
97
  Requires-Dist: scikit-image>=0.18; extra == "sat"
98
+ Requires-Dist: shapely>=2.0; extra == "sat"
97
99
  Provides-Extra: open3d
98
100
  Requires-Dist: open3d>=0.14; extra == "open3d"
99
101
  Provides-Extra: pyproj
@@ -100,6 +100,9 @@ Low Earth Orbit Satellites
100
100
 
101
101
  datalib.landsat
102
102
  datalib.sentinel
103
+ datalib.leo_utils
104
+ datalib.leo_utils.landsat_metadata
105
+ datalib.leo_utils.sentinel_metadata
103
106
 
104
107
 
105
108
  Models