pycontrails 0.55.0__tar.gz → 0.57.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 (292) hide show
  1. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/workflows/docs.yaml +1 -1
  2. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/workflows/doctest.yaml +1 -1
  3. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/workflows/release.yaml +1 -1
  4. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/workflows/test.yaml +1 -1
  5. {pycontrails-0.55.0 → pycontrails-0.57.0}/.zenodo.json +8 -3
  6. {pycontrails-0.55.0 → pycontrails-0.57.0}/CHANGELOG.md +38 -0
  7. {pycontrails-0.55.0 → pycontrails-0.57.0}/Makefile +1 -0
  8. {pycontrails-0.55.0/pycontrails.egg-info → pycontrails-0.57.0}/PKG-INFO +4 -2
  9. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/api.rst +3 -0
  10. pycontrails-0.57.0/docs/notebooks/GOES.ipynb +3918 -0
  11. pycontrails-0.57.0/docs/notebooks/Himawari.ipynb +837 -0
  12. pycontrails-0.57.0/docs/notebooks/Sentinel.ipynb +961 -0
  13. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/observations.rst +7 -1
  14. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/_version.py +3 -3
  15. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/airports.py +1 -1
  16. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/cache.py +3 -3
  17. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/fleet.py +1 -1
  18. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/flight.py +47 -43
  19. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/met_var.py +1 -1
  20. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/rgi_cython.c +328 -275
  21. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/vector.py +28 -30
  22. pycontrails-0.57.0/pycontrails/datalib/geo_utils.py +261 -0
  23. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/gfs/gfs.py +58 -64
  24. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/goes.py +193 -399
  25. pycontrails-0.57.0/pycontrails/datalib/himawari/__init__.py +27 -0
  26. pycontrails-0.57.0/pycontrails/datalib/himawari/header_struct.py +266 -0
  27. pycontrails-0.57.0/pycontrails/datalib/himawari/himawari.py +654 -0
  28. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/landsat.py +49 -26
  29. pycontrails-0.57.0/pycontrails/datalib/leo_utils/__init__.py +5 -0
  30. pycontrails-0.57.0/pycontrails/datalib/leo_utils/correction.py +266 -0
  31. pycontrails-0.57.0/pycontrails/datalib/leo_utils/landsat_metadata.py +300 -0
  32. {pycontrails-0.55.0/pycontrails/datalib/_leo_utils → pycontrails-0.57.0/pycontrails/datalib/leo_utils}/search.py +1 -1
  33. pycontrails-0.57.0/pycontrails/datalib/leo_utils/sentinel_metadata.py +748 -0
  34. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/sentinel.py +236 -93
  35. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/dry_advection.py +1 -1
  36. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/extended_k15.py +8 -8
  37. {pycontrails-0.55.0 → pycontrails-0.57.0/pycontrails.egg-info}/PKG-INFO +4 -2
  38. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails.egg-info/SOURCES.txt +13 -3
  39. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails.egg-info/requires.txt +3 -1
  40. {pycontrails-0.55.0 → pycontrails-0.57.0}/pyproject.toml +4 -2
  41. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_apcemm.py +1 -1
  42. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_datalib_metsource.py +1 -1
  43. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_fleet.py +1 -1
  44. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_goes.py +17 -20
  45. pycontrails-0.57.0/tests/unit/test_himawari.py +117 -0
  46. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_leo.py +5 -5
  47. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_met.py +5 -5
  48. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_models.py +2 -2
  49. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_ps_model.py +2 -2
  50. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_utils.py +1 -1
  51. pycontrails-0.55.0/docs/notebooks/GOES.ipynb +0 -3842
  52. pycontrails-0.55.0/docs/notebooks/Sentinel.ipynb +0 -853
  53. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  54. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  55. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/dependabot.yaml +0 -0
  56. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/pull_request_template.md +0 -0
  57. {pycontrails-0.55.0 → pycontrails-0.57.0}/.github/workflows/scorecard.yaml +0 -0
  58. {pycontrails-0.55.0 → pycontrails-0.57.0}/.gitignore +0 -0
  59. {pycontrails-0.55.0 → pycontrails-0.57.0}/.pre-commit-config.yaml +0 -0
  60. {pycontrails-0.55.0 → pycontrails-0.57.0}/CONTRIBUTING.md +0 -0
  61. {pycontrails-0.55.0 → pycontrails-0.57.0}/LICENSE +0 -0
  62. {pycontrails-0.55.0 → pycontrails-0.57.0}/NOTICE +0 -0
  63. {pycontrails-0.55.0 → pycontrails-0.57.0}/README.md +0 -0
  64. {pycontrails-0.55.0 → pycontrails-0.57.0}/RELEASE.md +0 -0
  65. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/_static/css/style.css +0 -0
  66. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/_static/img/colab.png +0 -0
  67. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/_static/img/favicon.png +0 -0
  68. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/_static/img/logo-dark.png +0 -0
  69. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/_static/img/logo.png +0 -0
  70. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/_static/pycontrails.bib +0 -0
  71. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/changelog.rst +0 -0
  72. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/conf.py +0 -0
  73. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/contributing.rst +0 -0
  74. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/develop.rst +0 -0
  75. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/flight.rst +0 -0
  76. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/index.rst +0 -0
  77. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/install.rst +0 -0
  78. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/integrations/ACCF.ipynb +0 -0
  79. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/integrations/APCEMM.ipynb +0 -0
  80. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/literature.rst +0 -0
  81. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/meteorology.rst +0 -0
  82. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/models.rst +0 -0
  83. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
  84. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/AircraftPerformance.ipynb +0 -0
  85. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/Cache.ipynb +0 -0
  86. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/CoCiP.ipynb +0 -0
  87. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/CoCiPGrid.ipynb +0 -0
  88. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/ECMWF.ipynb +0 -0
  89. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/Flight.ipynb +0 -0
  90. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/GFS.ipynb +0 -0
  91. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/ISSR.ipynb +0 -0
  92. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/Landsat.ipynb +0 -0
  93. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/Meteorology.ipynb +0 -0
  94. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/SAC.ipynb +0 -0
  95. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/advection.ipynb +0 -0
  96. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/airports.ipynb +0 -0
  97. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/.gitignore +0 -0
  98. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/flight-ap.csv +0 -0
  99. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/flight-cocip.csv +0 -0
  100. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/flight-fdr.csv +0 -0
  101. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/flight-noisy.csv +0 -0
  102. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/flight.csv +0 -0
  103. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
  104. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
  105. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/flightplan.ipynb +0 -0
  106. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/model-levels.ipynb +0 -0
  107. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
  108. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
  109. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
  110. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/notebooks.rst +0 -0
  111. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/tutorials.rst +0 -0
  112. {pycontrails-0.55.0 → pycontrails-0.57.0}/docs/utilities.rst +0 -0
  113. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/__init__.py +0 -0
  114. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/__init__.py +0 -0
  115. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/aircraft_performance.py +0 -0
  116. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/coordinates.py +0 -0
  117. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/flightplan.py +0 -0
  118. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/fuel.py +0 -0
  119. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/interpolation.py +0 -0
  120. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/met.py +0 -0
  121. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/models.py +0 -0
  122. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/polygon.py +0 -0
  123. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/core/rgi_cython.pyx +0 -0
  124. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/__init__.py +0 -0
  125. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/_met_utils/metsource.py +0 -0
  126. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/__init__.py +0 -0
  127. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/arco_era5.py +0 -0
  128. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/common.py +0 -0
  129. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/era5.py +0 -0
  130. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/era5_model_level.py +0 -0
  131. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/hres.py +0 -0
  132. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/hres_model_level.py +0 -0
  133. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/ifs.py +0 -0
  134. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/model_levels.py +0 -0
  135. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
  136. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/ecmwf/variables.py +0 -0
  137. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/gfs/__init__.py +0 -0
  138. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/gfs/variables.py +0 -0
  139. {pycontrails-0.55.0/pycontrails/datalib/_leo_utils → pycontrails-0.57.0/pycontrails/datalib/leo_utils}/static/bq_roi_query.sql +0 -0
  140. {pycontrails-0.55.0/pycontrails/datalib/_leo_utils → pycontrails-0.57.0/pycontrails/datalib/leo_utils}/vis.py +0 -0
  141. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/spire/__init__.py +0 -0
  142. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/spire/exceptions.py +0 -0
  143. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/datalib/spire/spire.py +0 -0
  144. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/ext/bada.py +0 -0
  145. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/ext/cirium.py +0 -0
  146. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/ext/empirical_grid.py +0 -0
  147. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/ext/synthetic_flight.py +0 -0
  148. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/__init__.py +0 -0
  149. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/accf.py +0 -0
  150. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/apcemm/__init__.py +0 -0
  151. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/apcemm/apcemm.py +0 -0
  152. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/apcemm/inputs.py +0 -0
  153. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
  154. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/apcemm/utils.py +0 -0
  155. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/__init__.py +0 -0
  156. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/cocip.py +0 -0
  157. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/cocip_params.py +0 -0
  158. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
  159. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/contrail_properties.py +0 -0
  160. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/output_formats.py +0 -0
  161. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/radiative_forcing.py +0 -0
  162. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/radiative_heating.py +0 -0
  163. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
  164. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/wake_vortex.py +0 -0
  165. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocip/wind_shear.py +0 -0
  166. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocipgrid/__init__.py +0 -0
  167. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
  168. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
  169. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/__init__.py +0 -0
  170. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/black_carbon.py +0 -0
  171. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/emissions.py +0 -0
  172. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/ffm2.py +0 -0
  173. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
  174. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
  175. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
  176. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/humidity_scaling/__init__.py +0 -0
  177. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
  178. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
  179. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
  180. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/issr.py +0 -0
  181. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/pcc.py +0 -0
  182. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/pcr.py +0 -0
  183. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/__init__.py +0 -0
  184. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
  185. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/ps_grid.py +0 -0
  186. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/ps_model.py +0 -0
  187. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
  188. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv +0 -0
  189. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv +0 -0
  190. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/sac.py +0 -0
  191. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/models/tau_cirrus.py +0 -0
  192. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/__init__.py +0 -0
  193. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/constants.py +0 -0
  194. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/geo.py +0 -0
  195. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/jet.py +0 -0
  196. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/static/iata-cargo-load-factors-20250221.csv +0 -0
  197. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/static/iata-passenger-load-factors-20250221.csv +0 -0
  198. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/thermo.py +0 -0
  199. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/physics/units.py +0 -0
  200. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/py.typed +0 -0
  201. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/utils/__init__.py +0 -0
  202. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/utils/dependencies.py +0 -0
  203. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/utils/iteration.py +0 -0
  204. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/utils/json.py +0 -0
  205. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/utils/temp.py +0 -0
  206. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails/utils/types.py +0 -0
  207. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails.egg-info/dependency_links.txt +0 -0
  208. {pycontrails-0.55.0 → pycontrails-0.57.0}/pycontrails.egg-info/top_level.txt +0 -0
  209. {pycontrails-0.55.0 → pycontrails-0.57.0}/setup.cfg +0 -0
  210. {pycontrails-0.55.0 → pycontrails-0.57.0}/setup.py +0 -0
  211. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/__init__.py +0 -0
  212. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/_deprecated.py +0 -0
  213. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/Makefile +0 -0
  214. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/README.md +0 -0
  215. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/benchmark.py +0 -0
  216. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/compare.py +0 -0
  217. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/data.md +0 -0
  218. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/output.py +0 -0
  219. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip/review.ipynb +0 -0
  220. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/cocip-fortran/README.md +0 -0
  221. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
  222. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/north-atlantic-study/README.md +0 -0
  223. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/north-atlantic-study/support.py +0 -0
  224. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/benchmark/north-atlantic-study/validate.py +0 -0
  225. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/fixtures/cocip-met.py +0 -0
  226. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/fixtures/cocip-met2.py +0 -0
  227. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/fixtures/ecmwf-met.py +0 -0
  228. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/fixtures/gfs-met.py +0 -0
  229. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/__init__.py +0 -0
  230. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/conftest.py +0 -0
  231. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
  232. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/cocip-contrail-output.json +0 -0
  233. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/cocip-contrail-output2.json +0 -0
  234. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/cocip-flight-output.json +0 -0
  235. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/cocip-flight-output2.json +0 -0
  236. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
  237. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
  238. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/flight-cocip2.csv +0 -0
  239. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/flight-meridian.csv +0 -0
  240. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/flight-metadata.json +0 -0
  241. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
  242. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/flight.csv +0 -0
  243. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
  244. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-20190101-eu.nc +0 -0
  245. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-accf-pl.nc +0 -0
  246. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-accf-sl.nc +0 -0
  247. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
  248. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-ecmwf-ml.nc +0 -0
  249. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-ecmwf-pl.nc +0 -0
  250. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-ecmwf-sl.nc +0 -0
  251. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-era5-cocip1.nc +0 -0
  252. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-era5-cocip2.nc +0 -0
  253. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/met-gfs.nc +0 -0
  254. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/polygon-bug.nc +0 -0
  255. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/rad-20190101-eu.nc +0 -0
  256. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/rad-era5-cocip1.nc +0 -0
  257. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/rad-era5-cocip2.nc +0 -0
  258. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/static/rad-gfs.nc +0 -0
  259. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_accf.py +0 -0
  260. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_airports.py +0 -0
  261. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_cache.py +0 -0
  262. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_cocip.py +0 -0
  263. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_cocip_grid.py +0 -0
  264. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_cocip_grid_parity.py +0 -0
  265. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_cocip_radiative_forcing.py +0 -0
  266. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_cocip_uncertainty.py +0 -0
  267. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_coordinates.py +0 -0
  268. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_dry_advection.py +0 -0
  269. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_dtypes.py +0 -0
  270. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_ecmwf.py +0 -0
  271. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_emissions.py +0 -0
  272. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_flight.py +0 -0
  273. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_flightplan.py +0 -0
  274. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_fuel.py +0 -0
  275. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_geo.py +0 -0
  276. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_gfs.py +0 -0
  277. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_grid_to_netcdf.py +0 -0
  278. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_humidity_scaling.py +0 -0
  279. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_init.py +0 -0
  280. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_interpolation.py +0 -0
  281. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_met_cache.py +0 -0
  282. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_pcc.py +0 -0
  283. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_polygons.py +0 -0
  284. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_sac_issr.py +0 -0
  285. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_spire.py +0 -0
  286. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_tau_cirrus.py +0 -0
  287. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_thermo_sac.py +0 -0
  288. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_units.py +0 -0
  289. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
  290. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_vector.py +0 -0
  291. {pycontrails-0.55.0 → pycontrails-0.57.0}/tests/unit/test_vpm.py +0 -0
  292. {pycontrails-0.55.0 → pycontrails-0.57.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
@@ -40,7 +40,7 @@ jobs:
40
40
 
41
41
  # https://cibuildwheel.readthedocs.io/en/stable/options/#testing
42
42
  - name: Build wheels
43
- uses: pypa/cibuildwheel@v3.1
43
+ uses: pypa/cibuildwheel@v3.2
44
44
  env:
45
45
  CIBW_BUILD: cp310-* cp311-* cp312-* cp313-*
46
46
  CIBW_SKIP: '*-win32 *-manylinux_i686 *-musllinux*'
@@ -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,43 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.57.0
4
+
5
+ ### Features
6
+
7
+ - Add new `Himawari` interface for downloading, processing, and visualizing [Himawari-8 and Himawari-9](https://www.jma.go.jp/jma/jma-eng/satellite/introduction.html) imagery. See the [Himawari notebook](https://py.contrails.org/notebooks/Himawari.html) for usage examples.
8
+
9
+ ### Breaking changes
10
+
11
+ - Deprecate the `channels` parameter in `GOES.__init__` in favor of `bands`, aligning with the new `Himawari` interface. The `channels` parameter is still available as an alias for `bands`, but will be removed in a future release.
12
+ - Deprecate the `goes_bucket` parameter in `GOES.__init__` in favor of `bucket`, aligning with the new `Himawari` interface. The `goes_bucket` parameter is still available as an alias for `bucket`, but will be removed in a future release.
13
+
14
+ ### Internals
15
+
16
+ - Add a new `pycontrails.datalib.geo_utils` module with tools for working with geostationary satellite imagery. This module currently includes functions previously defined in the `goes` module, but are also applicable to Himawari imagery.
17
+ - Rename `goes.extract_goes_visualization` -> `goes.extract_visualization` for consistency with the new `himawari` module. The old name is still available as an alias.
18
+ - Localize the `cartopy` import to the `extract_visualization` function within the `goes` module. This allows the user to download `GOES` imagery without having `cartopy` installed.
19
+ - Tweak some of the internal logic in `GOES.get` to slightly improve performance and readability, and to avoid loading unnecessary cached data into memory.
20
+ - Replace `boto3` with `s3fs` in the `gfs` module.
21
+
22
+ ## 0.56.0
23
+
24
+ ### Features
25
+
26
+ - Improve the accuracy of overlaying flight tracks and contrails on Landsat and Sentinel imagery. This includes:
27
+ - 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.*
28
+ - 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.
29
+ - A new `landsat_metadata` module for parsing Landsat metadata required for overlay correction (not exposed within the `Landsat` datalib).
30
+ - A new `open_landsat_metadata` function for accessing the [USGS Bulk Metadata service](https://www.usgs.gov/landsat-missions/bulk-metadata-service).
31
+ - Update the [Sentinel notebook](https://py.contrails.org/notebooks/Sentinel.html) to demonstrate the new overlay correction functionality available in the `Sentinel` datalib.
32
+
33
+ ### Fixes
34
+
35
+ - Fix the `Flight.to_geojson_multilinestring` method to handle flights without an "altitude" field.
36
+
37
+ ### Internals
38
+
39
+ - Update the `Landsat` datalib documentation to describe current limitations. The `Landsat` datalib should be considered legacy and may be replaced in future releases.
40
+
3
41
  ## 0.55.0
4
42
 
5
43
  ### 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.57.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
@@ -74,7 +74,6 @@ Requires-Dist: google-cloud-storage>=2.1; extra == "gcp"
74
74
  Requires-Dist: platformdirs>=3.0; extra == "gcp"
75
75
  Requires-Dist: tqdm>=4.61; extra == "gcp"
76
76
  Provides-Extra: gfs
77
- Requires-Dist: boto3>=1.20; extra == "gfs"
78
77
  Requires-Dist: cfgrib>=0.9; extra == "gfs"
79
78
  Requires-Dist: eccodes>=2.38; extra == "gfs"
80
79
  Requires-Dist: netcdf4>=1.6.1; extra == "gfs"
@@ -88,12 +87,15 @@ Requires-Dist: cartopy>=0.22; extra == "sat"
88
87
  Requires-Dist: db-dtypes>=1.2; extra == "sat"
89
88
  Requires-Dist: gcsfs>=2022.3; extra == "sat"
90
89
  Requires-Dist: geojson>=3.1; extra == "sat"
90
+ Requires-Dist: geopandas>=1.1.1; extra == "sat"
91
91
  Requires-Dist: google-cloud-bigquery>=3.23; extra == "sat"
92
92
  Requires-Dist: google-cloud-bigquery-storage>=2.25; extra == "sat"
93
93
  Requires-Dist: pillow>=10.3; extra == "sat"
94
94
  Requires-Dist: pyproj>=3.5; extra == "sat"
95
95
  Requires-Dist: rasterio>=1.3; extra == "sat"
96
+ Requires-Dist: s3fs>=2022.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