voxcity 0.6.0__tar.gz → 0.6.1__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 voxcity might be problematic. Click here for more details.

Files changed (53) hide show
  1. {voxcity-0.6.0 → voxcity-0.6.1}/PKG-INFO +1 -1
  2. {voxcity-0.6.0 → voxcity-0.6.1}/pyproject.toml +1 -1
  3. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/generator.py +16 -2
  4. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity.egg-info/PKG-INFO +1 -1
  5. {voxcity-0.6.0 → voxcity-0.6.1}/AUTHORS.rst +0 -0
  6. {voxcity-0.6.0 → voxcity-0.6.1}/CONTRIBUTING.rst +0 -0
  7. {voxcity-0.6.0 → voxcity-0.6.1}/HISTORY.rst +0 -0
  8. {voxcity-0.6.0 → voxcity-0.6.1}/LICENSE +0 -0
  9. {voxcity-0.6.0 → voxcity-0.6.1}/MANIFEST.in +0 -0
  10. {voxcity-0.6.0 → voxcity-0.6.1}/README.md +0 -0
  11. {voxcity-0.6.0 → voxcity-0.6.1}/docs/Makefile +0 -0
  12. {voxcity-0.6.0 → voxcity-0.6.1}/docs/_static/logo.png +0 -0
  13. {voxcity-0.6.0 → voxcity-0.6.1}/docs/conf.py +0 -0
  14. {voxcity-0.6.0 → voxcity-0.6.1}/docs/logo.png +0 -0
  15. {voxcity-0.6.0 → voxcity-0.6.1}/docs/make.bat +0 -0
  16. {voxcity-0.6.0 → voxcity-0.6.1}/setup.cfg +0 -0
  17. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/__init__.py +0 -0
  18. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/__init__.py +0 -0
  19. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/citygml.py +0 -0
  20. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/eubucco.py +0 -0
  21. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/gee.py +0 -0
  22. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/mbfp.py +0 -0
  23. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/oemj.py +0 -0
  24. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/osm.py +0 -0
  25. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/overture.py +0 -0
  26. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/downloader/utils.py +0 -0
  27. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/exporter/__init__.py +0 -0
  28. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/exporter/cityles.py +0 -0
  29. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/exporter/envimet.py +0 -0
  30. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/exporter/magicavoxel.py +0 -0
  31. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/exporter/obj.py +0 -0
  32. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/__init__.py +0 -0
  33. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/draw.py +0 -0
  34. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/grid.py +0 -0
  35. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/mesh.py +0 -0
  36. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/network.py +0 -0
  37. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/polygon.py +0 -0
  38. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/geoprocessor/utils.py +0 -0
  39. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/simulator/__init__.py +0 -0
  40. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/simulator/solar.py +0 -0
  41. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/simulator/utils.py +0 -0
  42. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/simulator/view.py +0 -0
  43. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/utils/__init__.py +0 -0
  44. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/utils/lc.py +0 -0
  45. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/utils/material.py +0 -0
  46. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/utils/visualization.py +0 -0
  47. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity/utils/weather.py +0 -0
  48. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity.egg-info/SOURCES.txt +0 -0
  49. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity.egg-info/dependency_links.txt +0 -0
  50. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity.egg-info/requires.txt +0 -0
  51. {voxcity-0.6.0 → voxcity-0.6.1}/src/voxcity.egg-info/top_level.txt +0 -0
  52. {voxcity-0.6.0 → voxcity-0.6.1}/tests/__init__.py +0 -0
  53. {voxcity-0.6.0 → voxcity-0.6.1}/tests/voxelcity.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voxcity
3
- Version: 0.6.0
3
+ Version: 0.6.1
4
4
  Summary: voxcity is an easy and one-stop tool to output 3d city models for microclimate simulation by integrating multiple geospatial open-data
5
5
  Author-email: Kunihiko Fujiwara <kunihiko@nus.edu.sg>
6
6
  Maintainer-email: Kunihiko Fujiwara <kunihiko@nus.edu.sg>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "voxcity"
3
- version = "0.6.0"
3
+ version = "0.6.1"
4
4
  requires-python = ">=3.10,<3.13"
5
5
  classifiers = [
6
6
  "Programming Language :: Python :: 3.10",
@@ -472,8 +472,22 @@ def create_3d_voxel(building_height_grid_ori, building_min_height_grid_ori,
472
472
  # Add 1 voxel layer to ensure sufficient vertical space
473
473
  max_height = int(np.ceil(np.max(building_height_grid + dem_grid + tree_grid) / voxel_size))+1
474
474
  # Initialize the 3D voxel grid with zeros
475
- # Dimensions: (rows, columns, height_layers)
476
- voxel_grid = np.zeros((rows, cols, max_height), dtype=np.int32)
475
+ # Use int8 by default to reduce memory (values range from about -99 to small positives)
476
+ # Allow override via kwarg 'voxel_dtype'
477
+ voxel_dtype = kwargs.get("voxel_dtype", np.int8)
478
+
479
+ # Optional: estimate memory and allow a soft limit before allocating
480
+ try:
481
+ bytes_per_elem = np.dtype(voxel_dtype).itemsize
482
+ est_mb = rows * cols * max_height * bytes_per_elem / (1024 ** 2)
483
+ print(f"Voxel grid shape: ({rows}, {cols}, {max_height}), dtype: {voxel_dtype}, ~{est_mb:.1f} MB")
484
+ max_ram_mb = kwargs.get("max_voxel_ram_mb")
485
+ if (max_ram_mb is not None) and (est_mb > max_ram_mb):
486
+ raise MemoryError(f"Estimated voxel grid memory {est_mb:.1f} MB exceeds limit {max_ram_mb} MB. Increase mesh size or restrict ROI.")
487
+ except Exception:
488
+ pass
489
+
490
+ voxel_grid = np.zeros((rows, cols, max_height), dtype=voxel_dtype)
477
491
  # Configure tree trunk-to-crown ratio
478
492
  # This determines how much of the tree is trunk vs canopy
479
493
  trunk_height_ratio = kwargs.get("trunk_height_ratio")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voxcity
3
- Version: 0.6.0
3
+ Version: 0.6.1
4
4
  Summary: voxcity is an easy and one-stop tool to output 3d city models for microclimate simulation by integrating multiple geospatial open-data
5
5
  Author-email: Kunihiko Fujiwara <kunihiko@nus.edu.sg>
6
6
  Maintainer-email: Kunihiko Fujiwara <kunihiko@nus.edu.sg>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes