ngiab-data-preprocess 3.2.0__tar.gz → 3.2.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.
Files changed (50) hide show
  1. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/PKG-INFO +2 -2
  2. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/create_realization.py +1 -1
  3. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/forcings.py +20 -7
  4. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/s3fs_utils.py +1 -1
  5. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_preprocess.egg-info/PKG-INFO +2 -2
  6. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_preprocess.egg-info/SOURCES.txt +1 -0
  7. ngiab_data_preprocess-3.2.2/modules/ngiab_data_preprocess.egg-info/entry_points.txt +3 -0
  8. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/pyproject.toml +5 -1
  9. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/.github/workflows/build_only.yml +0 -0
  10. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/.github/workflows/publish.yml +0 -0
  11. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/.gitignore +0 -0
  12. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/LICENSE +0 -0
  13. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/README.md +0 -0
  14. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/map.html +0 -0
  15. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/file_paths.py +0 -0
  16. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/gpkg_utils.py +0 -0
  17. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/graph_utils.py +0 -0
  18. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/subset.py +0 -0
  19. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_processing/zarr_utils.py +0 -0
  20. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/cfe-nowpm-realization-template.json +0 -0
  21. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/cfe-template.ini +0 -0
  22. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/em-catchment-template.yml +0 -0
  23. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/em-config.yml +0 -0
  24. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/em-realization-template.json +0 -0
  25. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/forcing_template.nc +0 -0
  26. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/ngen-routing-template.yaml +0 -0
  27. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/noah-owp-modular-init.namelist.input +0 -0
  28. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/source_validation.py +0 -0
  29. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/template.sql +0 -0
  30. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/data_sources/triggers.sql +0 -0
  31. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/__main__.py +0 -0
  32. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/css/console.css +0 -0
  33. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/css/main.css +0 -0
  34. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/js/console.js +0 -0
  35. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/js/data_processing.js +0 -0
  36. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/js/main.js +0 -0
  37. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/resources/dark-style.json +0 -0
  38. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/resources/light-style.json +0 -0
  39. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/resources/loading.gif +0 -0
  40. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/static/resources/screenshot.png +0 -0
  41. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/templates/index.html +0 -0
  42. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/map_app/views.py +0 -0
  43. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_cli/__main__.py +0 -0
  44. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_cli/arguments.py +0 -0
  45. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_cli/custom_logging.py +0 -0
  46. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_preprocess.egg-info/dependency_links.txt +0 -0
  47. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_preprocess.egg-info/requires.txt +0 -0
  48. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/modules/ngiab_data_preprocess.egg-info/top_level.txt +0 -0
  49. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/output/.gitkeep +0 -0
  50. {ngiab_data_preprocess-3.2.0 → ngiab_data_preprocess-3.2.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: ngiab_data_preprocess
3
- Version: 3.2.0
3
+ Version: 3.2.2
4
4
  Summary: Graphical Tools for creating Next Gen Water model input data.
5
5
  Author-email: Josh Cunningham <jcunningham8@ua.edu>
6
6
  Project-URL: Homepage, https://github.com/CIROH-UA/NGIAB_data_preprocess
@@ -77,7 +77,7 @@ def make_cfe_config(
77
77
  slope=row["mean.slope"],
78
78
  smcmax=row["mean.smcmax_soil_layers_stag=2"],
79
79
  smcwlt=row["mean.smcwlt_soil_layers_stag=2"],
80
- max_gw_storage=row["mean.Zmax"] if row["mean.Zmax"] is not None else "0.011[m]",
80
+ max_gw_storage=row["mean.Zmax"]/1000 if row["mean.Zmax"] is not None else "0.011[m]", # mean.Zmax is in mm!
81
81
  gw_Coeff=row["mean.Coeff"] if row["mean.Coeff"] is not None else "0.0018[m h-1]",
82
82
  gw_Expon=row["mode.Expon"],
83
83
  gw_storage="{:.5}".format(gw_storage_ratio),
@@ -10,6 +10,8 @@ from math import ceil
10
10
  from multiprocessing import shared_memory
11
11
  from pathlib import Path
12
12
 
13
+ from dask.distributed import Client, LocalCluster
14
+
13
15
  import geopandas as gpd
14
16
  import numpy as np
15
17
  import pandas as pd
@@ -68,10 +70,12 @@ def get_cell_weights(raster, gdf, wkt):
68
70
 
69
71
 
70
72
  def add_APCP_SURFACE_to_dataset(dataset: xr.Dataset) -> xr.Dataset:
71
- # precip rate is mm/s
72
- # cfe says input m/h
73
- dataset["APCP_surface"] = dataset["precip_rate"] * 3600 / 1000
74
- # technically should be kg/m^2/h, at 1kg = 1l it equates to mm/h
73
+ # precip_rate is mm/s
74
+ # cfe says input atmosphere_water__liquid_equivalent_precipitation_rate is mm/h
75
+ # nom says prcpnonc input is mm/s
76
+ # technically should be kg/m^2/s at 1kg = 1l it equates to mm/s
77
+ # nom says qinsur output is m/s, hopefully qinsur is converted to mm/h by ngen
78
+ dataset["APCP_surface"] = dataset["precip_rate"] * 3600
75
79
  return dataset
76
80
 
77
81
 
@@ -79,7 +83,9 @@ def get_index_chunks(data: xr.DataArray) -> list[tuple[int, int]]:
79
83
  # takes a data array and calculates the start and end index for each chunk
80
84
  # based on the available memory.
81
85
  array_memory_usage = data.nbytes
82
- free_memory = psutil.virtual_memory().available * 0.8 # 80% of available memory
86
+ # free_memory = psutil.virtual_memory().available * 0.8 # 80% of available memory
87
+ # limit the chunk to 20gb, makes things more stable
88
+ free_memory = min(free_memory, 20 * 1024 * 1024 * 1024)
83
89
  num_chunks = ceil(array_memory_usage / free_memory)
84
90
  max_index = data.shape[0]
85
91
  stride = max_index // num_chunks
@@ -233,8 +239,15 @@ def compute_zonal_stats(
233
239
 
234
240
  def write_outputs(forcings_dir, variables):
235
241
 
236
- # Combine all variables into a single dataset
237
- results = [xr.open_dataset(file) for file in forcings_dir.glob("*.nc")]
242
+ # start a dask cluster if there isn't one already running
243
+ try:
244
+ client = Client.current()
245
+ except ValueError:
246
+ cluster = LocalCluster()
247
+ client = Client(cluster)
248
+
249
+ # Combine all variables into a single dataset using dask
250
+ results = [xr.open_dataset(file, chunks="auto") for file in forcings_dir.glob("*.nc")]
238
251
  final_ds = xr.merge(results)
239
252
 
240
253
  output_folder = forcings_dir / "by_catchment"
@@ -36,7 +36,7 @@ class S3ParallelFileSystem(S3FileSystem):
36
36
  # Fall back to single request if HEAD fails
37
37
  return await self._download_chunk(bucket, key, {}, version_kw)
38
38
 
39
- CHUNK_SIZE = 1 * 1024 * 1024 # 1MB chunks
39
+ CHUNK_SIZE = 5 * 1024 * 1024 # 1MB chunks
40
40
  if obj_size <= CHUNK_SIZE:
41
41
  return await self._download_chunk(bucket, key, {}, version_kw)
42
42
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: ngiab_data_preprocess
3
- Version: 3.2.0
3
+ Version: 3.2.2
4
4
  Summary: Graphical Tools for creating Next Gen Water model input data.
5
5
  Author-email: Josh Cunningham <jcunningham8@ua.edu>
6
6
  Project-URL: Homepage, https://github.com/CIROH-UA/NGIAB_data_preprocess
@@ -42,6 +42,7 @@ modules/ngiab_data_cli/custom_logging.py
42
42
  modules/ngiab_data_preprocess.egg-info/PKG-INFO
43
43
  modules/ngiab_data_preprocess.egg-info/SOURCES.txt
44
44
  modules/ngiab_data_preprocess.egg-info/dependency_links.txt
45
+ modules/ngiab_data_preprocess.egg-info/entry_points.txt
45
46
  modules/ngiab_data_preprocess.egg-info/requires.txt
46
47
  modules/ngiab_data_preprocess.egg-info/top_level.txt
47
48
  output/.gitkeep
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ cli = ngiab_data_cli.__main__:main
3
+ map = map_app.__main__:main
@@ -12,7 +12,7 @@ exclude = ["tests*"]
12
12
 
13
13
  [project]
14
14
  name = "ngiab_data_preprocess"
15
- version = "v3.2.0"
15
+ version = "v3.2.2"
16
16
  authors = [{ name = "Josh Cunningham", email = "jcunningham8@ua.edu" }]
17
17
  description = "Graphical Tools for creating Next Gen Water model input data."
18
18
  readme = "README.md"
@@ -54,6 +54,10 @@ plot = ["ngiab_eval[plot]"]
54
54
  Homepage = "https://github.com/CIROH-UA/NGIAB_data_preprocess"
55
55
  Issues = "https://github.com/CIROH-UA/NGIAB_data_preprocess/issues"
56
56
 
57
+ [project.scripts]
58
+ cli = "ngiab_data_cli.__main__:main"
59
+ map = "map_app.__main__:main"
60
+
57
61
  [build-system]
58
62
  # scm adds files tracked by git to the package
59
63
  requires = ["setuptools>=69.0", "setuptools-scm>=8.0"]