pycontrails 0.54.0__tar.gz → 0.54.2__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 (276) hide show
  1. {pycontrails-0.54.0 → pycontrails-0.54.2}/CHANGELOG.md +36 -0
  2. {pycontrails-0.54.0 → pycontrails-0.54.2}/Makefile +1 -0
  3. {pycontrails-0.54.0/pycontrails.egg-info → pycontrails-0.54.2}/PKG-INFO +5 -4
  4. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/conf.py +2 -1
  5. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/index.rst +1 -1
  6. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/integrations/ACCF.ipynb +1 -1
  7. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/integrations/APCEMM.ipynb +2 -2
  8. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/models.rst +3 -2
  9. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/ARCO-ERA5.ipynb +4 -4
  10. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/CoCiP.ipynb +1 -1
  11. pycontrails-0.54.2/docs/notebooks/CoCiPGrid.ipynb +731 -0
  12. pycontrails-0.54.2/docs/notebooks/Flight.ipynb +1208 -0
  13. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/ISSR.ipynb +1 -1
  14. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/SAC.ipynb +1 -1
  15. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/specific-humidity-interpolation.ipynb +4 -4
  16. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/_version.py +2 -2
  17. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/aircraft_performance.py +16 -5
  18. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/cache.py +14 -10
  19. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/fleet.py +27 -34
  20. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/flight.py +31 -91
  21. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/met.py +64 -67
  22. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/rgi_cython.c +155 -155
  23. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/vector.py +51 -82
  24. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/__init__.py +2 -2
  25. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/arco_era5.py +11 -6
  26. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/common.py +7 -2
  27. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/era5.py +10 -5
  28. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/era5_model_level.py +12 -8
  29. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/hres.py +12 -7
  30. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/hres_model_level.py +10 -5
  31. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/ifs.py +11 -6
  32. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/model_levels.py +3 -2
  33. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/gfs/gfs.py +52 -34
  34. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/gfs/variables.py +6 -2
  35. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/cocip.py +7 -2
  36. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocipgrid/cocip_grid.py +5 -3
  37. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/humidity_scaling.py +12 -7
  38. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_model.py +47 -27
  39. {pycontrails-0.54.0 → pycontrails-0.54.2/pycontrails.egg-info}/PKG-INFO +5 -4
  40. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/SOURCES.txt +1 -0
  41. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/requires.txt +6 -3
  42. {pycontrails-0.54.0 → pycontrails-0.54.2}/pyproject.toml +4 -4
  43. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/cocip-met.py +1 -1
  44. pycontrails-0.54.2/tests/unit/__init__.py +19 -0
  45. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/conftest.py +1 -43
  46. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_accf.py +31 -2
  47. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_grid.py +7 -5
  48. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_grid_parity.py +1 -1
  49. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_fleet.py +2 -2
  50. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_flight.py +0 -45
  51. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_humidity_scaling.py +7 -2
  52. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_met.py +18 -1
  53. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_ps_model.py +46 -5
  54. pycontrails-0.54.0/docs/notebooks/Flight.ipynb +0 -1205
  55. pycontrails-0.54.0/tests/unit/__init__.py +0 -0
  56. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  57. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  58. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/dependabot.yaml +0 -0
  59. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/pull_request_template.md +0 -0
  60. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/docs.yaml +0 -0
  61. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/doctest.yaml +0 -0
  62. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/release.yaml +0 -0
  63. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/scorecard.yaml +0 -0
  64. {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/test.yaml +0 -0
  65. {pycontrails-0.54.0 → pycontrails-0.54.2}/.gitignore +0 -0
  66. {pycontrails-0.54.0 → pycontrails-0.54.2}/.pre-commit-config.yaml +0 -0
  67. {pycontrails-0.54.0 → pycontrails-0.54.2}/.zenodo.json +0 -0
  68. {pycontrails-0.54.0 → pycontrails-0.54.2}/CONTRIBUTING.md +0 -0
  69. {pycontrails-0.54.0 → pycontrails-0.54.2}/LICENSE +0 -0
  70. {pycontrails-0.54.0 → pycontrails-0.54.2}/NOTICE +0 -0
  71. {pycontrails-0.54.0 → pycontrails-0.54.2}/README.md +0 -0
  72. {pycontrails-0.54.0 → pycontrails-0.54.2}/RELEASE.md +0 -0
  73. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/css/style.css +0 -0
  74. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/colab.png +0 -0
  75. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/favicon.png +0 -0
  76. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/logo-dark.png +0 -0
  77. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/logo.png +0 -0
  78. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/pycontrails.bib +0 -0
  79. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/api.rst +0 -0
  80. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/changelog.rst +0 -0
  81. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/contributing.rst +0 -0
  82. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/develop.rst +0 -0
  83. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/flight.rst +0 -0
  84. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/install.rst +0 -0
  85. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/literature.rst +0 -0
  86. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/meteorology.rst +0 -0
  87. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/AircraftPerformance.ipynb +0 -0
  88. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Cache.ipynb +0 -0
  89. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/ECMWF.ipynb +0 -0
  90. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/GFS.ipynb +0 -0
  91. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/GOES.ipynb +0 -0
  92. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Landsat.ipynb +0 -0
  93. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Meteorology.ipynb +0 -0
  94. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Sentinel.ipynb +0 -0
  95. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/advection.ipynb +0 -0
  96. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/airports.ipynb +0 -0
  97. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/.gitignore +0 -0
  98. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-ap.csv +0 -0
  99. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-cocip.csv +0 -0
  100. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-fdr.csv +0 -0
  101. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-noisy.csv +0 -0
  102. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight.csv +0 -0
  103. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
  104. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
  105. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/flightplan.ipynb +0 -0
  106. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/model-levels.ipynb +0 -0
  107. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
  108. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
  109. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks.rst +0 -0
  110. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/observations.rst +0 -0
  111. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/tutorials.rst +0 -0
  112. {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/utilities.rst +0 -0
  113. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/__init__.py +0 -0
  114. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/__init__.py +0 -0
  115. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/airports.py +0 -0
  116. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/coordinates.py +0 -0
  117. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/flightplan.py +0 -0
  118. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/fuel.py +0 -0
  119. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/interpolation.py +0 -0
  120. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/met_var.py +0 -0
  121. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/models.py +0 -0
  122. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/polygon.py +0 -0
  123. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/rgi_cython.pyx +0 -0
  124. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/__init__.py +0 -0
  125. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_leo_utils/search.py +0 -0
  126. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_leo_utils/static/bq_roi_query.sql +0 -0
  127. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_leo_utils/vis.py +0 -0
  128. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_met_utils/metsource.py +0 -0
  129. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
  130. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/variables.py +0 -0
  131. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/gfs/__init__.py +0 -0
  132. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/goes.py +0 -0
  133. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/landsat.py +0 -0
  134. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/sentinel.py +0 -0
  135. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/spire.py +0 -0
  136. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/bada.py +0 -0
  137. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/cirium.py +0 -0
  138. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/empirical_grid.py +0 -0
  139. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/synthetic_flight.py +0 -0
  140. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/__init__.py +0 -0
  141. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/accf.py +0 -0
  142. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/__init__.py +0 -0
  143. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/apcemm.py +0 -0
  144. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/inputs.py +0 -0
  145. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
  146. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/utils.py +0 -0
  147. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/__init__.py +0 -0
  148. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/cocip_params.py +0 -0
  149. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
  150. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/contrail_properties.py +0 -0
  151. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/output_formats.py +0 -0
  152. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/radiative_forcing.py +0 -0
  153. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/radiative_heating.py +0 -0
  154. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
  155. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/wake_vortex.py +0 -0
  156. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/wind_shear.py +0 -0
  157. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocipgrid/__init__.py +0 -0
  158. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
  159. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/dry_advection.py +0 -0
  160. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/__init__.py +0 -0
  161. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/black_carbon.py +0 -0
  162. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/emissions.py +0 -0
  163. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/ffm2.py +0 -0
  164. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
  165. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
  166. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
  167. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/__init__.py +0 -0
  168. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
  169. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
  170. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/issr.py +0 -0
  171. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/pcc.py +0 -0
  172. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/pcr.py +0 -0
  173. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/__init__.py +0 -0
  174. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
  175. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_grid.py +0 -0
  176. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
  177. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv +0 -0
  178. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv +0 -0
  179. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/sac.py +0 -0
  180. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/tau_cirrus.py +0 -0
  181. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/__init__.py +0 -0
  182. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/constants.py +0 -0
  183. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/geo.py +0 -0
  184. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/jet.py +0 -0
  185. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/thermo.py +0 -0
  186. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/units.py +0 -0
  187. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/py.typed +0 -0
  188. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/__init__.py +0 -0
  189. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/dependencies.py +0 -0
  190. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/iteration.py +0 -0
  191. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/json.py +0 -0
  192. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/temp.py +0 -0
  193. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/types.py +0 -0
  194. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/dependency_links.txt +0 -0
  195. {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/top_level.txt +0 -0
  196. {pycontrails-0.54.0 → pycontrails-0.54.2}/setup.cfg +0 -0
  197. {pycontrails-0.54.0 → pycontrails-0.54.2}/setup.py +0 -0
  198. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/__init__.py +0 -0
  199. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/_deprecated.py +0 -0
  200. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/Makefile +0 -0
  201. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/README.md +0 -0
  202. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/benchmark.py +0 -0
  203. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/compare.py +0 -0
  204. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/data.md +0 -0
  205. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/output.py +0 -0
  206. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/review.ipynb +0 -0
  207. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip-fortran/README.md +0 -0
  208. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
  209. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/README.md +0 -0
  210. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/support.py +0 -0
  211. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/validate.py +0 -0
  212. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/cocip-met2.py +0 -0
  213. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/ecmwf-met.py +0 -0
  214. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/gfs-met.py +0 -0
  215. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
  216. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-contrail-output.json +0 -0
  217. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-contrail-output2.json +0 -0
  218. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-flight-output.json +0 -0
  219. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-flight-output2.json +0 -0
  220. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
  221. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
  222. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-cocip2.csv +0 -0
  223. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-meridian.csv +0 -0
  224. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-metadata.json +0 -0
  225. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
  226. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight.csv +0 -0
  227. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
  228. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-20190101-eu.nc +0 -0
  229. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-accf-pl.nc +0 -0
  230. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-accf-sl.nc +0 -0
  231. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
  232. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-ml.nc +0 -0
  233. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-pl.nc +0 -0
  234. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-sl.nc +0 -0
  235. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-era5-cocip1.nc +0 -0
  236. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-era5-cocip2.nc +0 -0
  237. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-gfs.nc +0 -0
  238. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/polygon-bug.nc +0 -0
  239. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-20190101-eu.nc +0 -0
  240. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-era5-cocip1.nc +0 -0
  241. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-era5-cocip2.nc +0 -0
  242. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-gfs.nc +0 -0
  243. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_airports.py +0 -0
  244. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_apcemm.py +0 -0
  245. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cache.py +0 -0
  246. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip.py +0 -0
  247. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_radiative_forcing.py +0 -0
  248. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_uncertainty.py +0 -0
  249. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_coordinates.py +0 -0
  250. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_datalib_metsource.py +0 -0
  251. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_dry_advection.py +0 -0
  252. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_dtypes.py +0 -0
  253. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_ecmwf.py +0 -0
  254. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_emissions.py +0 -0
  255. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_flightplan.py +0 -0
  256. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_fuel.py +0 -0
  257. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_geo.py +0 -0
  258. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_gfs.py +0 -0
  259. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_goes.py +0 -0
  260. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_grid_to_netcdf.py +0 -0
  261. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_init.py +0 -0
  262. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_interpolation.py +0 -0
  263. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_leo.py +0 -0
  264. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_met_cache.py +0 -0
  265. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_models.py +0 -0
  266. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_pcc.py +0 -0
  267. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_polygons.py +0 -0
  268. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_sac_issr.py +0 -0
  269. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_spire.py +0 -0
  270. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_tau_cirrus.py +0 -0
  271. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_thermo_sac.py +0 -0
  272. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_units.py +0 -0
  273. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
  274. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_utils.py +0 -0
  275. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_vector.py +0 -0
  276. {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_zarr.py +0 -0
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.54.2
4
+
5
+ ### Features
6
+
7
+ - Add `cache_download` parameter to the `GFSForecast` interface. When set to `True`, downloaded grib data is cached locally. This is consistent with the behavior of the `ERA5ModelLevel` and `HRESModelLevel` interfaces.
8
+
9
+ ### Fixes
10
+
11
+ - Update GFS variable names "uswrf" -> "suswrf" and "ulwrf" -> "sulwrf". This accommodates a breaking change introduced in [eccodes 2.38](https://confluence.ecmwf.int/display/MTG2US/Changes+in+ecCodes+version+2.38.0+compared+to+the+previous+version#ChangesinecCodesversion2.38.0comparedtothepreviousversion-Changedshortnames).
12
+
13
+ ### Internals
14
+
15
+ - Remove `overrides` dependency. Require `typing-extensions` for python < 3.12.
16
+ - Upgrade some type hints for more modern python language features.
17
+
18
+ ## v0.54.1
19
+
20
+ ### Features
21
+
22
+ - Add [CoCiP Grid notebook](https://py.contrails.org/notebooks/CoCiPGrid.html) example to documentation.
23
+ - Implement `PSFlight.eval` on a `Fleet` source.
24
+
25
+ ### Breaking changes
26
+
27
+ - Remove `attrs["crs"]` usage from `GeoVectorDataset` and child classes (`Flight`, `Fleet`). All spatial data is assumed to be EPSG:4326 (WGS84). This was previously assumed implicitly, but now the `crs` attribute is removed from the `attrs` dictionary.
28
+ - Change the return type of `GeoVectorDataset.transform_crs` to a pair of numpy arrays representing `x` and `y` coordinates in the target CRS.
29
+ - Remove deprecated `MetDataset.variables` property in favor of `MetDataset.indexes`.
30
+ - Remove `**kwargs` in `MetDataArray` constructor.
31
+ - Rename `ARCOERA5` to `ERA5ARCO` for consistency with the `ERA5` and `ERA5ModelLevel` interfaces.
32
+
33
+ ### Fixes
34
+
35
+ - Fix the integration time step in `CocipGrid.calc_evolve_one_step`. The previous implementation assumed a time interval of `params["dt_integration"]`. This may not be the case for all `source` parameters (for example, this could occur if running `CocipGrid` over a collection of ADS-B waypoints).
36
+ - Raise an exception in constructing `MetDataset(ds, copy=False)` when `ds["level"]` has float32 dtype. Per interpolation conventions, all coordinate variables must have float64 dtype. (This was previously enforced in longitude and latitude, but was overlooked in the level coordinate.)
37
+ - Allow `AircraftPerformance.ensure_true_airspeed_on_source` to use `eastward_wind` and `northward_wind` fields on the `source` if available. This is useful when the `source` has already been interpolated to met data.
38
+
3
39
  ## v0.54.0
4
40
 
5
41
  ### Features
@@ -220,6 +220,7 @@ nb-check-links:
220
220
  --check-links-ignore "https://doi.org/10.1021/acs.est.2c05781" \
221
221
  --check-links-ignore "https://github.com/contrailcirrus/pycontrails-bada" \
222
222
  --check-links-ignore "https://ourairports.com" \
223
+ --check-links-ignore "https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast" \
223
224
  docs/notebooks/*.ipynb
224
225
 
225
226
  # Execute all notebooks in docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycontrails
3
- Version: 0.54.0
3
+ Version: 0.54.2
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: Breakthrough Energy <py@contrails.org>
6
6
  License: Apache-2.0
@@ -29,9 +29,9 @@ License-File: LICENSE
29
29
  License-File: NOTICE
30
30
  Requires-Dist: dask>=2022.3
31
31
  Requires-Dist: numpy>=1.22
32
- Requires-Dist: overrides>=6.1
33
32
  Requires-Dist: pandas>=2.2
34
33
  Requires-Dist: scipy>=1.10
34
+ Requires-Dist: typing-extensions>=4.5; python_version < "3.12"
35
35
  Requires-Dist: xarray>=2022.3
36
36
  Provides-Extra: complete
37
37
  Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr]; extra == "complete"
@@ -67,7 +67,7 @@ Requires-Dist: sphinxext.opengraph>=0.8; extra == "docs"
67
67
  Provides-Extra: ecmwf
68
68
  Requires-Dist: cdsapi>=0.4; extra == "ecmwf"
69
69
  Requires-Dist: cfgrib>=0.9; extra == "ecmwf"
70
- Requires-Dist: eccodes>=1.4; extra == "ecmwf"
70
+ Requires-Dist: eccodes>=2.38; extra == "ecmwf"
71
71
  Requires-Dist: ecmwf-api-client>=1.6; extra == "ecmwf"
72
72
  Requires-Dist: netcdf4>=1.6.1; extra == "ecmwf"
73
73
  Requires-Dist: platformdirs>=3.0; extra == "ecmwf"
@@ -79,7 +79,8 @@ Requires-Dist: tqdm>=4.61; extra == "gcp"
79
79
  Provides-Extra: gfs
80
80
  Requires-Dist: boto3>=1.20; extra == "gfs"
81
81
  Requires-Dist: cfgrib>=0.9; extra == "gfs"
82
- Requires-Dist: eccodes>=1.4; extra == "gfs"
82
+ Requires-Dist: eccodes>=2.38; extra == "gfs"
83
+ Requires-Dist: netcdf4>=1.6.1; extra == "gfs"
83
84
  Requires-Dist: platformdirs>=3.0; extra == "gfs"
84
85
  Requires-Dist: tqdm>=4.61; extra == "gfs"
85
86
  Provides-Extra: jupyter
@@ -78,6 +78,7 @@ suppress_warnings = ["myst.header"]
78
78
  # Set up mapping for other projects' docs
79
79
  intersphinx_mapping = {
80
80
  "numpy": ("https://numpy.org/doc/stable/", None),
81
+ "open3d": ("https://www.open3d.org/docs/release/", None),
81
82
  "pandas": ("https://pandas.pydata.org/pandas-docs/dev/", None),
82
83
  "pyproj": ("https://pyproj4.github.io/pyproj/stable/", None),
83
84
  "python": ("https://docs.python.org/3/", None),
@@ -170,7 +171,7 @@ autodoc_typehints = "none"
170
171
 
171
172
  # autodoc options
172
173
  autoclass_content = "class" # only include docstring from Class (not __init__ method)
173
- autodoc_inherit_docstrings = False
174
+ autodoc_inherit_docstrings = True
174
175
  autodoc_default_options = {
175
176
  "members": None, # means yes/true/on
176
177
  "undoc-members": None,
@@ -92,7 +92,7 @@ Learn more on `contrails.org <https://contrails.org>`_.
92
92
  :alt: Unit test
93
93
  :target: https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml
94
94
 
95
- .. |Docs| image:: https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg
95
+ .. |Docs| image:: https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg?event=push
96
96
  :alt: Docs
97
97
  :target: https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml
98
98
 
@@ -65,7 +65,7 @@
65
65
  "## Download meteorology data from ECMWF\n",
66
66
  "\n",
67
67
  "This demo uses [ERA5](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) via the [Copernicus Data Store (CDS)](https://cds.climate.copernicus.eu/) for met data.\n",
68
- "This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/cdsapp#!/home) and local `~/.cdsapirc` file with credentials."
68
+ "This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/how-to-api) and local `~/.cdsapirc` file with credentials."
69
69
  ]
70
70
  },
71
71
  {
@@ -34,7 +34,7 @@
34
34
  "\n",
35
35
  "from pycontrails import Flight, MetVariable\n",
36
36
  "from pycontrails.core.met_var import Geopotential\n",
37
- "from pycontrails.datalib.ecmwf import ARCOERA5\n",
37
+ "from pycontrails.datalib.ecmwf import ERA5ARCO\n",
38
38
  "from pycontrails.models.apcemm.apcemm import APCEMM\n",
39
39
  "from pycontrails.models.humidity_scaling import HistogramMatching\n",
40
40
  "from pycontrails.models.issr import ISSR\n",
@@ -74,7 +74,7 @@
74
74
  "outputs": [],
75
75
  "source": [
76
76
  "variables = (v if isinstance(v, MetVariable) else Geopotential for v in APCEMM.met_variables)\n",
77
- "era5ml = ARCOERA5(time=time_bounds, variables=APCEMM.met_variables, n_jobs=4)"
77
+ "era5ml = ERA5ARCO(time=time_bounds, variables=APCEMM.met_variables)"
78
78
  ]
79
79
  },
80
80
  {
@@ -12,6 +12,7 @@ Models
12
12
  notebooks/SAC
13
13
  notebooks/AircraftPerformance
14
14
  notebooks/CoCiP
15
+ notebooks/CoCiPGrid
15
16
  notebooks/advection
16
- integrations/ACCF.ipynb
17
- integrations/APCEMM.ipynb
17
+ integrations/ACCF
18
+ integrations/APCEMM
@@ -6,7 +6,7 @@
6
6
  "source": [
7
7
  "# ARCO ERA5\n",
8
8
  "\n",
9
- "This notebook demonstrates how to load [ARCO ERA5](https://cloud.google.com/storage/docs/public-datasets/era5) data from [Google Cloud Storage](https://cloud.google.com/storage) through the pycontrails `ARCOERA5` interface."
9
+ "This notebook demonstrates how to load [ARCO ERA5](https://cloud.google.com/storage/docs/public-datasets/era5) data from [Google Cloud Storage](https://cloud.google.com/storage) through the pycontrails `ERA5ARCO` interface."
10
10
  ]
11
11
  },
12
12
  {
@@ -22,7 +22,7 @@
22
22
  "import xarray as xr\n",
23
23
  "\n",
24
24
  "from pycontrails import Flight, MetDataset\n",
25
- "from pycontrails.datalib.ecmwf import ARCOERA5\n",
25
+ "from pycontrails.datalib.ecmwf import ERA5ARCO\n",
26
26
  "from pycontrails.models.cocip import Cocip\n",
27
27
  "from pycontrails.models.humidity_scaling import ConstantHumidityScaling\n",
28
28
  "from pycontrails.models.issr import ISSR\n",
@@ -47,7 +47,7 @@
47
47
  "source": [
48
48
  "time = (\"2019-01-01T00\", \"2019-01-01T12\")\n",
49
49
  "\n",
50
- "era5_pl = ARCOERA5(\n",
50
+ "era5_pl = ERA5ARCO(\n",
51
51
  " time=time,\n",
52
52
  " variables=(*Cocip.met_variables, *Cocip.optional_met_variables),\n",
53
53
  " cachestore=None,\n",
@@ -55,7 +55,7 @@
55
55
  "met = era5_pl.open_metdataset()\n",
56
56
  "\n",
57
57
  "\n",
58
- "era5_sl = ARCOERA5(\n",
58
+ "era5_sl = ERA5ARCO(\n",
59
59
  " time=time,\n",
60
60
  " variables=Cocip.rad_variables,\n",
61
61
  " pressure_levels=-1,\n",
@@ -44,7 +44,7 @@
44
44
  "## Download meteorology data from ECMWF\n",
45
45
  "\n",
46
46
  "This demo uses [ERA5](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) via the [Copernicus Data Store (CDS)](https://cds.climate.copernicus.eu/) for met data.\n",
47
- "This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/cdsapp#!/home) and local `~/.cdsapirc` file with credentials.\n",
47
+ "This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/how-to-api) and local `~/.cdsapirc` file with credentials.\n",
48
48
  "\n",
49
49
  "> Note this will download ~1 GB of meteorology data to your computer"
50
50
  ]