pycontrails 0.54.4__cp313-cp313-win_amd64.whl → 0.54.6__cp313-cp313-win_amd64.whl
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.
- pycontrails/_version.py +2 -2
- pycontrails/core/aircraft_performance.py +34 -16
- pycontrails/core/airports.py +3 -4
- pycontrails/core/fleet.py +30 -9
- pycontrails/core/flight.py +8 -5
- pycontrails/core/flightplan.py +11 -11
- pycontrails/core/interpolation.py +7 -4
- pycontrails/core/met.py +145 -86
- pycontrails/core/met_var.py +62 -0
- pycontrails/core/models.py +3 -2
- pycontrails/core/rgi_cython.cp313-win_amd64.pyd +0 -0
- pycontrails/core/vector.py +97 -74
- pycontrails/datalib/_met_utils/metsource.py +1 -1
- pycontrails/datalib/ecmwf/era5.py +5 -6
- pycontrails/datalib/ecmwf/era5_model_level.py +4 -5
- pycontrails/datalib/ecmwf/ifs.py +1 -3
- pycontrails/datalib/gfs/gfs.py +1 -3
- pycontrails/models/apcemm/apcemm.py +2 -2
- pycontrails/models/apcemm/utils.py +1 -1
- pycontrails/models/cocip/cocip.py +86 -27
- pycontrails/models/cocip/output_formats.py +1 -0
- pycontrails/models/cocipgrid/cocip_grid.py +8 -73
- pycontrails/models/dry_advection.py +99 -31
- pycontrails/models/emissions/emissions.py +2 -2
- pycontrails/models/humidity_scaling/humidity_scaling.py +1 -1
- pycontrails/models/issr.py +2 -2
- pycontrails/models/pcc.py +1 -2
- pycontrails/models/ps_model/ps_grid.py +2 -2
- pycontrails/models/ps_model/ps_model.py +4 -32
- pycontrails/models/ps_model/ps_operational_limits.py +2 -6
- pycontrails/models/tau_cirrus.py +13 -6
- pycontrails/physics/geo.py +3 -3
- {pycontrails-0.54.4.dist-info → pycontrails-0.54.6.dist-info}/METADATA +3 -4
- {pycontrails-0.54.4.dist-info → pycontrails-0.54.6.dist-info}/RECORD +38 -38
- {pycontrails-0.54.4.dist-info → pycontrails-0.54.6.dist-info}/WHEEL +1 -1
- {pycontrails-0.54.4.dist-info → pycontrails-0.54.6.dist-info}/LICENSE +0 -0
- {pycontrails-0.54.4.dist-info → pycontrails-0.54.6.dist-info}/NOTICE +0 -0
- {pycontrails-0.54.4.dist-info → pycontrails-0.54.6.dist-info}/top_level.txt +0 -0
|
@@ -19,7 +19,7 @@ from pycontrails.core.flight import Flight
|
|
|
19
19
|
from pycontrails.core.fuel import Fuel, SAFBlend
|
|
20
20
|
from pycontrails.core.interpolation import EmissionsProfileInterpolator
|
|
21
21
|
from pycontrails.core.met import MetDataset
|
|
22
|
-
from pycontrails.core.met_var import AirTemperature, SpecificHumidity
|
|
22
|
+
from pycontrails.core.met_var import AirTemperature, MetVariable, SpecificHumidity
|
|
23
23
|
from pycontrails.core.models import Model, ModelParams
|
|
24
24
|
from pycontrails.core.vector import GeoVectorDataset
|
|
25
25
|
from pycontrails.models.emissions import black_carbon, ffm2
|
|
@@ -75,7 +75,7 @@ class Emissions(Model):
|
|
|
75
75
|
|
|
76
76
|
name = "emissions"
|
|
77
77
|
long_name = "ICAO Emissions Databank (EDB)"
|
|
78
|
-
met_variables = AirTemperature, SpecificHumidity
|
|
78
|
+
met_variables: tuple[MetVariable, ...] = AirTemperature, SpecificHumidity
|
|
79
79
|
default_params = EmissionsParams
|
|
80
80
|
|
|
81
81
|
source: GeoVectorDataset
|
|
@@ -654,7 +654,7 @@ def histogram_matching(
|
|
|
654
654
|
as a numpy array with the same shape and dtype as ``era5_rhi``.
|
|
655
655
|
"""
|
|
656
656
|
if level_type not in ["pressure", "model"]:
|
|
657
|
-
msg = f"Invalid 'level_type' value '{level_type}'.
|
|
657
|
+
msg = f"Invalid 'level_type' value '{level_type}'. Must be one of ['pressure', 'model']."
|
|
658
658
|
raise ValueError(msg)
|
|
659
659
|
df = _load_quantiles(level_type)
|
|
660
660
|
iagos_quantiles = df[("iagos", "iagos")]
|
pycontrails/models/issr.py
CHANGED
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
import pycontrails
|
|
11
11
|
from pycontrails.core.flight import Flight
|
|
12
12
|
from pycontrails.core.met import MetDataset
|
|
13
|
-
from pycontrails.core.met_var import AirTemperature, SpecificHumidity
|
|
13
|
+
from pycontrails.core.met_var import AirTemperature, MetVariable, SpecificHumidity
|
|
14
14
|
from pycontrails.core.models import Model, ModelParams
|
|
15
15
|
from pycontrails.core.vector import GeoVectorDataset
|
|
16
16
|
from pycontrails.models.humidity_scaling import HumidityScaling
|
|
@@ -70,7 +70,7 @@ class ISSR(Model):
|
|
|
70
70
|
|
|
71
71
|
name = "issr"
|
|
72
72
|
long_name = "Ice super-saturated regions"
|
|
73
|
-
met_variables = AirTemperature, SpecificHumidity
|
|
73
|
+
met_variables: tuple[MetVariable, ...] = AirTemperature, SpecificHumidity
|
|
74
74
|
default_params = ISSRParams
|
|
75
75
|
|
|
76
76
|
@overload
|
pycontrails/models/pcc.py
CHANGED
|
@@ -186,8 +186,7 @@ class PCC(Model):
|
|
|
186
186
|
|
|
187
187
|
# issue recombining groups arises if "level" is in dims
|
|
188
188
|
# convert "level" dimension to coordinate
|
|
189
|
-
|
|
190
|
-
return b_crit_potential
|
|
189
|
+
return b_crit_potential.squeeze("level")
|
|
191
190
|
|
|
192
191
|
# apply calculation per pressure level
|
|
193
192
|
return (
|
|
@@ -19,7 +19,7 @@ from pycontrails.core.aircraft_performance import (
|
|
|
19
19
|
from pycontrails.core.flight import Flight
|
|
20
20
|
from pycontrails.core.fuel import JetA
|
|
21
21
|
from pycontrails.core.met import MetDataset
|
|
22
|
-
from pycontrails.core.met_var import AirTemperature
|
|
22
|
+
from pycontrails.core.met_var import AirTemperature, MetVariable
|
|
23
23
|
from pycontrails.core.vector import GeoVectorDataset
|
|
24
24
|
from pycontrails.models.ps_model import ps_model, ps_operational_limits
|
|
25
25
|
from pycontrails.models.ps_model.ps_aircraft_params import PSAircraftEngineParams
|
|
@@ -58,7 +58,7 @@ class PSGrid(AircraftPerformanceGrid):
|
|
|
58
58
|
|
|
59
59
|
name = "PSGrid"
|
|
60
60
|
long_name = "Poll-Schumann Aircraft Performance evaluated at arbitrary points"
|
|
61
|
-
met_variables = (AirTemperature,)
|
|
61
|
+
met_variables: tuple[MetVariable, ...] = (AirTemperature,)
|
|
62
62
|
default_params = PSGridParams
|
|
63
63
|
|
|
64
64
|
met: MetDataset
|
|
@@ -7,7 +7,7 @@ import functools
|
|
|
7
7
|
import pathlib
|
|
8
8
|
import sys
|
|
9
9
|
from collections.abc import Mapping
|
|
10
|
-
from typing import Any
|
|
10
|
+
from typing import Any
|
|
11
11
|
|
|
12
12
|
if sys.version_info >= (3, 12):
|
|
13
13
|
from typing import override
|
|
@@ -25,10 +25,9 @@ from pycontrails.core.aircraft_performance import (
|
|
|
25
25
|
AircraftPerformanceData,
|
|
26
26
|
AircraftPerformanceParams,
|
|
27
27
|
)
|
|
28
|
-
from pycontrails.core.fleet import Fleet
|
|
29
28
|
from pycontrails.core.flight import Flight
|
|
30
29
|
from pycontrails.core.met import MetDataset
|
|
31
|
-
from pycontrails.core.met_var import AirTemperature, EastwardWind, NorthwardWind
|
|
30
|
+
from pycontrails.core.met_var import AirTemperature, EastwardWind, MetVariable, NorthwardWind
|
|
32
31
|
from pycontrails.models.ps_model import ps_operational_limits as ps_lims
|
|
33
32
|
from pycontrails.models.ps_model.ps_aircraft_params import (
|
|
34
33
|
PSAircraftEngineParams,
|
|
@@ -71,7 +70,7 @@ class PSFlight(AircraftPerformance):
|
|
|
71
70
|
|
|
72
71
|
name = "PSFlight"
|
|
73
72
|
long_name = "Poll-Schumann Aircraft Performance Model"
|
|
74
|
-
met_variables = (AirTemperature,)
|
|
73
|
+
met_variables: tuple[MetVariable, ...] = (AirTemperature,)
|
|
75
74
|
optional_met_variables = EastwardWind, NorthwardWind
|
|
76
75
|
default_params = PSFlightParams
|
|
77
76
|
|
|
@@ -118,35 +117,8 @@ class PSFlight(AircraftPerformance):
|
|
|
118
117
|
raise KeyError(msg)
|
|
119
118
|
return False
|
|
120
119
|
|
|
121
|
-
@overload
|
|
122
|
-
def eval(self, source: Fleet, **params: Any) -> Fleet: ...
|
|
123
|
-
|
|
124
|
-
@overload
|
|
125
|
-
def eval(self, source: Flight, **params: Any) -> Flight: ...
|
|
126
|
-
|
|
127
|
-
@overload
|
|
128
|
-
def eval(self, source: None = ..., **params: Any) -> NoReturn: ...
|
|
129
|
-
|
|
130
120
|
@override
|
|
131
|
-
def
|
|
132
|
-
self.update_params(params)
|
|
133
|
-
self.set_source(source)
|
|
134
|
-
self.source = self.require_source_type(Flight)
|
|
135
|
-
self.downselect_met()
|
|
136
|
-
self.set_source_met()
|
|
137
|
-
|
|
138
|
-
# Calculate true airspeed if not included on source
|
|
139
|
-
self.ensure_true_airspeed_on_source()
|
|
140
|
-
|
|
141
|
-
if isinstance(self.source, Fleet):
|
|
142
|
-
fls = [self._eval_flight(fl) for fl in self.source.to_flight_list()]
|
|
143
|
-
self.source = Fleet.from_seq(fls, attrs=self.source.attrs, broadcast_numeric=False)
|
|
144
|
-
return self.source
|
|
145
|
-
|
|
146
|
-
self.source = self._eval_flight(self.source)
|
|
147
|
-
return self.source
|
|
148
|
-
|
|
149
|
-
def _eval_flight(self, fl: Flight) -> Flight:
|
|
121
|
+
def eval_flight(self, fl: Flight) -> Flight:
|
|
150
122
|
# Ensure aircraft type is available
|
|
151
123
|
try:
|
|
152
124
|
aircraft_type = fl.attrs["aircraft_type"]
|
|
@@ -390,7 +390,7 @@ def minimum_mach_num(
|
|
|
390
390
|
)
|
|
391
391
|
return amass_max - aircraft_mass
|
|
392
392
|
|
|
393
|
-
|
|
393
|
+
return scipy.optimize.newton(
|
|
394
394
|
excess_mass,
|
|
395
395
|
args=(
|
|
396
396
|
air_pressure,
|
|
@@ -404,8 +404,6 @@ def minimum_mach_num(
|
|
|
404
404
|
tol=1e-4,
|
|
405
405
|
)
|
|
406
406
|
|
|
407
|
-
return m
|
|
408
|
-
|
|
409
407
|
|
|
410
408
|
def maximum_mach_num(
|
|
411
409
|
altitude_ft: ArrayOrFloat,
|
|
@@ -450,7 +448,7 @@ def maximum_mach_num(
|
|
|
450
448
|
atyp_param.p_inf_co,
|
|
451
449
|
)
|
|
452
450
|
|
|
453
|
-
|
|
451
|
+
return scipy.optimize.newton(
|
|
454
452
|
func=get_excess_thrust_available,
|
|
455
453
|
args=(air_temperature, air_pressure, aircraft_mass, theta, atyp_param),
|
|
456
454
|
x0=mach_num_op_lim,
|
|
@@ -458,8 +456,6 @@ def maximum_mach_num(
|
|
|
458
456
|
tol=1e-4,
|
|
459
457
|
).clip(max=mach_num_op_lim)
|
|
460
458
|
|
|
461
|
-
return max_mach
|
|
462
|
-
|
|
463
459
|
|
|
464
460
|
# ----------------
|
|
465
461
|
# Fuel flow limits
|
pycontrails/models/tau_cirrus.py
CHANGED
|
@@ -45,7 +45,8 @@ def tau_cirrus(met: MetDataset) -> xr.DataArray:
|
|
|
45
45
|
met : MetDataset
|
|
46
46
|
A MetDataset with the following variables:
|
|
47
47
|
- "air_temperature"
|
|
48
|
-
- "
|
|
48
|
+
- "mass_fraction_of_cloud_ice_in_air", "specific_cloud_ice_water_content",
|
|
49
|
+
or "ice_water_mixing_ratio"
|
|
49
50
|
|
|
50
51
|
Returns
|
|
51
52
|
-------
|
|
@@ -64,15 +65,21 @@ def tau_cirrus(met: MetDataset) -> xr.DataArray:
|
|
|
64
65
|
geopotential_height = _geopotential_height(met)
|
|
65
66
|
|
|
66
67
|
# TODO: these are not *quite* the same, though we treat them the same for now
|
|
67
|
-
#
|
|
68
|
-
#
|
|
68
|
+
# The generic "mass_fraction_of_cloud_ice_in_air" and ECMWF "specific_cloud_ice_water_content"
|
|
69
|
+
# are mass ice per mass of *moist* air,
|
|
70
|
+
# whereas GFS "ice_water_mixing_ratio" is mass ice per mass of *dry* air
|
|
69
71
|
#
|
|
70
72
|
# The method `cirrus_effective_extinction_coef` uses input of mass ice per mass of *dry* air,
|
|
71
|
-
# so the
|
|
72
|
-
|
|
73
|
+
# so only the GFS data is exactly right.
|
|
74
|
+
if "mass_fraction_of_cloud_ice_in_air" in met.data:
|
|
75
|
+
ciwc = met.data["mass_fraction_of_cloud_ice_in_air"]
|
|
76
|
+
elif "specific_cloud_ice_water_content" in met.data:
|
|
73
77
|
ciwc = met.data["specific_cloud_ice_water_content"]
|
|
74
|
-
|
|
78
|
+
elif "ice_water_mixing_ratio" in met.data:
|
|
75
79
|
ciwc = met.data["ice_water_mixing_ratio"]
|
|
80
|
+
else:
|
|
81
|
+
msg = "Could not find cloud ice variable"
|
|
82
|
+
raise KeyError(msg)
|
|
76
83
|
|
|
77
84
|
beta_e = cirrus_effective_extinction_coef(
|
|
78
85
|
ciwc,
|
pycontrails/physics/geo.py
CHANGED
|
@@ -516,7 +516,7 @@ def solar_constant(theta_rad: ArrayLike) -> ArrayLike:
|
|
|
516
516
|
+ (0.000077 * np.sin(theta_rad * 2))
|
|
517
517
|
)
|
|
518
518
|
|
|
519
|
-
return constants.solar_constant * orbital_effect
|
|
519
|
+
return constants.solar_constant * orbital_effect # type: ignore[return-value]
|
|
520
520
|
|
|
521
521
|
|
|
522
522
|
def cosine_solar_zenith_angle(
|
|
@@ -662,7 +662,7 @@ def solar_declination_angle(theta_rad: ArrayLike) -> ArrayLike:
|
|
|
662
662
|
:func:`cosine_solar_zenith_angle`
|
|
663
663
|
"""
|
|
664
664
|
return (
|
|
665
|
-
0.396372
|
|
665
|
+
0.396372 # type: ignore[return-value]
|
|
666
666
|
- (22.91327 * np.cos(theta_rad))
|
|
667
667
|
+ (4.02543 * np.sin(theta_rad))
|
|
668
668
|
- (0.387205 * np.cos(2 * theta_rad))
|
|
@@ -729,7 +729,7 @@ def orbital_correction_for_solar_hour_angle(theta_rad: ArrayLike) -> ArrayLike:
|
|
|
729
729
|
Tested against :cite:`noaaSolarCalculationDetails`
|
|
730
730
|
"""
|
|
731
731
|
return (
|
|
732
|
-
0.004297
|
|
732
|
+
0.004297 # type: ignore[return-value]
|
|
733
733
|
+ (0.107029 * np.cos(theta_rad))
|
|
734
734
|
- (1.837877 * np.sin(theta_rad))
|
|
735
735
|
- (0.837378 * np.cos(2 * theta_rad))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.54.
|
|
3
|
+
Version: 0.54.6
|
|
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
|
|
@@ -49,8 +49,7 @@ Requires-Dist: pyarrow>=5.0; extra == "dev"
|
|
|
49
49
|
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
50
50
|
Requires-Dist: pytest-cov>=2.11; extra == "dev"
|
|
51
51
|
Requires-Dist: requests>=2.25; extra == "dev"
|
|
52
|
-
Requires-Dist: ruff
|
|
53
|
-
Requires-Dist: setuptools; extra == "dev"
|
|
52
|
+
Requires-Dist: ruff>=0.9.0; extra == "dev"
|
|
54
53
|
Provides-Extra: docs
|
|
55
54
|
Requires-Dist: doc8>=1.1; extra == "docs"
|
|
56
55
|
Requires-Dist: furo>=2023.3; extra == "docs"
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
pycontrails/__init__.py,sha256=NOLObVatChUoklxD_qM8rjDtzrYu1gpmurNWqBhPpUM,2074
|
|
2
|
-
pycontrails/_version.py,sha256=
|
|
2
|
+
pycontrails/_version.py,sha256=fpB6PGg0QTJniUGkjeIPxIbiS3yN4-9wDXf5Ml7KyLE,429
|
|
3
3
|
pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
pycontrails/core/__init__.py,sha256=kOAehIZBbvksSW3MuU2DfzsyeE4PaFnOTpYMeq2ZDPE,886
|
|
5
|
-
pycontrails/core/aircraft_performance.py,sha256=
|
|
6
|
-
pycontrails/core/airports.py,sha256=
|
|
5
|
+
pycontrails/core/aircraft_performance.py,sha256=lXw-RRg96yfXnsWPR5q3ARV_RGp1c32ozfx0mkHlb1k,28688
|
|
6
|
+
pycontrails/core/airports.py,sha256=b0ujvU1nyWr4a-qtNSigPo3s4K02xAeGcyTeeHFK4KU,6963
|
|
7
7
|
pycontrails/core/cache.py,sha256=NnlElV4ejshgyU2LMf5BtZGqmr1kZOxwz1hAT2Lq1ok,28953
|
|
8
8
|
pycontrails/core/coordinates.py,sha256=J5qjGuXgbLUw_U9_qREdgOaHl0ngK6Hbbjj3uw7FwNE,5565
|
|
9
|
-
pycontrails/core/fleet.py,sha256=
|
|
10
|
-
pycontrails/core/flight.py,sha256=
|
|
11
|
-
pycontrails/core/flightplan.py,sha256=
|
|
9
|
+
pycontrails/core/fleet.py,sha256=ddujPC79K975gWVk8NDskE79OZaUam8tPR9rONaT918,17192
|
|
10
|
+
pycontrails/core/flight.py,sha256=dJ8t2BvM9C4fdmNZFQ9fHxRbcrhOP4KIJ6l0pYQZrsU,82830
|
|
11
|
+
pycontrails/core/flightplan.py,sha256=bcDjmJ-UR1gtuOLgAkCsRnwjJrz_l3n0nVRuj4_d9EU,7555
|
|
12
12
|
pycontrails/core/fuel.py,sha256=06YUDhvC8Rx6KbUXRB9qLTsJX2V7tLbzjwAfDH0R6l8,4472
|
|
13
|
-
pycontrails/core/interpolation.py,sha256
|
|
14
|
-
pycontrails/core/met.py,sha256=
|
|
15
|
-
pycontrails/core/met_var.py,sha256=
|
|
16
|
-
pycontrails/core/models.py,sha256=
|
|
13
|
+
pycontrails/core/interpolation.py,sha256=-GC3T6yh3nMtt7JCawoYeCUnDNRY9GHhxhkRhhnntxE,26437
|
|
14
|
+
pycontrails/core/met.py,sha256=JeTLNbFMv19MJk8N3kihLgt5vXlMHOj0AetO8rHtPgU,106497
|
|
15
|
+
pycontrails/core/met_var.py,sha256=kBwk0twIfo4jWNo_L1vxwdB40YzuSjXhbLFxGUFSpfM,11913
|
|
16
|
+
pycontrails/core/models.py,sha256=odpHsazdvF_tKNwNS3y1qU9L3dC0dGV2RA5XqU4BeYw,41004
|
|
17
17
|
pycontrails/core/polygon.py,sha256=NZ4YBhdALidXYOPsSX1cwGQ022j-AXgbWIQg7LA-f-I,18593
|
|
18
|
-
pycontrails/core/rgi_cython.cp313-win_amd64.pyd,sha256=
|
|
19
|
-
pycontrails/core/vector.py,sha256=
|
|
18
|
+
pycontrails/core/rgi_cython.cp313-win_amd64.pyd,sha256=wygxqY8iOUm6SYUKIR7bVOzv3LJKH_oh-G_ZX78MytE,263168
|
|
19
|
+
pycontrails/core/vector.py,sha256=T8YMtylYPmeHo3sanfgmZVSCPckoJTFg3Iq8apGBNIA,73445
|
|
20
20
|
pycontrails/datalib/__init__.py,sha256=Q2RrnjwtFzfsmJ2tEojDCzDMkd8R0MYw4mQz3YwUsqI,381
|
|
21
21
|
pycontrails/datalib/goes.py,sha256=eMo_A_Kxii3dTItp6_j6obvyT1NiGAr06RyYMuHZzd0,27327
|
|
22
22
|
pycontrails/datalib/landsat.py,sha256=YrDpngF5HtvWFVwxN0FLFxCfZIEmeBMiifdkbH7fQTk,20263
|
|
@@ -25,20 +25,20 @@ pycontrails/datalib/spire.py,sha256=aW0wh5GDrszFb20ZMzmWKQ4uHbOCmHvVt9Sf4U3AyTI,
|
|
|
25
25
|
pycontrails/datalib/_leo_utils/search.py,sha256=8JzT56ps3SH1W-5rwL8BWuxLLljwxa_5fjLAuZdL_Vg,8937
|
|
26
26
|
pycontrails/datalib/_leo_utils/vis.py,sha256=0UDVcqMRqHmAORDV4Xyk-HVnTAjbOCf7KCpWm2ilTLE,1861
|
|
27
27
|
pycontrails/datalib/_leo_utils/static/bq_roi_query.sql,sha256=r_gVjpoEvCcAJP56QlXaXzgfWPZdf-kYo3D316glJLU,266
|
|
28
|
-
pycontrails/datalib/_met_utils/metsource.py,sha256
|
|
28
|
+
pycontrails/datalib/_met_utils/metsource.py,sha256=7QGqAt3FXmXnU7AfN-w6wkXzZKgpCS1WYfoTg5uhtZA,24865
|
|
29
29
|
pycontrails/datalib/ecmwf/__init__.py,sha256=9EkfWlGki8LYt7ySKf87gS8RzZjAOxK2w87_Sok3CCo,2094
|
|
30
30
|
pycontrails/datalib/ecmwf/arco_era5.py,sha256=PojAfT0N12SLcgiecZtHiN96sbRWwFx3PThrXIwSX5M,12782
|
|
31
31
|
pycontrails/datalib/ecmwf/common.py,sha256=6fcZC_-3FvWJ3vtlZX89PiiS7-DSQhAOgxrLjwU4iW4,4138
|
|
32
|
-
pycontrails/datalib/ecmwf/era5.py,sha256=
|
|
33
|
-
pycontrails/datalib/ecmwf/era5_model_level.py,sha256=
|
|
32
|
+
pycontrails/datalib/ecmwf/era5.py,sha256=TbZlOqn3fPmfvCUR1XrVBWxNgIBpSXgRx0S4M49TSeY,19506
|
|
33
|
+
pycontrails/datalib/ecmwf/era5_model_level.py,sha256=NVquyG_3SzdmfoQl25Wvp4oB_pOe7K_AQOfNv7no14E,19844
|
|
34
34
|
pycontrails/datalib/ecmwf/hres.py,sha256=k7VK1KUOopzTd0TrO5FYwFSSagArKq4q8oAyK3hNPso,29168
|
|
35
35
|
pycontrails/datalib/ecmwf/hres_model_level.py,sha256=ghrN-z5bjV-ztv6L5KlGiCLlGR9ABbAe5k38CaARmLU,18121
|
|
36
|
-
pycontrails/datalib/ecmwf/ifs.py,sha256=
|
|
36
|
+
pycontrails/datalib/ecmwf/ifs.py,sha256=a5QmXuihBNGx1eNN7EJGjR5dL9dO142nqkDSkPYGGlc,11048
|
|
37
37
|
pycontrails/datalib/ecmwf/model_levels.py,sha256=noLSx45AHZ0rFPiUh3aK3iaEueHgsg6mG_AplHqHeU8,17431
|
|
38
38
|
pycontrails/datalib/ecmwf/variables.py,sha256=49uzpkk9YV5OGBnq-Po5e3ig2JXi2i1ZtsOOEC-AQFI,10181
|
|
39
39
|
pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv,sha256=9u7CVA3QnPUmNLIWUkF5b9wFunczkvx1zSudwGmtOv8,9927
|
|
40
40
|
pycontrails/datalib/gfs/__init__.py,sha256=DGd8twOXwRZZhHx5muc9SJT-YET1KB599kS45_x3IbY,712
|
|
41
|
-
pycontrails/datalib/gfs/gfs.py,sha256=
|
|
41
|
+
pycontrails/datalib/gfs/gfs.py,sha256=qh_nMDaSqkGs-YgibsmDWWXGtn6HY7EUqv5tve7IK5s,23055
|
|
42
42
|
pycontrails/datalib/gfs/variables.py,sha256=gmw5cs8RAeB-s9kCbnuKFp1K2SqNbc0lNR-JqhcenZY,3239
|
|
43
43
|
pycontrails/ext/bada.py,sha256=RmLDMaZQody8XUR-1I_5rPJqoz6eIq63IpDTcuJweoc,1133
|
|
44
44
|
pycontrails/ext/cirium.py,sha256=zRPVBBWwocZKkX3XhonSBf54x7P_xnjRcA7psI0Kqnw,429
|
|
@@ -46,52 +46,52 @@ pycontrails/ext/empirical_grid.py,sha256=mveQltokaGeQcxxbdMSLQ6wQ14oh3XX5dfzjWaF
|
|
|
46
46
|
pycontrails/ext/synthetic_flight.py,sha256=6w2pC7DpbdHi3J1w5BL-8j3xCzYdP8N7FQ8dsMfDBpw,17226
|
|
47
47
|
pycontrails/models/__init__.py,sha256=TKhrXe1Pu1-mV1gctx8cUAMrVxCCAtBkbZi9olfWq8s,34
|
|
48
48
|
pycontrails/models/accf.py,sha256=YlRo5aDeHSSYE7IRHbNW4dsWTACCkVaYsqGbgM-AqlI,14090
|
|
49
|
-
pycontrails/models/dry_advection.py,sha256=
|
|
50
|
-
pycontrails/models/issr.py,sha256=
|
|
51
|
-
pycontrails/models/pcc.py,sha256=
|
|
49
|
+
pycontrails/models/dry_advection.py,sha256=vDPjNrECefMvRVnfkhWCWbYQPpB2YYhGUvLiIuW10TM,19727
|
|
50
|
+
pycontrails/models/issr.py,sha256=J6mh4pze31XpD2_zD9ujzYPXsZFrmSwNcRORCcLoOVI,7588
|
|
51
|
+
pycontrails/models/pcc.py,sha256=7k8kICqDeZ99O2n2Zpnu7EFNGjEpPka_9cu9nrmP44s,11394
|
|
52
52
|
pycontrails/models/pcr.py,sha256=G_0yR5PsCMeJBP6tZFi3M7A6Wcq8s71UvosdA7ozUkI,5502
|
|
53
53
|
pycontrails/models/sac.py,sha256=LhEwexJZnkxitj-x5eNVSCDGdkoCdj8Zh_I0WB8FWOY,16405
|
|
54
|
-
pycontrails/models/tau_cirrus.py,sha256=
|
|
54
|
+
pycontrails/models/tau_cirrus.py,sha256=G39eEUYdPMC0AEW4msC1pxRvzLLdgw9Sfzzzi_jB5Sw,5959
|
|
55
55
|
pycontrails/models/apcemm/__init__.py,sha256=dDsRW3V6jjzKDd43Yoyc74m_Om1fccvftZgp3OFdAYE,183
|
|
56
|
-
pycontrails/models/apcemm/apcemm.py,sha256=
|
|
56
|
+
pycontrails/models/apcemm/apcemm.py,sha256=tbG57Vro7_vXwqE0YpXrimPTtvAXsurti2eBAVWGe-Y,40958
|
|
57
57
|
pycontrails/models/apcemm/inputs.py,sha256=zHRSWVVlwYw6ms7PpC0p0I-xFsRDUVY9eDZ1g95Uf8U,6811
|
|
58
|
-
pycontrails/models/apcemm/utils.py,sha256=
|
|
58
|
+
pycontrails/models/apcemm/utils.py,sha256=gew1MGtuOwKy0CTVKomJ_Lmuhmy4JxsopkughzCeB4o,17519
|
|
59
59
|
pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=A3H_FWVOtqkZhG91TWLdblMKaLWIcjRMsKqkfTN6mB4,6928
|
|
60
60
|
pycontrails/models/cocip/__init__.py,sha256=v8JJN_Jx3_tOHaqGaQG-Es7srEAtSCHI7-gCEnM-n-s,991
|
|
61
|
-
pycontrails/models/cocip/cocip.py,sha256=
|
|
61
|
+
pycontrails/models/cocip/cocip.py,sha256=CtZWQWAAuOhyn3KVgkvoQGYYRNGP__8G4HR6c-irYe8,105086
|
|
62
62
|
pycontrails/models/cocip/cocip_params.py,sha256=9q6teJgXKxEqWLhA_itMG-A8OeLIFb7XvEUUf7eTjdE,12631
|
|
63
63
|
pycontrails/models/cocip/cocip_uncertainty.py,sha256=fKQVAg-HyviegwNauxLgX9wdA0cRpK8XAOCNjZZIRWI,12528
|
|
64
64
|
pycontrails/models/cocip/contrail_properties.py,sha256=jF7iXFmMQEpyI3DNkRa7NFs-unx5a3HmmX6xs9FSJDQ,57734
|
|
65
|
-
pycontrails/models/cocip/output_formats.py,sha256=
|
|
65
|
+
pycontrails/models/cocip/output_formats.py,sha256=WpuSYTZ221kYUQNgUZGssdZlMXMy2GeCCiU13pCaAyI,85975
|
|
66
66
|
pycontrails/models/cocip/radiative_forcing.py,sha256=Zx7amTmIQHozuYyxfkryBJZVFDJws6a--By71TIMMIk,46297
|
|
67
67
|
pycontrails/models/cocip/radiative_heating.py,sha256=PcOEkqRtQJNq7bxOoz1baBbVV2ku1UQRMrrQXXsRBwc,19504
|
|
68
68
|
pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=GBFtwCPslStlgJU81WgE7nkWHVfSJkxFrPgJ2nq4PJc,15081
|
|
69
69
|
pycontrails/models/cocip/wake_vortex.py,sha256=i6P1UDxde_WPP8SAliPdiaVCdeFMRxCFR7_zKaoNlno,14911
|
|
70
70
|
pycontrails/models/cocip/wind_shear.py,sha256=qhmP3RJ9SEjd-qnXcgRiYis9-apKGF-1d78z6N__tq8,3988
|
|
71
71
|
pycontrails/models/cocipgrid/__init__.py,sha256=OYSdZ1Htbr_IP7N_HuOAj1Pa_KLHtdEeJfXP-cN-gnU,271
|
|
72
|
-
pycontrails/models/cocipgrid/cocip_grid.py,sha256=
|
|
72
|
+
pycontrails/models/cocipgrid/cocip_grid.py,sha256=8J7WeTyblaJo69yp6VSRVcic_Jrs1vITXL93jTWHY1o,93672
|
|
73
73
|
pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=ZpN00VEmeRYaeZhvSfVjnEjrgn6XdClf1eqJC8Ytcuw,6013
|
|
74
74
|
pycontrails/models/emissions/__init__.py,sha256=phai3wH5VuUyfyVpu5vHOFI0jXSyoYSWvLTknS78xs0,499
|
|
75
75
|
pycontrails/models/emissions/black_carbon.py,sha256=oIi-SxnRKdVDewyzqpA5eE4kzq5CJCtPcNcqrUh4Ito,20940
|
|
76
|
-
pycontrails/models/emissions/emissions.py,sha256=
|
|
76
|
+
pycontrails/models/emissions/emissions.py,sha256=nj3dNXH2NXX4xotsbkt2_yVen4nAioSFFeqCu-9dL9w,49044
|
|
77
77
|
pycontrails/models/emissions/ffm2.py,sha256=sWWzaV-5N2nNQlS0RxgKFwPzja5dehc99mfifTHW6pQ,12404
|
|
78
78
|
pycontrails/models/emissions/static/default-engine-uids.csv,sha256=6e-0Fjbka1www4o2CNtw2pW-g0s_E7hZQ6vOaR84Q5Y,6456
|
|
79
79
|
pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv,sha256=s-3_KGQyVoypXCHeQgsTDwdri-e3JVJn5SDxZo60m_s,128119
|
|
80
80
|
pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv,sha256=MwLLrcATd38KPddTpHpMGBrZuA4I7he-1B5otTp4ar8,77533
|
|
81
81
|
pycontrails/models/humidity_scaling/__init__.py,sha256=-xqDCJzKJx2nX6yl-gglHheQHWDhkvb8X7atbMJT2LA,1156
|
|
82
|
-
pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=
|
|
82
|
+
pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=7s9EsWmHm02feXZOSB-sdnVJQ-wyTvtRwB-C9NqqiTQ,37797
|
|
83
83
|
pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq,sha256=pShCvNUo0NYtAHhT9IBRuj38X9jejdlKfv-ZoOKmtKI,35943
|
|
84
84
|
pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq,sha256=tfYhbafF9Z-gGCg6VQ1YBlOaK_01e65Dc6s9b-hQ6Zo,286375
|
|
85
85
|
pycontrails/models/ps_model/__init__.py,sha256=fCGfdrJjK4K_EOODU8exmOFzedbABb3bMbuFi0gbrgc,571
|
|
86
86
|
pycontrails/models/ps_model/ps_aircraft_params.py,sha256=xs6-bCAhhOgN-LRDa7rUuuJdYM-bjDAMABLRayVhYwo,13731
|
|
87
|
-
pycontrails/models/ps_model/ps_grid.py,sha256=
|
|
88
|
-
pycontrails/models/ps_model/ps_model.py,sha256
|
|
89
|
-
pycontrails/models/ps_model/ps_operational_limits.py,sha256=
|
|
87
|
+
pycontrails/models/ps_model/ps_grid.py,sha256=IhtCJF5FxJM7xYcc6jwPog91owe3dfkMwsOh6UTcrqI,26772
|
|
88
|
+
pycontrails/models/ps_model/ps_model.py,sha256=-l2sEWzyjaoXNjvATKoC_vqbNYfex4XpgXSzDAf03zQ,33261
|
|
89
|
+
pycontrails/models/ps_model/ps_operational_limits.py,sha256=95evggmtPbnr3kqNgqfOEJhbupK_D_ksONPmTm0k2B8,16966
|
|
90
90
|
pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv,sha256=2RtIHwXRuMVAEfsefopm1m6ozHi8YciYUN3WTMpfoo4,25852
|
|
91
91
|
pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv,sha256=MLXOeVjC5FQULGNc6rn-_BdSURJAkJLMSDzPhC7OpDY,1141
|
|
92
92
|
pycontrails/physics/__init__.py,sha256=AScCMSMSZjKxfL6mssdSLwcja1ml7MzREThQp5PLr9U,45
|
|
93
93
|
pycontrails/physics/constants.py,sha256=SWG7H7eJCvQXfUR3qS6_fYzNvEeRZga50qT2RuaHoYU,3262
|
|
94
|
-
pycontrails/physics/geo.py,sha256=
|
|
94
|
+
pycontrails/physics/geo.py,sha256=WyZKLj-63yGCfjePEhiwxLp26be44VCdEiisu9tXtzE,37461
|
|
95
95
|
pycontrails/physics/jet.py,sha256=z_MNEU7BVcy0sTtRbpKooS0Ynf4Ah5kVMDoLIeO-4Fg,31274
|
|
96
96
|
pycontrails/physics/thermo.py,sha256=HAcg2wmNXW-vJbOF2kOXBoUyJiAosPY0nRWeM37otdY,13238
|
|
97
97
|
pycontrails/physics/units.py,sha256=P6j9v2-29TDoy2JE_FQlcXH-2mlihVulSP1wBLqZY44,12765
|
|
@@ -103,9 +103,9 @@ pycontrails/utils/iteration.py,sha256=En2YY4NiNwCNtAVO8HL6tv9byBGKs8MKSI7R8P-gZy
|
|
|
103
103
|
pycontrails/utils/json.py,sha256=Pqashwoupuf_GfrrSfHclwug9Hg-kYQ4WNxEqay_0Rc,6083
|
|
104
104
|
pycontrails/utils/temp.py,sha256=5XXqQoEfWjz1OrhoOBZD5vkkCFeuq9LpZkyhc38gIeY,1159
|
|
105
105
|
pycontrails/utils/types.py,sha256=hPqUwaeRLgga69nj7LVbPojPg1k7pUSvYzFlGAiPKIM,5154
|
|
106
|
-
pycontrails-0.54.
|
|
107
|
-
pycontrails-0.54.
|
|
108
|
-
pycontrails-0.54.
|
|
109
|
-
pycontrails-0.54.
|
|
110
|
-
pycontrails-0.54.
|
|
111
|
-
pycontrails-0.54.
|
|
106
|
+
pycontrails-0.54.6.dist-info/LICENSE,sha256=HVr8JnZfTaA-12BfKUQZi5hdrB3awOwLWs5X_ga5QzA,10353
|
|
107
|
+
pycontrails-0.54.6.dist-info/METADATA,sha256=xLlw2rgL4SdWGJz7X5z5AwKSe_-kgycaMUlYsEorXNo,9292
|
|
108
|
+
pycontrails-0.54.6.dist-info/NOTICE,sha256=QG0F9avpssHcmlEMlLbndVRGqmB7ATPIk16uDVmTlVE,1972
|
|
109
|
+
pycontrails-0.54.6.dist-info/WHEEL,sha256=6bXTkCllrWLYPW3gCPkeRA91N4604g9hqNhQqZWsUzQ,101
|
|
110
|
+
pycontrails-0.54.6.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
|
|
111
|
+
pycontrails-0.54.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|