pycontrails 0.49.3__cp312-cp312-win_amd64.whl → 0.49.5__cp312-cp312-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/datalib.py +1 -1
- pycontrails/core/flight.py +11 -11
- pycontrails/core/interpolation.py +29 -19
- pycontrails/core/met.py +192 -104
- pycontrails/core/models.py +29 -15
- pycontrails/core/rgi_cython.cp312-win_amd64.pyd +0 -0
- pycontrails/core/vector.py +14 -15
- pycontrails/datalib/gfs/gfs.py +1 -1
- pycontrails/datalib/spire/spire.py +23 -19
- pycontrails/ext/synthetic_flight.py +3 -1
- pycontrails/models/accf.py +6 -4
- pycontrails/models/cocip/cocip.py +48 -18
- pycontrails/models/cocip/cocip_params.py +13 -10
- pycontrails/models/cocip/output_formats.py +62 -52
- pycontrails/models/cocipgrid/cocip_grid.py +459 -275
- pycontrails/models/cocipgrid/cocip_grid_params.py +12 -18
- pycontrails/models/emissions/ffm2.py +10 -8
- pycontrails/models/pcc.py +1 -1
- pycontrails/models/ps_model/ps_aircraft_params.py +1 -1
- pycontrails/models/ps_model/static/{ps-aircraft-params-20231117.csv → ps-aircraft-params-20240209.csv} +12 -3
- pycontrails/utils/json.py +12 -10
- {pycontrails-0.49.3.dist-info → pycontrails-0.49.5.dist-info}/METADATA +2 -2
- {pycontrails-0.49.3.dist-info → pycontrails-0.49.5.dist-info}/RECORD +28 -29
- pycontrails/models/cocipgrid/cocip_time_handling.py +0 -342
- {pycontrails-0.49.3.dist-info → pycontrails-0.49.5.dist-info}/LICENSE +0 -0
- {pycontrails-0.49.3.dist-info → pycontrails-0.49.5.dist-info}/NOTICE +0 -0
- {pycontrails-0.49.3.dist-info → pycontrails-0.49.5.dist-info}/WHEEL +0 -0
- {pycontrails-0.49.3.dist-info → pycontrails-0.49.5.dist-info}/top_level.txt +0 -0
|
@@ -4,8 +4,6 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import dataclasses
|
|
6
6
|
|
|
7
|
-
import numpy as np
|
|
8
|
-
|
|
9
7
|
from pycontrails.core.aircraft_performance import AircraftPerformanceGrid
|
|
10
8
|
from pycontrails.core.fuel import Fuel, JetA
|
|
11
9
|
from pycontrails.models.cocip.cocip_params import CocipParams
|
|
@@ -31,13 +29,6 @@ class CocipGridParams(CocipParams):
|
|
|
31
29
|
#: magnifies mesh split size before SAC is computed.
|
|
32
30
|
target_split_size_pre_SAC_boost: float = 3.0
|
|
33
31
|
|
|
34
|
-
#: Time slice for loading met interpolators into memory, by default np.timedelta64(1, "h").
|
|
35
|
-
#: Must be a multiple of `np.timedelta64(1, "h")`. The higher the multiple, the more
|
|
36
|
-
#: memory consumed by the method `eval`. If None, the full met dataset is loaded
|
|
37
|
-
#: at once.
|
|
38
|
-
# TODO: Move this to CocipParams once that model is ready for fancy time handling
|
|
39
|
-
met_slice_dt: np.timedelta64 | None = np.timedelta64(1, "h")
|
|
40
|
-
|
|
41
32
|
#: Display `tqdm` progress bar showing batch evaluation progress.
|
|
42
33
|
show_progress: bool = True
|
|
43
34
|
|
|
@@ -49,6 +40,7 @@ class CocipGridParams(CocipParams):
|
|
|
49
40
|
#: can be problematic with a small nominal segment length and a large
|
|
50
41
|
#: `dt_integration` parameter. On the other hand, too large of a nominal segment
|
|
51
42
|
#: length diminishes the "locality" of the grid point.
|
|
43
|
+
#:
|
|
52
44
|
#: .. versionadded 0.32.2:: EXPERIMENTAL: If None, run CoCiP in "segment-free"
|
|
53
45
|
#: mode. This mode does not include any terms involving segments (wind shear,
|
|
54
46
|
#: segment_length, any derived terms). See :attr:`CocipGridParams.azimuth`
|
|
@@ -75,38 +67,40 @@ class CocipGridParams(CocipParams):
|
|
|
75
67
|
azimuth: float | None = 0.0
|
|
76
68
|
|
|
77
69
|
#: Experimental parameter used to approximate ``dsn_dz`` from ``ds_dz`` via
|
|
78
|
-
#: ``dsn_dz = ds_dz * dsn_dz_factor``.
|
|
79
|
-
#:
|
|
70
|
+
#: ``dsn_dz = ds_dz * dsn_dz_factor``.
|
|
71
|
+
#: A value of 0.0 disables any normal wind shear effects.
|
|
72
|
+
#: An initial unpublished experiment suggests that
|
|
80
73
|
#: ``dsn_dz_factor = 0.665`` adequately approximates the mean EF predictions
|
|
81
74
|
#: of :class:`CocipGrid` over all azimuths.
|
|
82
|
-
#:
|
|
75
|
+
#:
|
|
76
|
+
#: .. versionadded:: 0.32.2.
|
|
83
77
|
dsn_dz_factor: float = 0.0
|
|
84
78
|
|
|
85
79
|
#: --------------------
|
|
86
80
|
#: Aircraft Performance
|
|
87
81
|
#: --------------------
|
|
88
82
|
|
|
89
|
-
#: Aircraft wingspan, [:math:`m`]. If included in :attr:`CocipGrid.source
|
|
83
|
+
#: Aircraft wingspan, [:math:`m`]. If included in :attr:`CocipGrid.source`,
|
|
90
84
|
#: this parameter is unused. Otherwise, if this parameter is None, the
|
|
91
85
|
#: :attr:`aircraft_performance` model is used to estimate the wingspan.
|
|
92
86
|
wingspan: float | None = None
|
|
93
87
|
|
|
94
|
-
#: Nominal aircraft mass, [:math:`kg`]. If included in :attr:`CocipGrid.source
|
|
88
|
+
#: Nominal aircraft mass, [:math:`kg`]. If included in :attr:`CocipGrid.source`,
|
|
95
89
|
#: this parameter is unused. Otherwise, if this parameter is None, the
|
|
96
90
|
#: :attr:`aircraft_performance` model is used to estimate the aircraft mass.
|
|
97
91
|
aircraft_mass: float | None = None
|
|
98
92
|
|
|
99
|
-
#: Cruising true airspeed, [:math:`m * s^{-1}`]. If included in :attr:`CocipGrid.source
|
|
93
|
+
#: Cruising true airspeed, [:math:`m * s^{-1}`]. If included in :attr:`CocipGrid.source`,
|
|
100
94
|
#: this parameter is unused. Otherwise, if this parameter is None, the
|
|
101
95
|
#: :attr:`aircraft_performance` model is used to estimate the true airspeed.
|
|
102
96
|
true_airspeed: float | None = None
|
|
103
97
|
|
|
104
|
-
#: Nominal engine efficiency, [:math:`0 - 1`]. If included in :attr:`CocipGrid.source
|
|
98
|
+
#: Nominal engine efficiency, [:math:`0 - 1`]. If included in :attr:`CocipGrid.source`,
|
|
105
99
|
#: this parameter is unused. Otherwise, if this parameter is None, the
|
|
106
100
|
#: :attr:`aircraft_performance` model is used to estimate the engine efficiency.
|
|
107
101
|
engine_efficiency: float | None = None
|
|
108
102
|
|
|
109
|
-
#: Nominal fuel flow, [:math:`kg s^{-1}`]. If included in :attr:`CocipGrid.source
|
|
103
|
+
#: Nominal fuel flow, [:math:`kg s^{-1}`]. If included in :attr:`CocipGrid.source`,
|
|
110
104
|
#: this parameter is unused. Otherwise, if this parameter is None, the
|
|
111
105
|
#: :attr:`aircraft_performance` model is used to estimate the fuel flow.
|
|
112
106
|
fuel_flow: float | None = None
|
|
@@ -129,7 +123,7 @@ class CocipGridParams(CocipParams):
|
|
|
129
123
|
# ------------
|
|
130
124
|
|
|
131
125
|
#: Attach additional formation specific data to the output. If True, attach
|
|
132
|
-
#: all possible formation data. See :
|
|
126
|
+
#: all possible formation data. See :ref:pycontrails.models.cocipgrid.cocip_grid`
|
|
133
127
|
#: for a list of supported formation data.
|
|
134
128
|
verbose_outputs_formation: bool | set[str] = False
|
|
135
129
|
|
|
@@ -150,14 +150,16 @@ def co_hc_emissions_index_profile(
|
|
|
150
150
|
ff_intersect = (ei_hi - c) / m
|
|
151
151
|
# Ensure intersection is between 30% and 85% fuel mass flow rate
|
|
152
152
|
ff_intersect = np.clip(ff_intersect, fuel_flow_edb[1] + 0.01, fuel_flow_edb[2] - 0.01)
|
|
153
|
-
ff_profile = np.array(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
153
|
+
ff_profile = np.array(
|
|
154
|
+
[
|
|
155
|
+
ff_low_power,
|
|
156
|
+
fuel_flow_edb[0],
|
|
157
|
+
fuel_flow_edb[1],
|
|
158
|
+
ff_intersect,
|
|
159
|
+
fuel_flow_edb[2],
|
|
160
|
+
fuel_flow_edb[3],
|
|
161
|
+
]
|
|
162
|
+
)
|
|
161
163
|
ei_profile = np.array([ei_co_low_power, ei_edb[0], ei_edb[1], ei_hi, ei_hi, ei_hi])
|
|
162
164
|
|
|
163
165
|
# Permutation 3: Point-to-point fit (Figure 13 of DuBois & Paynter, 2006)
|
pycontrails/models/pcc.py
CHANGED
|
@@ -14,7 +14,7 @@ import pandas as pd
|
|
|
14
14
|
from pycontrails.physics import constants as c
|
|
15
15
|
|
|
16
16
|
#: Path to the Poll-Schumann aircraft parameters CSV file.
|
|
17
|
-
PS_FILE_PATH = pathlib.Path(__file__).parent / "static" / "ps-aircraft-params-
|
|
17
|
+
PS_FILE_PATH = pathlib.Path(__file__).parent / "static" / "ps-aircraft-params-20240209.csv"
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@dataclasses.dataclass(frozen=True)
|
|
@@ -9,11 +9,14 @@ A320,Airbus,A320-200,1987,2,no,0,73500,64500,60500,41244,19256,0.823,0.561,0.262
|
|
|
9
9
|
A321,Airbus,A321-100,1993,2,no,8,89000,75500,71500,46856,24644,0.803,0.526,0.277,122.4,34.15,3.95,0.027,0.9063,9.53,8.631,1.009,0.748,0.869,0.073,0.591,5.019,269.3,2.69,0.25,0.753,0.0347,0.342,0.528,0.694,5.433,391,0.82,20883,37618
|
|
10
10
|
A332,Airbus,A330-200,1992,2,no,52,233000,182000,170000,116840,53160,0.73,0.501,0.228,361.6,60.3,5.64,0.017,0.8686,10.06,6.692,0.987,0.762,0.872,0.076,0.528,6.899,609.5,5.94,0.49,0.786,0.025,0.371,0.535,0.686,5.404,410,0.86,22875,36865
|
|
11
11
|
A333,Airbus,A330-300,1992,2,no,52,233000,187000,175000,120132,54868,0.751,0.516,0.235,361.6,60.3,5.64,0.017,0.8686,10.06,6.9,0.99,0.761,0.872,0.076,0.535,6.571,604.5,5.84,0.49,0.786,0.0258,0.36,0.534,0.687,5.511,410,0.86,22875,36865
|
|
12
|
+
A338,Airbus,A330-800,2018,2,no,800,242000,186000,174000,132000,42000,0.719,0.545,0.174,374,64.00,5.64,0.016,0.8660,10.95,6.213,0.959,0.781,0.874,0.078,0.530,8.292,656,4.96,0.48,0.786,0.0229,0.399,0.445,0.763,6.243,414.5,0.86,22875,36865
|
|
13
|
+
A339,Airbus,A330-900,2017,2,no,900,242000,191000,181000,135000,46000,0.748,0.558,0.190,374,64.00,5.64,0.016,0.8660,10.95,6.463,0.962,0.779,0.873,0.077,0.539,8.129,656,4.96,0.48,0.786,0.0239,0.401,0.445,0.763,6.229,414.5,0.86,22875,36865
|
|
12
14
|
A342,Airbus,A340-200,1991,4,no,1,257000,181000,169000,125242,43758,0.658,0.487,0.17,361.6,60.3,5.64,0.017,0.8686,10.06,7.077,0.982,0.767,0.872,0.076,0.538,6.741,579.5,5.52,0.48,0.786,0.0261,0.368,0.498,0.725,5.778,415,0.86,22875,36865
|
|
13
15
|
A343,Airbus,A340-300,1991,4,no,1,257000,186000,174000,125242,48758,0.677,0.487,0.19,361.6,60.3,5.64,0.017,0.8686,10.06,7.384,0.987,0.765,0.871,0.075,0.548,6.483,579.5,5.52,0.48,0.786,0.0273,0.363,0.498,0.725,5.891,415,0.86,22875,36865
|
|
14
16
|
A345,Airbus,A340-500,2002,4,no,1,372000,243000,230000,170370,59630,0.618,0.458,0.16,437.3,63.45,5.64,0.016,0.8563,9.21,6.731,0.985,0.762,0.874,0.078,0.512,6.994,1036.4,8.79,0.92,0.796,0.0245,0.374,0.479,0.74,5.022,414.5,0.86,22875,36865
|
|
15
17
|
A346,Airbus,A340-600,2001,4,no,1,368000,259000,245000,176364,68636,0.666,0.479,0.187,437.3,63.45,5.64,0.016,0.8563,9.21,7.057,0.991,0.759,0.873,0.077,0.523,7.091,1050.8,8.96,0.92,0.796,0.0258,0.39,0.479,0.74,5.103,415,0.86,22875,36865
|
|
16
|
-
A359,Airbus,A350-900,2013,2,no,9,275000,207000,195700,146600,49100,0.712,0.533,0.179,445,64.75,5.96,0.017,0.848,9.42,6.14,0.962,0.791,0.874,0.078,0.493,8.
|
|
18
|
+
A359,Airbus,A350-900,2013,2,no,9,275000,207000,195700,146600,49100,0.712,0.533,0.179,445,64.75,5.96,0.017,0.848,9.42,6.14,0.962,0.791,0.874,0.078,0.493,8.601,758,5.64,0.58,0.82,0.0225,0.428,0.445,0.764,6.119,431,0.89,24441,36319
|
|
19
|
+
A35K,Airbus,A350-1000,2016,2,yes,2,319000,236000,223000,155000,67300,0.699,0.486,0.211,465.0,64.75,5.96,0.017,0.8480,9.02,6.183,0.967,0.789,0.874,0.078,0.500,8.074,873,7.01,0.65,0.820,0.0223,0.396,0.467,0.749,6.170,414.5,0.89,24441,36319
|
|
17
20
|
A388,Airbus,A380-800,2005,4,no,2,569000,391000,366000,275000,91000,0.643,0.483,0.16,845,79.8,7.142,0.016,0.866,7.54,6.132,0.967,0.794,0.876,0.082,0.446,7.478,1350.7,10.57,1.07,0.82,0.0216,0.398,0.47,0.747,5.981,431,0.89,24441,36319
|
|
18
21
|
B712,Boeing,B717-200,1998,2,no,HGW,54884,49898,45586,31071,14515,0.831,0.566,0.264,92.75,28.4,3.4,0.029,0.9063,8.7,8.722,1.02,0.692,0.867,0.072,0.579,4.569,179,1.82,0.2,0.7,0.0365,0.349,0.545,0.675,5.626,371,0.82,20883,37618
|
|
19
22
|
B732,Boeing,B737-200,1967,2,no,5,52390,46720,43092,27125,15967,0.823,0.518,0.305,99,28.35,3.76,0.035,0.9063,8.12,8.406,1.04,0.678,0.867,0.073,0.556,3.424,137.1,2.3,0.28,0.7,0.0358,0.276,0.627,0.557,4.631,370,0.82,20883,37618
|
|
@@ -24,6 +27,9 @@ B736,Boeing,B737-600,1997,2,no,3,65544,55112,51936,36378,15558,0.792,0.555,0.237
|
|
|
24
27
|
B737,Boeing,B737-700,1997,2,no,3,70080,58604,55202,37648,17554,0.788,0.537,0.25,124.6,34.3,3.76,0.024,0.9063,9.44,7.611,0.997,0.758,0.871,0.075,0.567,5.086,214.1,2.18,0.21,0.758,0.0315,0.327,0.531,0.691,5.936,410,0.82,20883,37618
|
|
25
28
|
B738,Boeing,B737-800,1997,2,no,3,79016,66361,61689,41413,20276,0.781,0.524,0.257,124.6,34.3,3.76,0.024,0.9063,9.44,8.182,1.005,0.754,0.87,0.074,0.581,4.999,233.4,2.43,0.22,0.758,0.0335,0.334,0.533,0.688,5.86,410,0.82,20883,37618
|
|
26
29
|
B739,Boeing,B737-900ER,2006,2,no,2,85139,71350,67721,44676,23045,0.795,0.525,0.271,124.6,34.32,3.76,0.024,0.9063,9.45,7.928,1,0.756,0.87,0.075,0.571,5.022,233.4,2.43,0.22,0.758,0.032,0.326,0.533,0.688,5.947,410,0.82,20883,37618
|
|
30
|
+
B37M,Boeing,B737 MAX 7,2018,2,yes,,80285,66043,62913,42033,20880,0.784,0.524,0.260,121.9,33.26,3.76,0.026,0.9063,9.08,7.585,0.976,0.779,0.872,0.076,0.573,6.239,248,2.00,0.19,0.763,0.0305,0.376,0.458,0.755,6.281,410.0,0.82,20883,37618
|
|
31
|
+
B38M,Boeing,B737 MAX 8,2016,2,yes,,82644,69308,65952,45072,20880,0.798,0.545,0.253,121.9,33.26,3.76,0.026,0.9063,9.08,7.869,0.979,0.777,0.872,0.075,0.581,6.153,248,2.00,0.19,0.763,0.0316,0.379,0.458,0.755,6.253,410.0,0.82,20883,37618
|
|
32
|
+
B39M,Boeing,B737 MAX 9,2017,2,yes,,88314,74343,70987,50107,20880,0.804,0.567,0.236,121.9,33.26,3.76,0.026,0.9063,9.08,8.058,0.994,0.769,0.872,0.076,0.599,6.184,248,2.00,0.19,0.763,0.0331,0.387,0.458,0.755,6.234,410.0,0.82,20883,37618
|
|
27
33
|
B742,Boeing,B747-200B,1971,4,no,4,371900,285700,238780,175970,62810,0.642,0.473,0.169,511,59.64,6.5,0.024,0.7934,6.96,7.019,1.038,0.692,0.868,0.074,0.458,5.305,882.3,9.11,0.9,0.81,0.0259,0.336,0.541,0.679,4.622,450,0.9,24977,36141
|
|
28
34
|
B743,Boeing,B747-300,1980,4,no,0,377800,260320,242630,174820,67810,0.642,0.463,0.179,511,59.64,6.5,0.024,0.7826,6.96,6.882,1.042,0.683,0.867,0.073,0.453,5.367,898.8,9.19,0.91,0.81,0.0253,0.337,0.542,0.679,4.992,450,0.9,24977,36141
|
|
29
35
|
B744,Boeing,B747-400,1985,4,no,5,396894,285764,246075,178756,67319,0.62,0.45,0.17,547,64.44,6.5,0.02,0.7934,7.59,6.688,1.029,0.698,0.869,0.074,0.465,6.044,1021.3,9.79,0.82,0.81,0.0245,0.357,0.537,0.684,4.991,450,0.92,26070,35788
|
|
@@ -37,8 +43,11 @@ B77L,Boeing,B777-200LR,2005,2,no,1,347450,223168,209107,145150,63957,0.602,0.418
|
|
|
37
43
|
B772,Boeing,B777-200,1994,2,no,6,286900,206350,195030,135600,59430,0.68,0.473,0.207,427.8,60.93,6.2,0.021,0.8517,8.68,6.462,0.976,0.774,0.873,0.078,0.484,6.827,781.2,6.89,0.57,0.811,0.0235,0.368,0.49,0.731,5.441,431,0.89,24441,36319
|
|
38
44
|
B77W,Boeing,B777-300ER,1994,2,no,1,351530,251290,237673,167820,69853,0.676,0.477,0.199,427.8,64.8,6.2,0.018,0.8517,9.82,7.159,0.998,0.767,0.872,0.076,0.542,7.171,1027.8,9.38,0.76,0.811,0.0264,0.388,0.489,0.732,5.045,431,0.89,24441,36319
|
|
39
45
|
B773,Boeing,B777-300,1997,2,no,4,299370,237680,224530,159570,64960,0.75,0.533,0.217,427.8,60.93,6.2,0.021,0.8517,8.68,7.069,0.989,0.767,0.872,0.076,0.503,6.693,744.8,6.87,0.56,0.811,0.0258,0.382,0.507,0.716,5.802,431,0.89,24441,36319
|
|
40
|
-
B788,Boeing,B787-8,2009,2,no,1,227930,172365,161025,117707,43318,0.706,0.516,0.19,360,60.12,5.77,0.018,0.8462,10.04,6.383,0.968,0.
|
|
41
|
-
B789,Boeing,B787-9,2013,2,no,1,254011,192777,181437,128850,52587,0.714,0.507,0.207,360,60.12,5.77,0.018,0.8462,10.04,6.478,0.968,0.
|
|
46
|
+
B788,Boeing,B787-8,2009,2,no,1,227930,172365,161025,117707,43318,0.706,0.516,0.19,360,60.12,5.77,0.018,0.8462,10.04,6.383,0.968,0.784,0.873,0.077,0.508,7.98,633,4.82,0.45,0.815,0.0238,0.409,0.445,0.764,6.06,431,0.9,24977,36141
|
|
47
|
+
B789,Boeing,B787-9,2013,2,no,1,254011,192777,181437,128850,52587,0.714,0.507,0.207,360,60.12,5.77,0.018,0.8462,10.04,6.478,0.968,0.784,0.873,0.077,0.509,7.938,633,4.82,0.45,0.815,0.0239,0.408,0.445,0.764,6.126,431,0.9,24977,36141
|
|
48
|
+
B78X,Boeing,B787-10,2017,2,no,,254011,201848,192776,135500,57276,0.759,0.533,0.225,377.0,60.12,5.77,0.018,0.8462,9.59,6.607,0.971,0.782,0.873,0.077,0.513,7.635,689,5.33,0.47,0.815,0.0243,0.397,0.448,0.762,6.185,411.0,0.9,24977,36141
|
|
49
|
+
BCS1,Airbus,A220-100,2013,2,yes,,60781,51029,48987,35222,13765,0.806,0.579,0.226,115.0,32.50,3.51,0.023,0.8988,9.18,7.341,0.961,0.776,0.873,0.076,0.576,6.222,201,1.44,0.15,0.754,0.0304,0.367,0.393,0.785,6.227,410.0,0.82,20883,37618
|
|
50
|
+
BCS3,Airbus,A220-300,2013,2,yes,,70896,61008,58060,37082,20978,0.819,0.523,0.296,115.0,32.50,3.51,0.023,0.8988,9.18,7.724,0.964,0.775,0.872,0.075,0.585,6.190,201,1.44,0.15,0.754,0.0316,0.373,0.393,0.785,6.258,410.0,0.82,20883,37618
|
|
42
51
|
E135,Embraer,EMB-135LR,1995,2,no,0,20000,18500,15999,11500,4499,0.8,0.575,0.225,51.18,20.04,2.25,0.025,0.9239,7.85,8.018,1.012,0.709,0.869,0.074,0.562,3.429,66.1,0.72,0.09,0.704,0.037,0.273,0.541,0.68,6.609,370,0.78,18996,38408
|
|
43
52
|
E145,Embraer,EMB-145LR,1995,2,no,0,22000,19300,17900,12114,5786,0.814,0.551,0.263,51.18,20.04,2.25,0.025,0.9239,7.85,8.38,1.018,0.706,0.868,0.073,0.57,3.686,74.3,0.82,0.1,0.704,0.0382,0.299,0.543,0.678,6.404,370,0.78,18996,38408
|
|
44
53
|
E170,Embraer,EMB-170LR,2002,2,no,0,37200,32800,29800,20700,9100,0.801,0.556,0.245,72.72,25.3,3.15,0.031,0.9239,8.8,8.144,1.005,0.742,0.87,0.074,0.579,4.094,120.1,1.32,0.13,0.733,0.0355,0.296,0.533,0.688,6.314,410,0.82,20883,37618
|
pycontrails/utils/json.py
CHANGED
|
@@ -169,16 +169,18 @@ def dataframe_to_geojson_points(
|
|
|
169
169
|
properties = {"time": int(row.time.timestamp())}
|
|
170
170
|
used_keys = ["time", "latitude", "longitude", "altitude"]
|
|
171
171
|
unused_keys = [k for k in row.keys() if k not in used_keys] # noqa: SIM118
|
|
172
|
-
properties.update(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
172
|
+
properties.update(
|
|
173
|
+
{
|
|
174
|
+
k: (
|
|
175
|
+
row[k]
|
|
176
|
+
if not isinstance(row[k], float)
|
|
177
|
+
or isinstance(row[k], float)
|
|
178
|
+
and not np.isnan(row[k])
|
|
179
|
+
else None
|
|
180
|
+
)
|
|
181
|
+
for k in unused_keys
|
|
182
|
+
}
|
|
183
|
+
)
|
|
182
184
|
|
|
183
185
|
geometry = {"type": "Point", "coordinates": point}
|
|
184
186
|
return {"type": "Feature", "geometry": geometry, "properties": properties}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.49.
|
|
3
|
+
Version: 0.49.5
|
|
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
|
|
@@ -36,7 +36,7 @@ Requires-Dist: xarray >=2022.3
|
|
|
36
36
|
Provides-Extra: complete
|
|
37
37
|
Requires-Dist: pycontrails[ecmwf,gcp,gfs,goes,jupyter,pyproj,vis,zarr] ; extra == 'complete'
|
|
38
38
|
Provides-Extra: dev
|
|
39
|
-
Requires-Dist: black[jupyter] ==24.
|
|
39
|
+
Requires-Dist: black[jupyter] ==24.2.0 ; extra == 'dev'
|
|
40
40
|
Requires-Dist: dep-license ; extra == 'dev'
|
|
41
41
|
Requires-Dist: fastparquet >=0.8 ; extra == 'dev'
|
|
42
42
|
Requires-Dist: ipdb >=0.13 ; extra == 'dev'
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
pycontrails/__init__.py,sha256=8WUs6hZAAIH1yKfwYJ8UEqNsk5voRyLmmD3Dje9DZaE,2055
|
|
2
|
-
pycontrails/_version.py,sha256=
|
|
2
|
+
pycontrails/_version.py,sha256=3A20dhM8-dQpEHRAXTyDh6OEAHYxc4ZEecto-hahwxs,429
|
|
3
3
|
pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
pycontrails/core/__init__.py,sha256=eNypVTz1kHBSKAJX3CgfKw-VKrMRRkKTutmjSlrfeUs,870
|
|
5
5
|
pycontrails/core/aircraft_performance.py,sha256=ikeJmdvFRDa1RdfR-JKfhQbiiIzL0c2vzcBmobmoxMs,22511
|
|
6
6
|
pycontrails/core/airports.py,sha256=nGKXN3jOtzsDCaJZVFNO3e3w-U3lqMTz5Ww5jALiRJY,6984
|
|
7
7
|
pycontrails/core/cache.py,sha256=NNrFNUvmDEkeS0d1VpDNWmF225a8u2d-TGcpRgQd9Qs,28838
|
|
8
8
|
pycontrails/core/coordinates.py,sha256=cb8RprpoSgRTFbAXTPNfuUHVnOxyV3zZ0Ac88P5YbBw,5465
|
|
9
|
-
pycontrails/core/datalib.py,sha256=
|
|
9
|
+
pycontrails/core/datalib.py,sha256=cf922AA0raBGWBs_UKRifvkFEDDhBJ_DmZQIdmcMZvI,23221
|
|
10
10
|
pycontrails/core/fleet.py,sha256=WKF_s_gRXHmB9b1OW7RUkM1TzfvVD8Ab0Md-qKRwkzs,16544
|
|
11
|
-
pycontrails/core/flight.py,sha256=
|
|
11
|
+
pycontrails/core/flight.py,sha256=ehxpo-Ofr4unQpeSR1ZXmbFGClyW628cA000oJZ_Jp8,77974
|
|
12
12
|
pycontrails/core/flightplan.py,sha256=cpMZ6VCYbfwh3vnew2XgVEHnqBx1NzeAhrTVCvlbbss,7569
|
|
13
13
|
pycontrails/core/fuel.py,sha256=06YUDhvC8Rx6KbUXRB9qLTsJX2V7tLbzjwAfDH0R6l8,4472
|
|
14
|
-
pycontrails/core/interpolation.py,sha256=
|
|
15
|
-
pycontrails/core/met.py,sha256=
|
|
14
|
+
pycontrails/core/interpolation.py,sha256=pDSQx8b3UjwWzKRKn_yKd3h2XsUA_ARRnZjIaH6sf60,24719
|
|
15
|
+
pycontrails/core/met.py,sha256=DT3CAi3zucPTRgp-n_Q6CpdJ52ZwtSCFEonPIzTapWM,95120
|
|
16
16
|
pycontrails/core/met_var.py,sha256=ZGvnYCXWnr0-A-bLmuhl1y2GIdL1X6pbzM-D-kcDpBg,9502
|
|
17
|
-
pycontrails/core/models.py,sha256=
|
|
17
|
+
pycontrails/core/models.py,sha256=rK7Nh5VIbNBUrJGE7Q8fnwveuuycPa-KkUJltV4SRZA,40042
|
|
18
18
|
pycontrails/core/polygon.py,sha256=ukcYh4TzGxz-ggipYe1m6DR50aEBgQhxWkEtjoTqC3w,18227
|
|
19
|
-
pycontrails/core/rgi_cython.cp312-win_amd64.pyd,sha256=
|
|
20
|
-
pycontrails/core/vector.py,sha256=
|
|
19
|
+
pycontrails/core/rgi_cython.cp312-win_amd64.pyd,sha256=gIhwLXTYIQEPwKFqnutcq0NtL94c0e_LE4S-K2AXQtw,264704
|
|
20
|
+
pycontrails/core/vector.py,sha256=QeHavtQYc44z3VFCsF_2PJTzMie7MBAkt6ReTKSLMXE,73864
|
|
21
21
|
pycontrails/datalib/__init__.py,sha256=WnXqgv20SrHZLjFZ9qpQEwRnf0QvfZU-YvMqh7PAUwg,246
|
|
22
22
|
pycontrails/datalib/goes.py,sha256=Ky7elxQJyKsk6dlJ22wsOtpaZn34LaEQCqqdX3M4a5s,26932
|
|
23
23
|
pycontrails/datalib/ecmwf/__init__.py,sha256=7-05ELdTfcX6N-yhwe-fGH4E7FlBW9Hjx5aAXPZiTpc,1151
|
|
@@ -27,40 +27,39 @@ pycontrails/datalib/ecmwf/hres.py,sha256=agGc9Oope2yd0u_7nH4RuxOHkiU6dc_JvxAxdSI
|
|
|
27
27
|
pycontrails/datalib/ecmwf/ifs.py,sha256=PTdP-sRUYPAxDmAhxMDffdfUH4H3qMpTWahu4mn87GA,10877
|
|
28
28
|
pycontrails/datalib/ecmwf/variables.py,sha256=APjW0fwQ_euK7hmxNhlujcLjx7WN1CPa9DxNZ27HsXg,8940
|
|
29
29
|
pycontrails/datalib/gfs/__init__.py,sha256=VcE2j62ITbY7F3tEtgaLrfyjHWci-4mvLtnVg3SVgtE,712
|
|
30
|
-
pycontrails/datalib/gfs/gfs.py,sha256=
|
|
30
|
+
pycontrails/datalib/gfs/gfs.py,sha256=QgJ1YI9aGi75V-A4dsabvkbIZrqiZ4GUltncFaJQ6kw,22213
|
|
31
31
|
pycontrails/datalib/gfs/variables.py,sha256=u2rAsjCJTehB6MhQj9YhlZYovdwoscqAH33T5aBDzSw,2961
|
|
32
32
|
pycontrails/datalib/spire/__init__.py,sha256=YiS2SMSNU0bLHfbh41nQuKB8MnQNU8o3MldreM1nrM0,362
|
|
33
|
-
pycontrails/datalib/spire/spire.py,sha256
|
|
33
|
+
pycontrails/datalib/spire/spire.py,sha256=aW0wh5GDrszFb20ZMzmWKQ4uHbOCmHvVt9Sf4U3AyTI,26070
|
|
34
34
|
pycontrails/ext/bada.py,sha256=S0qfNYsp1cGqkHGPu-IkAwk66lD79yikRlrq9uwgPpI,1104
|
|
35
35
|
pycontrails/ext/cirium.py,sha256=zRPVBBWwocZKkX3XhonSBf54x7P_xnjRcA7psI0Kqnw,429
|
|
36
36
|
pycontrails/ext/empirical_grid.py,sha256=1WHyt1VOWEr7bMlnXo1tEKJgePvLKjKsCCee2w22gf8,4502
|
|
37
|
-
pycontrails/ext/synthetic_flight.py,sha256=
|
|
37
|
+
pycontrails/ext/synthetic_flight.py,sha256=CxKDAX8Jao9VXuy_eRksS8zqIaMYgiv9az5DWBwRWJw,17105
|
|
38
38
|
pycontrails/models/__init__.py,sha256=TKhrXe1Pu1-mV1gctx8cUAMrVxCCAtBkbZi9olfWq8s,34
|
|
39
|
-
pycontrails/models/accf.py,sha256=
|
|
39
|
+
pycontrails/models/accf.py,sha256=72-2oRCSM98cwHxmKmO5ECaRPbiRE010jX5nTQDfHCs,12965
|
|
40
40
|
pycontrails/models/dry_advection.py,sha256=z4XbEa0ihmcKyCrdaYbWEOYQ4yt9KfmpJ7jYhZ6g5lU,16622
|
|
41
41
|
pycontrails/models/issr.py,sha256=uDMEFjQH_wh3jcQexMgFFq3-XrM7DEz4kZcgLSGqAM4,7550
|
|
42
|
-
pycontrails/models/pcc.py,sha256=
|
|
42
|
+
pycontrails/models/pcc.py,sha256=M5KhtRgdCP9pfDFgui7ibbijtRBTjx3QOJL_m1tQYfs,11443
|
|
43
43
|
pycontrails/models/pcr.py,sha256=G_0yR5PsCMeJBP6tZFi3M7A6Wcq8s71UvosdA7ozUkI,5502
|
|
44
44
|
pycontrails/models/sac.py,sha256=Cj4Hi3324wjqLQ7I2CPVkrIh2Fq5W5pKpGrwhYADoHI,16420
|
|
45
45
|
pycontrails/models/tau_cirrus.py,sha256=eXt3yRrcFBaZNNeH6ZOuU4XEZU2rOfrLKEOC7f0_Ywo,5194
|
|
46
46
|
pycontrails/models/cocip/__init__.py,sha256=X_MlkJzQ-henQ0xGq-1bfCMajH6s9tlK5QLnN7yfQ68,929
|
|
47
|
-
pycontrails/models/cocip/cocip.py,sha256=
|
|
48
|
-
pycontrails/models/cocip/cocip_params.py,sha256=
|
|
47
|
+
pycontrails/models/cocip/cocip.py,sha256=nILOmLjk0DQynIkn-NVjeN1K8ufb9Xno5iyz9JTr6wI,98325
|
|
48
|
+
pycontrails/models/cocip/cocip_params.py,sha256=xvrvUMEzE490Uxh654behS6nJ2CU1g4CzadTZId7KCc,10561
|
|
49
49
|
pycontrails/models/cocip/cocip_uncertainty.py,sha256=lksROIRLt-jxEdjJTiLP9Da-FYt1GjZKaIxwDaH2Ytg,12069
|
|
50
50
|
pycontrails/models/cocip/contrail_properties.py,sha256=dRq5o-YuC-s487Fs54OHpAuS8LkxM-HATNVclHKUhL0,57362
|
|
51
|
-
pycontrails/models/cocip/output_formats.py,sha256=
|
|
51
|
+
pycontrails/models/cocip/output_formats.py,sha256=sYGYosAL6BQvntKXdeomAph-K6EKOgsI2VQynLEHxnM,79228
|
|
52
52
|
pycontrails/models/cocip/radiative_forcing.py,sha256=SYmQ8lL8gpWbf6he2C9mKSjODtytbFcdnMdBM-LtBKE,46206
|
|
53
53
|
pycontrails/models/cocip/radiative_heating.py,sha256=N7FTR20luERmokprdqMOl-d8-cTYZZ2ZSsTdxZnLHfs,19368
|
|
54
54
|
pycontrails/models/cocip/wake_vortex.py,sha256=d3oLkTWIocwYb99fl6t99LtEsbKkdsupAfoUY-GmbTI,13783
|
|
55
55
|
pycontrails/models/cocip/wind_shear.py,sha256=Dm181EsiCBJWTnRTZ3ZI3YXscBRnhA6ANnKer004b2Q,3980
|
|
56
56
|
pycontrails/models/cocipgrid/__init__.py,sha256=OYSdZ1Htbr_IP7N_HuOAj1Pa_KLHtdEeJfXP-cN-gnU,271
|
|
57
|
-
pycontrails/models/cocipgrid/cocip_grid.py,sha256=
|
|
58
|
-
pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=
|
|
59
|
-
pycontrails/models/cocipgrid/cocip_time_handling.py,sha256=Zcm9-kH-SZLt8RU8FCCn5PEH8P6K8YdtKqKhQAS3AbM,14207
|
|
57
|
+
pycontrails/models/cocipgrid/cocip_grid.py,sha256=mcz8_G4YyiyqkuAAZiwWZk-NOtcxKJY57pVkhSunHSQ,92278
|
|
58
|
+
pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=I-Ua1ifeqOx12SbbFwau2s17LjemvUZ6ihJhmJIqpdA,5911
|
|
60
59
|
pycontrails/models/emissions/__init__.py,sha256=BXzV2pBps8j3xbaF1n9uPdVVLI5MBIGYx8xqDJezYIE,499
|
|
61
60
|
pycontrails/models/emissions/black_carbon.py,sha256=9DRqB487pH8Iq83FXggA5mPLYEAA8NpsKx24f8uTEF4,20828
|
|
62
61
|
pycontrails/models/emissions/emissions.py,sha256=WYypixqzR9a1wqfevxEKIrk3NIAIp0fKBMqOHkawsWo,48917
|
|
63
|
-
pycontrails/models/emissions/ffm2.py,sha256=
|
|
62
|
+
pycontrails/models/emissions/ffm2.py,sha256=wtiWk00_Rby2_xJN-pMY6Ays0CZwFhvqDRFmIIkwunU,12368
|
|
64
63
|
pycontrails/models/emissions/static/default-engine-uids.csv,sha256=Fr_SXHQwna7V73bdlU-0CZLTfkBTQ5EYvQaZWHyFqtE,6456
|
|
65
64
|
pycontrails/models/emissions/static/edb-gaseous-v28c-engines.csv,sha256=UJjnqdyOwkokzz3Vd5bSXCpn8Sm-mSygOdC8CrGhhqo,119459
|
|
66
65
|
pycontrails/models/emissions/static/edb-nvpm-v28c-engines.csv,sha256=JKYYEd42dQSeNujub6HgwbUoVZG84iHzBY9YO086lxA,63651
|
|
@@ -68,11 +67,11 @@ pycontrails/models/humidity_scaling/__init__.py,sha256=-xqDCJzKJx2nX6yl-gglHheQH
|
|
|
68
67
|
pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=0e2hOpVDK36ghKqBNjJo19mSlkR1SJq1qtb48NX5Coo,35692
|
|
69
68
|
pycontrails/models/humidity_scaling/quantiles/era5-quantiles.pq,sha256=tfYhbafF9Z-gGCg6VQ1YBlOaK_01e65Dc6s9b-hQ6Zo,286375
|
|
70
69
|
pycontrails/models/ps_model/__init__.py,sha256=QggqLRpqUh6imcn7GFPcKFSU4s3WjgfdvO8hH_OO8NY,512
|
|
71
|
-
pycontrails/models/ps_model/ps_aircraft_params.py,sha256=
|
|
70
|
+
pycontrails/models/ps_model/ps_aircraft_params.py,sha256=LNiTyYUq4i2X6MqOUu7e0lljWug-SC9lU8IzJZx4LTU,12452
|
|
72
71
|
pycontrails/models/ps_model/ps_grid.py,sha256=mOJhtDI8A05L8m-xMO3sbNW_7oPyRnLvlaIVEoXzODE,19172
|
|
73
72
|
pycontrails/models/ps_model/ps_model.py,sha256=j7-37E3S_qu3xZGkVJZEBXxQoJ-QKXIub-2-YFMQLas,32478
|
|
74
73
|
pycontrails/models/ps_model/ps_operational_limits.py,sha256=-2qwQBRr1qHUALSIEGdQM7bxi47BeJpU744epVyy1jI,10701
|
|
75
|
-
pycontrails/models/ps_model/static/ps-aircraft-params-
|
|
74
|
+
pycontrails/models/ps_model/static/ps-aircraft-params-20240209.csv,sha256=rPp6Ews2dKEWHP0i3II0-y7w95ZyVsXtWwIYcm3BsPE,14742
|
|
76
75
|
pycontrails/physics/__init__.py,sha256=AScCMSMSZjKxfL6mssdSLwcja1ml7MzREThQp5PLr9U,45
|
|
77
76
|
pycontrails/physics/constants.py,sha256=JdlUyfxAgrMsF8VFNobe1Q7BXBghLu19QKQkX6vgLHQ,3100
|
|
78
77
|
pycontrails/physics/geo.py,sha256=Dwc9dUzUlHGCDVqFdh492vJZsC5CB8J45cJnsHaMRF4,31229
|
|
@@ -82,12 +81,12 @@ pycontrails/physics/units.py,sha256=rDHeF1r27wYtzrbU0OjZVsIKa4REvFekNjOrILGkEPw,
|
|
|
82
81
|
pycontrails/utils/__init__.py,sha256=VmklFC-5I5lGFQEzuomlPk_bM6CoM9XDljfjCovG3vw,33
|
|
83
82
|
pycontrails/utils/dependencies.py,sha256=oJDnykg1WtMWn1wSE2OKC6czj2hGD1Irh3zrI5g160I,2552
|
|
84
83
|
pycontrails/utils/iteration.py,sha256=En2YY4NiNwCNtAVO8HL6tv9byBGKs8MKSI7R8P-gZy4,332
|
|
85
|
-
pycontrails/utils/json.py,sha256=
|
|
84
|
+
pycontrails/utils/json.py,sha256=xCv71CKVZNHk4MyoYC-hl7dXObXXbI7P8gcNCn3AUoU,6172
|
|
86
85
|
pycontrails/utils/temp.py,sha256=5XXqQoEfWjz1OrhoOBZD5vkkCFeuq9LpZkyhc38gIeY,1159
|
|
87
86
|
pycontrails/utils/types.py,sha256=f8FNSSzW-1ISgJ0zDtCwZgpuzpt26sUABiHHusS414s,4725
|
|
88
|
-
pycontrails-0.49.
|
|
89
|
-
pycontrails-0.49.
|
|
90
|
-
pycontrails-0.49.
|
|
91
|
-
pycontrails-0.49.
|
|
92
|
-
pycontrails-0.49.
|
|
93
|
-
pycontrails-0.49.
|
|
87
|
+
pycontrails-0.49.5.dist-info/LICENSE,sha256=HVr8JnZfTaA-12BfKUQZi5hdrB3awOwLWs5X_ga5QzA,10353
|
|
88
|
+
pycontrails-0.49.5.dist-info/METADATA,sha256=VPxASRleJeBK3MiyIOnXN3lCJf27w7uDA88ALwA_7R8,8429
|
|
89
|
+
pycontrails-0.49.5.dist-info/NOTICE,sha256=qYeNEp8OjDK5jSW3hTlr9LQRjZeEhXQm0zDei5UFaYs,1969
|
|
90
|
+
pycontrails-0.49.5.dist-info/WHEEL,sha256=j9Aissza3750LQHFAQyYerNjmkEON1-8w_RaZNFtKSs,102
|
|
91
|
+
pycontrails-0.49.5.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
|
|
92
|
+
pycontrails-0.49.5.dist-info/RECORD,,
|