pycontrails 0.54.3__cp312-cp312-win_amd64.whl → 0.54.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/__init__.py +2 -2
- pycontrails/_version.py +2 -2
- pycontrails/core/__init__.py +1 -1
- pycontrails/core/aircraft_performance.py +58 -58
- pycontrails/core/cache.py +7 -7
- pycontrails/core/fleet.py +54 -29
- pycontrails/core/flight.py +218 -301
- pycontrails/core/interpolation.py +63 -60
- pycontrails/core/met.py +193 -125
- pycontrails/core/models.py +27 -13
- pycontrails/core/polygon.py +15 -15
- pycontrails/core/rgi_cython.cp312-win_amd64.pyd +0 -0
- pycontrails/core/vector.py +119 -96
- pycontrails/datalib/_met_utils/metsource.py +8 -5
- pycontrails/datalib/ecmwf/__init__.py +14 -14
- pycontrails/datalib/ecmwf/common.py +1 -1
- pycontrails/datalib/ecmwf/era5.py +7 -7
- pycontrails/datalib/ecmwf/hres.py +3 -3
- pycontrails/datalib/ecmwf/ifs.py +1 -1
- pycontrails/datalib/gfs/__init__.py +6 -6
- pycontrails/datalib/gfs/gfs.py +2 -2
- pycontrails/datalib/goes.py +5 -5
- pycontrails/ext/empirical_grid.py +1 -1
- pycontrails/models/apcemm/apcemm.py +5 -5
- pycontrails/models/apcemm/utils.py +1 -1
- pycontrails/models/cocip/__init__.py +2 -2
- pycontrails/models/cocip/cocip.py +23 -24
- pycontrails/models/cocip/cocip_params.py +2 -11
- pycontrails/models/cocip/cocip_uncertainty.py +24 -18
- pycontrails/models/cocip/contrail_properties.py +331 -316
- pycontrails/models/cocip/output_formats.py +53 -53
- pycontrails/models/cocip/radiative_forcing.py +135 -131
- pycontrails/models/cocip/radiative_heating.py +135 -135
- pycontrails/models/cocip/unterstrasser_wake_vortex.py +90 -87
- pycontrails/models/cocip/wake_vortex.py +92 -92
- pycontrails/models/cocip/wind_shear.py +8 -8
- pycontrails/models/cocipgrid/cocip_grid.py +37 -96
- pycontrails/models/dry_advection.py +60 -19
- pycontrails/models/emissions/__init__.py +2 -2
- pycontrails/models/emissions/black_carbon.py +108 -108
- pycontrails/models/emissions/emissions.py +87 -87
- pycontrails/models/emissions/ffm2.py +35 -35
- pycontrails/models/humidity_scaling/humidity_scaling.py +23 -23
- pycontrails/models/issr.py +2 -2
- pycontrails/models/ps_model/__init__.py +1 -1
- pycontrails/models/ps_model/ps_aircraft_params.py +8 -4
- pycontrails/models/ps_model/ps_grid.py +76 -66
- pycontrails/models/ps_model/ps_model.py +16 -16
- pycontrails/models/ps_model/ps_operational_limits.py +20 -18
- pycontrails/models/tau_cirrus.py +8 -1
- pycontrails/physics/geo.py +67 -67
- pycontrails/physics/jet.py +79 -79
- pycontrails/physics/units.py +14 -14
- pycontrails/utils/json.py +1 -2
- pycontrails/utils/types.py +12 -7
- {pycontrails-0.54.3.dist-info → pycontrails-0.54.5.dist-info}/METADATA +2 -2
- {pycontrails-0.54.3.dist-info → pycontrails-0.54.5.dist-info}/NOTICE +1 -1
- pycontrails-0.54.5.dist-info/RECORD +111 -0
- pycontrails-0.54.3.dist-info/RECORD +0 -111
- {pycontrails-0.54.3.dist-info → pycontrails-0.54.5.dist-info}/LICENSE +0 -0
- {pycontrails-0.54.3.dist-info → pycontrails-0.54.5.dist-info}/WHEEL +0 -0
- {pycontrails-0.54.3.dist-info → pycontrails-0.54.5.dist-info}/top_level.txt +0 -0
|
@@ -1259,9 +1259,9 @@ def radiation_time_slice_statistics(
|
|
|
1259
1259
|
|
|
1260
1260
|
|
|
1261
1261
|
def area_mean_ice_water_path(
|
|
1262
|
-
iwc: npt.NDArray[np.
|
|
1263
|
-
plume_mass_per_m: npt.NDArray[np.
|
|
1264
|
-
segment_length: npt.NDArray[np.
|
|
1262
|
+
iwc: npt.NDArray[np.floating],
|
|
1263
|
+
plume_mass_per_m: npt.NDArray[np.floating],
|
|
1264
|
+
segment_length: npt.NDArray[np.floating],
|
|
1265
1265
|
domain_area: float,
|
|
1266
1266
|
) -> float:
|
|
1267
1267
|
"""
|
|
@@ -1271,12 +1271,12 @@ def area_mean_ice_water_path(
|
|
|
1271
1271
|
|
|
1272
1272
|
Parameters
|
|
1273
1273
|
----------
|
|
1274
|
-
iwc : npt.NDArray[np.
|
|
1274
|
+
iwc : npt.NDArray[np.floating]
|
|
1275
1275
|
Contrail ice water content, i.e., contrail ice mass per kg of
|
|
1276
1276
|
air, [:math:`kg_{H_{2}O}/kg_{air}`]
|
|
1277
|
-
plume_mass_per_m : npt.NDArray[np.
|
|
1277
|
+
plume_mass_per_m : npt.NDArray[np.floating]
|
|
1278
1278
|
Contrail plume mass per unit length, [:math:`kg m^{-1}`]
|
|
1279
|
-
segment_length : npt.NDArray[np.
|
|
1279
|
+
segment_length : npt.NDArray[np.floating]
|
|
1280
1280
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1281
1281
|
domain_area : float
|
|
1282
1282
|
Domain surface area, [:math:`m^{2}`]
|
|
@@ -1290,20 +1290,20 @@ def area_mean_ice_water_path(
|
|
|
1290
1290
|
|
|
1291
1291
|
|
|
1292
1292
|
def area_mean_ice_particle_radius(
|
|
1293
|
-
r_ice_vol: npt.NDArray[np.
|
|
1294
|
-
n_ice_per_m: npt.NDArray[np.
|
|
1295
|
-
segment_length: npt.NDArray[np.
|
|
1293
|
+
r_ice_vol: npt.NDArray[np.floating],
|
|
1294
|
+
n_ice_per_m: npt.NDArray[np.floating],
|
|
1295
|
+
segment_length: npt.NDArray[np.floating],
|
|
1296
1296
|
) -> float:
|
|
1297
1297
|
r"""
|
|
1298
1298
|
Calculate the area-mean contrail ice particle radius.
|
|
1299
1299
|
|
|
1300
1300
|
Parameters
|
|
1301
1301
|
----------
|
|
1302
|
-
r_ice_vol : npt.NDArray[np.
|
|
1302
|
+
r_ice_vol : npt.NDArray[np.floating]
|
|
1303
1303
|
Ice particle volume mean radius for each waypoint, [:math:`m`]
|
|
1304
|
-
n_ice_per_m : npt.NDArray[np.
|
|
1304
|
+
n_ice_per_m : npt.NDArray[np.floating]
|
|
1305
1305
|
Number of ice particles per distance for each waypoint, [:math:`m^{-1}`]
|
|
1306
|
-
segment_length : npt.NDArray[np.
|
|
1306
|
+
segment_length : npt.NDArray[np.floating]
|
|
1307
1307
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1308
1308
|
|
|
1309
1309
|
Returns
|
|
@@ -1324,20 +1324,20 @@ def area_mean_ice_particle_radius(
|
|
|
1324
1324
|
|
|
1325
1325
|
|
|
1326
1326
|
def volume_mean_ice_particle_radius(
|
|
1327
|
-
r_ice_vol: npt.NDArray[np.
|
|
1328
|
-
n_ice_per_m: npt.NDArray[np.
|
|
1329
|
-
segment_length: npt.NDArray[np.
|
|
1327
|
+
r_ice_vol: npt.NDArray[np.floating],
|
|
1328
|
+
n_ice_per_m: npt.NDArray[np.floating],
|
|
1329
|
+
segment_length: npt.NDArray[np.floating],
|
|
1330
1330
|
) -> float:
|
|
1331
1331
|
r"""
|
|
1332
1332
|
Calculate the volume-mean contrail ice particle radius.
|
|
1333
1333
|
|
|
1334
1334
|
Parameters
|
|
1335
1335
|
----------
|
|
1336
|
-
r_ice_vol : npt.NDArray[np.
|
|
1336
|
+
r_ice_vol : npt.NDArray[np.floating]
|
|
1337
1337
|
Ice particle volume mean radius for each waypoint, [:math:`m`]
|
|
1338
|
-
n_ice_per_m : npt.NDArray[np.
|
|
1338
|
+
n_ice_per_m : npt.NDArray[np.floating]
|
|
1339
1339
|
Number of ice particles per distance for each waypoint, [:math:`m^{-1}`]
|
|
1340
|
-
segment_length : npt.NDArray[np.
|
|
1340
|
+
segment_length : npt.NDArray[np.floating]
|
|
1341
1341
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1342
1342
|
|
|
1343
1343
|
Returns
|
|
@@ -1356,20 +1356,20 @@ def volume_mean_ice_particle_radius(
|
|
|
1356
1356
|
|
|
1357
1357
|
|
|
1358
1358
|
def mean_ice_particle_effective_radius(
|
|
1359
|
-
r_ice_vol: npt.NDArray[np.
|
|
1360
|
-
n_ice_per_m: npt.NDArray[np.
|
|
1361
|
-
segment_length: npt.NDArray[np.
|
|
1359
|
+
r_ice_vol: npt.NDArray[np.floating],
|
|
1360
|
+
n_ice_per_m: npt.NDArray[np.floating],
|
|
1361
|
+
segment_length: npt.NDArray[np.floating],
|
|
1362
1362
|
) -> float:
|
|
1363
1363
|
r"""
|
|
1364
1364
|
Calculate the mean contrail ice particle effective radius.
|
|
1365
1365
|
|
|
1366
1366
|
Parameters
|
|
1367
1367
|
----------
|
|
1368
|
-
r_ice_vol : npt.NDArray[np.
|
|
1368
|
+
r_ice_vol : npt.NDArray[np.floating]
|
|
1369
1369
|
Ice particle volume mean radius for each waypoint, [:math:`m`]
|
|
1370
|
-
n_ice_per_m : npt.NDArray[np.
|
|
1370
|
+
n_ice_per_m : npt.NDArray[np.floating]
|
|
1371
1371
|
Number of ice particles per distance for each waypoint, [:math:`m^{-1}`]
|
|
1372
|
-
segment_length : npt.NDArray[np.
|
|
1372
|
+
segment_length : npt.NDArray[np.floating]
|
|
1373
1373
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1374
1374
|
|
|
1375
1375
|
Returns
|
|
@@ -1391,20 +1391,20 @@ def mean_ice_particle_effective_radius(
|
|
|
1391
1391
|
|
|
1392
1392
|
|
|
1393
1393
|
def _total_ice_particle_cross_sectional_area(
|
|
1394
|
-
r_ice_vol: npt.NDArray[np.
|
|
1395
|
-
n_ice_per_m: npt.NDArray[np.
|
|
1396
|
-
segment_length: npt.NDArray[np.
|
|
1394
|
+
r_ice_vol: npt.NDArray[np.floating],
|
|
1395
|
+
n_ice_per_m: npt.NDArray[np.floating],
|
|
1396
|
+
segment_length: npt.NDArray[np.floating],
|
|
1397
1397
|
) -> float:
|
|
1398
1398
|
"""
|
|
1399
1399
|
Calculate total contrail ice particle cross-sectional area.
|
|
1400
1400
|
|
|
1401
1401
|
Parameters
|
|
1402
1402
|
----------
|
|
1403
|
-
r_ice_vol : npt.NDArray[np.
|
|
1403
|
+
r_ice_vol : npt.NDArray[np.floating]
|
|
1404
1404
|
Ice particle volume mean radius for each waypoint, [:math:`m`]
|
|
1405
|
-
n_ice_per_m : npt.NDArray[np.
|
|
1405
|
+
n_ice_per_m : npt.NDArray[np.floating]
|
|
1406
1406
|
Number of ice particles per distance for each waypoint, [:math:`m^{-1}`]
|
|
1407
|
-
segment_length : npt.NDArray[np.
|
|
1407
|
+
segment_length : npt.NDArray[np.floating]
|
|
1408
1408
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1409
1409
|
|
|
1410
1410
|
Returns
|
|
@@ -1417,20 +1417,20 @@ def _total_ice_particle_cross_sectional_area(
|
|
|
1417
1417
|
|
|
1418
1418
|
|
|
1419
1419
|
def _total_ice_particle_volume(
|
|
1420
|
-
r_ice_vol: npt.NDArray[np.
|
|
1421
|
-
n_ice_per_m: npt.NDArray[np.
|
|
1422
|
-
segment_length: npt.NDArray[np.
|
|
1420
|
+
r_ice_vol: npt.NDArray[np.floating],
|
|
1421
|
+
n_ice_per_m: npt.NDArray[np.floating],
|
|
1422
|
+
segment_length: npt.NDArray[np.floating],
|
|
1423
1423
|
) -> float:
|
|
1424
1424
|
"""
|
|
1425
1425
|
Calculate total contrail ice particle volume.
|
|
1426
1426
|
|
|
1427
1427
|
Parameters
|
|
1428
1428
|
----------
|
|
1429
|
-
r_ice_vol : npt.NDArray[np.
|
|
1429
|
+
r_ice_vol : npt.NDArray[np.floating]
|
|
1430
1430
|
Ice particle volume mean radius for each waypoint, [:math:`m`]
|
|
1431
|
-
n_ice_per_m : npt.NDArray[np.
|
|
1431
|
+
n_ice_per_m : npt.NDArray[np.floating]
|
|
1432
1432
|
Number of ice particles per distance for each waypoint, [:math:`m^{-1}`]
|
|
1433
|
-
segment_length : npt.NDArray[np.
|
|
1433
|
+
segment_length : npt.NDArray[np.floating]
|
|
1434
1434
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1435
1435
|
|
|
1436
1436
|
Returns
|
|
@@ -1443,16 +1443,16 @@ def _total_ice_particle_volume(
|
|
|
1443
1443
|
|
|
1444
1444
|
|
|
1445
1445
|
def _total_ice_particle_number(
|
|
1446
|
-
n_ice_per_m: npt.NDArray[np.
|
|
1446
|
+
n_ice_per_m: npt.NDArray[np.floating], segment_length: npt.NDArray[np.floating]
|
|
1447
1447
|
) -> float:
|
|
1448
1448
|
"""
|
|
1449
1449
|
Calculate total number of contrail ice particles.
|
|
1450
1450
|
|
|
1451
1451
|
Parameters
|
|
1452
1452
|
----------
|
|
1453
|
-
n_ice_per_m : npt.NDArray[np.
|
|
1453
|
+
n_ice_per_m : npt.NDArray[np.floating]
|
|
1454
1454
|
Number of ice particles per distance for each waypoint, [:math:`m^{-1}`]
|
|
1455
|
-
segment_length : npt.NDArray[np.
|
|
1455
|
+
segment_length : npt.NDArray[np.floating]
|
|
1456
1456
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1457
1457
|
|
|
1458
1458
|
Returns
|
|
@@ -1464,9 +1464,9 @@ def _total_ice_particle_number(
|
|
|
1464
1464
|
|
|
1465
1465
|
|
|
1466
1466
|
def area_mean_contrail_property(
|
|
1467
|
-
contrail_property: npt.NDArray[np.
|
|
1468
|
-
segment_length: npt.NDArray[np.
|
|
1469
|
-
width: npt.NDArray[np.
|
|
1467
|
+
contrail_property: npt.NDArray[np.floating],
|
|
1468
|
+
segment_length: npt.NDArray[np.floating],
|
|
1469
|
+
width: npt.NDArray[np.floating],
|
|
1470
1470
|
domain_area: float,
|
|
1471
1471
|
) -> float:
|
|
1472
1472
|
"""
|
|
@@ -1477,11 +1477,11 @@ def area_mean_contrail_property(
|
|
|
1477
1477
|
|
|
1478
1478
|
Parameters
|
|
1479
1479
|
----------
|
|
1480
|
-
contrail_property : npt.NDArray[np.
|
|
1480
|
+
contrail_property : npt.NDArray[np.floating]
|
|
1481
1481
|
Selected contrail property for each waypoint
|
|
1482
|
-
segment_length : npt.NDArray[np.
|
|
1482
|
+
segment_length : npt.NDArray[np.floating]
|
|
1483
1483
|
Contrail segment length for each waypoint, [:math:`m`]
|
|
1484
|
-
width : npt.NDArray[np.
|
|
1484
|
+
width : npt.NDArray[np.floating]
|
|
1485
1485
|
Contrail width for each waypoint, [:math:`m`]
|
|
1486
1486
|
domain_area : float
|
|
1487
1487
|
Domain surface area, [:math:`m^{2}`]
|
|
@@ -2009,26 +2009,26 @@ def natural_cirrus_properties_to_hi_res_grid(
|
|
|
2009
2009
|
|
|
2010
2010
|
|
|
2011
2011
|
def _hi_res_grid_coordinates(
|
|
2012
|
-
lon_coords: npt.NDArray[np.
|
|
2013
|
-
lat_coords: npt.NDArray[np.
|
|
2012
|
+
lon_coords: npt.NDArray[np.floating],
|
|
2013
|
+
lat_coords: npt.NDArray[np.floating],
|
|
2014
2014
|
*,
|
|
2015
2015
|
spatial_grid_res: float = 0.05,
|
|
2016
|
-
) -> tuple[npt.NDArray[np.
|
|
2016
|
+
) -> tuple[npt.NDArray[np.floating], npt.NDArray[np.floating]]:
|
|
2017
2017
|
r"""
|
|
2018
2018
|
Calculate longitude and latitude coordinates for the high resolution grid.
|
|
2019
2019
|
|
|
2020
2020
|
Parameters
|
|
2021
2021
|
----------
|
|
2022
|
-
lon_coords : npt.NDArray[np.
|
|
2022
|
+
lon_coords : npt.NDArray[np.floating]
|
|
2023
2023
|
Longitude coordinates provided by the original `MetDataset`.
|
|
2024
|
-
lat_coords : npt.NDArray[np.
|
|
2024
|
+
lat_coords : npt.NDArray[np.floating]
|
|
2025
2025
|
Latitude coordinates provided by the original `MetDataset`.
|
|
2026
2026
|
spatial_grid_res : float
|
|
2027
2027
|
Spatial grid resolution for the output, [:math:`\deg`]
|
|
2028
2028
|
|
|
2029
2029
|
Returns
|
|
2030
2030
|
-------
|
|
2031
|
-
tuple[npt.NDArray[np.
|
|
2031
|
+
tuple[npt.NDArray[np.floating], npt.NDArray[np.floating]
|
|
2032
2032
|
Longitude and latitude coordinates for the high resolution grid.
|
|
2033
2033
|
"""
|
|
2034
2034
|
d_lon = np.abs(np.diff(lon_coords)[0])
|
|
@@ -2058,8 +2058,8 @@ def _hi_res_grid_coordinates(
|
|
|
2058
2058
|
|
|
2059
2059
|
|
|
2060
2060
|
def _repeat_rows_and_columns(
|
|
2061
|
-
array_2d: npt.NDArray[np.
|
|
2062
|
-
) -> npt.NDArray[np.
|
|
2061
|
+
array_2d: npt.NDArray[np.floating], *, n_reps: int
|
|
2062
|
+
) -> npt.NDArray[np.floating]:
|
|
2063
2063
|
"""
|
|
2064
2064
|
Repeat the elements in `array_2d` along each row and column.
|
|
2065
2065
|
|