pycontrails 0.54.12__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.54.12 → pycontrails-0.56.0}/.github/workflows/docs.yaml +2 -2
  2. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/workflows/doctest.yaml +3 -3
  3. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/workflows/test.yaml +3 -3
  4. {pycontrails-0.54.12 → pycontrails-0.56.0}/.zenodo.json +8 -3
  5. {pycontrails-0.54.12 → pycontrails-0.56.0}/CHANGELOG.md +30 -0
  6. {pycontrails-0.54.12 → pycontrails-0.56.0}/Makefile +1 -0
  7. {pycontrails-0.54.12/pycontrails.egg-info → pycontrails-0.56.0}/PKG-INFO +3 -1
  8. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/_static/pycontrails.bib +190 -32
  9. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/api.rst +12 -0
  10. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/literature.rst +2 -2
  11. pycontrails-0.56.0/docs/notebooks/Sentinel.ipynb +961 -0
  12. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/_version.py +3 -3
  13. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/airports.py +1 -1
  14. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/cache.py +3 -3
  15. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/fleet.py +1 -1
  16. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/flight.py +47 -43
  17. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/met_var.py +1 -1
  18. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/rgi_cython.c +152 -152
  19. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/vector.py +28 -30
  20. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/landsat.py +49 -26
  21. pycontrails-0.56.0/pycontrails/datalib/leo_utils/__init__.py +5 -0
  22. pycontrails-0.56.0/pycontrails/datalib/leo_utils/correction.py +266 -0
  23. pycontrails-0.56.0/pycontrails/datalib/leo_utils/landsat_metadata.py +300 -0
  24. {pycontrails-0.54.12/pycontrails/datalib/_leo_utils → pycontrails-0.56.0/pycontrails/datalib/leo_utils}/search.py +1 -1
  25. pycontrails-0.56.0/pycontrails/datalib/leo_utils/sentinel_metadata.py +748 -0
  26. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/sentinel.py +236 -93
  27. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/cocip.py +30 -13
  28. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/cocip_params.py +9 -3
  29. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/cocip_uncertainty.py +4 -4
  30. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/contrail_properties.py +27 -27
  31. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/radiative_forcing.py +4 -4
  32. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +5 -5
  33. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/wake_vortex.py +6 -6
  34. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocipgrid/cocip_grid.py +60 -32
  35. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/dry_advection.py +3 -3
  36. pycontrails-0.56.0/pycontrails/models/extended_k15.py +1327 -0
  37. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/constants.py +1 -1
  38. {pycontrails-0.54.12 → pycontrails-0.56.0/pycontrails.egg-info}/PKG-INFO +3 -1
  39. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails.egg-info/SOURCES.txt +9 -3
  40. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails.egg-info/requires.txt +2 -0
  41. {pycontrails-0.54.12 → pycontrails-0.56.0}/pyproject.toml +8 -1
  42. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/__init__.py +5 -0
  43. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_apcemm.py +1 -1
  44. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_cocip.py +39 -0
  45. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_cocip_grid.py +24 -2
  46. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_datalib_metsource.py +1 -1
  47. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_fleet.py +1 -1
  48. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_leo.py +5 -5
  49. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_met.py +5 -5
  50. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_models.py +2 -2
  51. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_ps_model.py +2 -2
  52. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_utils.py +1 -1
  53. pycontrails-0.56.0/tests/unit/test_vpm.py +121 -0
  54. pycontrails-0.54.12/docs/notebooks/Sentinel.ipynb +0 -853
  55. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  56. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  57. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/dependabot.yaml +0 -0
  58. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/pull_request_template.md +0 -0
  59. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/workflows/release.yaml +0 -0
  60. {pycontrails-0.54.12 → pycontrails-0.56.0}/.github/workflows/scorecard.yaml +0 -0
  61. {pycontrails-0.54.12 → pycontrails-0.56.0}/.gitignore +0 -0
  62. {pycontrails-0.54.12 → pycontrails-0.56.0}/.pre-commit-config.yaml +0 -0
  63. {pycontrails-0.54.12 → pycontrails-0.56.0}/CONTRIBUTING.md +0 -0
  64. {pycontrails-0.54.12 → pycontrails-0.56.0}/LICENSE +0 -0
  65. {pycontrails-0.54.12 → pycontrails-0.56.0}/NOTICE +0 -0
  66. {pycontrails-0.54.12 → pycontrails-0.56.0}/README.md +0 -0
  67. {pycontrails-0.54.12 → pycontrails-0.56.0}/RELEASE.md +0 -0
  68. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/_static/css/style.css +0 -0
  69. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/_static/img/colab.png +0 -0
  70. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/_static/img/favicon.png +0 -0
  71. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/_static/img/logo-dark.png +0 -0
  72. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/_static/img/logo.png +0 -0
  73. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/changelog.rst +0 -0
  74. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/conf.py +0 -0
  75. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/contributing.rst +0 -0
  76. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/develop.rst +0 -0
  77. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/flight.rst +0 -0
  78. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/index.rst +0 -0
  79. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/install.rst +0 -0
  80. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/integrations/ACCF.ipynb +0 -0
  81. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/integrations/APCEMM.ipynb +0 -0
  82. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/meteorology.rst +0 -0
  83. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/models.rst +0 -0
  84. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
  85. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/AircraftPerformance.ipynb +0 -0
  86. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/Cache.ipynb +0 -0
  87. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/CoCiP.ipynb +0 -0
  88. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/CoCiPGrid.ipynb +0 -0
  89. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/ECMWF.ipynb +0 -0
  90. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/Flight.ipynb +0 -0
  91. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/GFS.ipynb +0 -0
  92. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/GOES.ipynb +0 -0
  93. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/ISSR.ipynb +0 -0
  94. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/Landsat.ipynb +0 -0
  95. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/Meteorology.ipynb +0 -0
  96. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/SAC.ipynb +0 -0
  97. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/advection.ipynb +0 -0
  98. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/airports.ipynb +0 -0
  99. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/.gitignore +0 -0
  100. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/flight-ap.csv +0 -0
  101. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/flight-cocip.csv +0 -0
  102. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/flight-fdr.csv +0 -0
  103. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/flight-noisy.csv +0 -0
  104. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/flight.csv +0 -0
  105. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
  106. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
  107. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/flightplan.ipynb +0 -0
  108. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/model-levels.ipynb +0 -0
  109. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
  110. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
  111. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
  112. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/notebooks.rst +0 -0
  113. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/observations.rst +0 -0
  114. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/tutorials.rst +0 -0
  115. {pycontrails-0.54.12 → pycontrails-0.56.0}/docs/utilities.rst +0 -0
  116. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/__init__.py +0 -0
  117. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/__init__.py +0 -0
  118. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/aircraft_performance.py +0 -0
  119. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/coordinates.py +0 -0
  120. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/flightplan.py +0 -0
  121. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/fuel.py +0 -0
  122. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/interpolation.py +0 -0
  123. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/met.py +0 -0
  124. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/models.py +0 -0
  125. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/polygon.py +0 -0
  126. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/core/rgi_cython.pyx +0 -0
  127. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/__init__.py +0 -0
  128. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/_met_utils/metsource.py +0 -0
  129. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/__init__.py +0 -0
  130. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/arco_era5.py +0 -0
  131. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/common.py +0 -0
  132. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/era5.py +0 -0
  133. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/era5_model_level.py +0 -0
  134. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/hres.py +0 -0
  135. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/hres_model_level.py +0 -0
  136. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/ifs.py +0 -0
  137. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/model_levels.py +0 -0
  138. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
  139. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/ecmwf/variables.py +0 -0
  140. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/gfs/__init__.py +0 -0
  141. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/gfs/gfs.py +0 -0
  142. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/gfs/variables.py +0 -0
  143. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/goes.py +0 -0
  144. {pycontrails-0.54.12/pycontrails/datalib/_leo_utils → pycontrails-0.56.0/pycontrails/datalib/leo_utils}/static/bq_roi_query.sql +0 -0
  145. {pycontrails-0.54.12/pycontrails/datalib/_leo_utils → pycontrails-0.56.0/pycontrails/datalib/leo_utils}/vis.py +0 -0
  146. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/spire/__init__.py +0 -0
  147. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/spire/exceptions.py +0 -0
  148. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/datalib/spire/spire.py +0 -0
  149. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/ext/bada.py +0 -0
  150. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/ext/cirium.py +0 -0
  151. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/ext/empirical_grid.py +0 -0
  152. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/ext/synthetic_flight.py +0 -0
  153. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/__init__.py +0 -0
  154. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/accf.py +0 -0
  155. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/apcemm/__init__.py +0 -0
  156. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/apcemm/apcemm.py +0 -0
  157. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/apcemm/inputs.py +0 -0
  158. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
  159. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/apcemm/utils.py +0 -0
  160. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/__init__.py +0 -0
  161. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/output_formats.py +0 -0
  162. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/radiative_heating.py +0 -0
  163. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocip/wind_shear.py +0 -0
  164. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocipgrid/__init__.py +0 -0
  165. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
  166. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/__init__.py +0 -0
  167. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/black_carbon.py +0 -0
  168. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/emissions.py +0 -0
  169. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/ffm2.py +0 -0
  170. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
  171. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
  172. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
  173. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/__init__.py +0 -0
  174. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
  175. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
  176. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
  177. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/issr.py +0 -0
  178. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/pcc.py +0 -0
  179. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/pcr.py +0 -0
  180. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/__init__.py +0 -0
  181. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
  182. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_grid.py +0 -0
  183. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_model.py +0 -0
  184. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
  185. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv +0 -0
  186. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv +0 -0
  187. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/sac.py +0 -0
  188. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/models/tau_cirrus.py +0 -0
  189. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/__init__.py +0 -0
  190. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/geo.py +0 -0
  191. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/jet.py +0 -0
  192. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/static/iata-cargo-load-factors-20250221.csv +0 -0
  193. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/static/iata-passenger-load-factors-20250221.csv +0 -0
  194. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/thermo.py +0 -0
  195. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/physics/units.py +0 -0
  196. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/py.typed +0 -0
  197. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/utils/__init__.py +0 -0
  198. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/utils/dependencies.py +0 -0
  199. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/utils/iteration.py +0 -0
  200. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/utils/json.py +0 -0
  201. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/utils/temp.py +0 -0
  202. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails/utils/types.py +0 -0
  203. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails.egg-info/dependency_links.txt +0 -0
  204. {pycontrails-0.54.12 → pycontrails-0.56.0}/pycontrails.egg-info/top_level.txt +0 -0
  205. {pycontrails-0.54.12 → pycontrails-0.56.0}/setup.cfg +0 -0
  206. {pycontrails-0.54.12 → pycontrails-0.56.0}/setup.py +0 -0
  207. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/_deprecated.py +0 -0
  208. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/Makefile +0 -0
  209. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/README.md +0 -0
  210. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/benchmark.py +0 -0
  211. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/compare.py +0 -0
  212. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/data.md +0 -0
  213. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/output.py +0 -0
  214. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip/review.ipynb +0 -0
  215. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/cocip-fortran/README.md +0 -0
  216. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
  217. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/README.md +0 -0
  218. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/support.py +0 -0
  219. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/benchmark/north-atlantic-study/validate.py +0 -0
  220. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/fixtures/cocip-met.py +0 -0
  221. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/fixtures/cocip-met2.py +0 -0
  222. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/fixtures/ecmwf-met.py +0 -0
  223. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/fixtures/gfs-met.py +0 -0
  224. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/__init__.py +0 -0
  225. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/conftest.py +0 -0
  226. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
  227. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/cocip-contrail-output.json +0 -0
  228. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/cocip-contrail-output2.json +0 -0
  229. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/cocip-flight-output.json +0 -0
  230. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/cocip-flight-output2.json +0 -0
  231. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
  232. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
  233. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/flight-cocip2.csv +0 -0
  234. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/flight-meridian.csv +0 -0
  235. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/flight-metadata.json +0 -0
  236. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
  237. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/flight.csv +0 -0
  238. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
  239. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-20190101-eu.nc +0 -0
  240. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-accf-pl.nc +0 -0
  241. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-accf-sl.nc +0 -0
  242. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
  243. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-ml.nc +0 -0
  244. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-pl.nc +0 -0
  245. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-ecmwf-sl.nc +0 -0
  246. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-era5-cocip1.nc +0 -0
  247. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-era5-cocip2.nc +0 -0
  248. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/met-gfs.nc +0 -0
  249. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/polygon-bug.nc +0 -0
  250. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/rad-20190101-eu.nc +0 -0
  251. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/rad-era5-cocip1.nc +0 -0
  252. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/rad-era5-cocip2.nc +0 -0
  253. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/static/rad-gfs.nc +0 -0
  254. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_accf.py +0 -0
  255. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_airports.py +0 -0
  256. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_cache.py +0 -0
  257. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_cocip_grid_parity.py +0 -0
  258. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_cocip_radiative_forcing.py +0 -0
  259. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_cocip_uncertainty.py +0 -0
  260. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_coordinates.py +0 -0
  261. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_dry_advection.py +0 -0
  262. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_dtypes.py +0 -0
  263. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_ecmwf.py +0 -0
  264. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_emissions.py +0 -0
  265. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_flight.py +0 -0
  266. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_flightplan.py +0 -0
  267. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_fuel.py +0 -0
  268. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_geo.py +0 -0
  269. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_gfs.py +0 -0
  270. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_goes.py +0 -0
  271. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_grid_to_netcdf.py +0 -0
  272. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_humidity_scaling.py +0 -0
  273. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_init.py +0 -0
  274. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_interpolation.py +0 -0
  275. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_met_cache.py +0 -0
  276. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_pcc.py +0 -0
  277. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_polygons.py +0 -0
  278. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_sac_issr.py +0 -0
  279. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_spire.py +0 -0
  280. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_tau_cirrus.py +0 -0
  281. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_thermo_sac.py +0 -0
  282. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_units.py +0 -0
  283. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
  284. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_vector.py +0 -0
  285. {pycontrails-0.54.12 → pycontrails-0.56.0}/tests/unit/test_zarr.py +0 -0
@@ -41,14 +41,14 @@ 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
48
48
  cache-dependency-path: pyproject.toml
49
49
 
50
50
  - name: Authenticate to Google Cloud
51
- uses: google-github-actions/auth@v2
51
+ uses: google-github-actions/auth@v3
52
52
  with:
53
53
  credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT }}
54
54
 
@@ -39,19 +39,19 @@ 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
46
  cache-dependency-path: pyproject.toml
47
47
 
48
48
  - name: Authenticate to Google Cloud
49
- uses: google-github-actions/auth@v2
49
+ uses: google-github-actions/auth@v3
50
50
  with:
51
51
  credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT }}
52
52
 
53
53
  - name: Set up Cloud SDK
54
- uses: google-github-actions/setup-gcloud@v3.0.0
54
+ uses: google-github-actions/setup-gcloud@v3
55
55
 
56
56
  # put bada files in the default location
57
57
  - name: BADA files
@@ -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
@@ -63,12 +63,12 @@ jobs:
63
63
  ${{ github.workspace }}/.pytest_cache
64
64
 
65
65
  - name: Authenticate to Google Cloud
66
- uses: google-github-actions/auth@v2
66
+ uses: google-github-actions/auth@v3
67
67
  with:
68
68
  credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT }}
69
69
 
70
70
  - name: Set up Cloud SDK
71
- uses: google-github-actions/setup-gcloud@v3.0.0
71
+ uses: google-github-actions/setup-gcloud@v3
72
72
 
73
73
  - name: Download BADA files
74
74
  timeout-minutes: 5 # `gcloud storage cp` occasionally hangs on windows
@@ -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,35 @@
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
+
22
+ ## 0.55.0
23
+
24
+ ### Features
25
+
26
+ - Add new `pycontrails.models.extended_k15` module for modeling volatile particulate matter (vPM) activation in aircraft plumes. This module implements the extended K15 model introduced by [Ponsonby et al.](https://doi.org/10.5194/egusphere-2025-1717).
27
+ - Introduce basic support for vPM activation within the `Cocip` and `CocipGrid` models. This support is experimental and can be enabled via the `vpm_activation` parameter.
28
+
29
+ ### Internals
30
+
31
+ - Refactor `contrail_properties.initial_ice_particle_number` to integrate more smoothly with the vPM activation model. The function's signature has been updated, but its underlying behavior is unchanged. In particular, this has no effect on the `Cocip` model when `vpm_activation` is disabled.
32
+
3
33
  ## 0.54.12
4
34
 
5
35
  ### Breaking changes
@@ -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.54.12
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