voxcity 0.5.19__tar.gz → 0.5.21__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 (140) hide show
  1. {voxcity-0.5.19 → voxcity-0.5.21}/PKG-INFO +1 -1
  2. {voxcity-0.5.19 → voxcity-0.5.21}/pyproject.toml +1 -1
  3. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/exporter/__init__.py +0 -1
  4. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/exporter/envimet.py +16 -1
  5. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/utils.py +38 -24
  6. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/utils/__init__.py +0 -1
  7. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity.egg-info/PKG-INFO +1 -1
  8. {voxcity-0.5.19 → voxcity-0.5.21}/AUTHORS.rst +0 -0
  9. {voxcity-0.5.19 → voxcity-0.5.21}/CONTRIBUTING.rst +0 -0
  10. {voxcity-0.5.19 → voxcity-0.5.21}/HISTORY.rst +0 -0
  11. {voxcity-0.5.19 → voxcity-0.5.21}/LICENSE +0 -0
  12. {voxcity-0.5.19 → voxcity-0.5.21}/MANIFEST.in +0 -0
  13. {voxcity-0.5.19 → voxcity-0.5.21}/README.md +0 -0
  14. {voxcity-0.5.19 → voxcity-0.5.21}/docs/Makefile +0 -0
  15. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/08b3db000d7ff09f51e879d8e8a4bcba4b5e5ed59a9349b647881854bed4a7b1.png +0 -0
  16. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/16438e8e907bb04c1921588ef02b8ef9894fda4777c4215be17cb09de624b448.png +0 -0
  17. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/18bd5a56d075e7d84d503f169a971a9e366c04da141b7348822d463ebad5cf11.png +0 -0
  18. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/1d1d3a7e409cc572734a90449deb12629bc37de864fb9fcea1a2765e2d47ca55.png +0 -0
  19. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/2381f64d3b526db11e898baa6f8312fd0fffdc6d3dbd476f10eb8155fe528ec7.png +0 -0
  20. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/37ae1e201e9f8f1450d195ae004af51596fdbbffe1c127f8495ec87d3579770c.png +0 -0
  21. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/3c43ef4a707ae514837ea0202d122e3ac810695086726dad33589c15234aed70.png +0 -0
  22. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/4261120bd44487e132f79bddd3fbee9038582dbbd97bd707732d67839655cf14.png +0 -0
  23. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/4594a8ba7ca6906387b12cbc69ea87637648141d667e5f4ebb16c911cdc446bc.png +0 -0
  24. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/47ccb675b60d54c2200555b98251427524fc0480ff8ae1239dc69dad7ff582b8.png +0 -0
  25. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/487775ecc0a7ae2a17c33776a916217da35ed4d073cd9492a04c7b9abec7d883.png +0 -0
  26. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/4baaf8fe982e28474a1bc4ee0528709e8390f7a8f9dcdcbc7111411c27c40255.png +0 -0
  27. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/4d355ca695d3b477b0dc95f43a481b253c5e42dc774f8ce255e23d34862be447.png +0 -0
  28. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/4e6bcc86438ecca1bb265614a2a20d6d96a3b69c4ec3125c75ee6269025cfd15.png +0 -0
  29. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/55b2a97dd7e62dbfbff4a10f97c3b2c461763152e800b753b1f5ccd699fdf02f.png +0 -0
  30. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/5df41ef08d7317fa90a38b0ea19bcb2cf5c2f10ed05909f1ad158e25af1ef24d.png +0 -0
  31. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/793252d2628d9cae6b81fc90ab84ff1c474aeb7b8e15e74e06fbc1ceb6975ffd.png +0 -0
  32. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/8754f22f2f7153cf294fe603e8c60a3d93fc77cbabe9aae071fbcc2e4c7c9d9b.png +0 -0
  33. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/8b2deb89a4009b385747bdb66bdb49b92e5f1465cbf145b71150e81addb8a302.png +0 -0
  34. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/8cf83779f2069bd257b6db30ee99395605380de174a3ce6eddc74b35752d7c53.png +0 -0
  35. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/92d339bb67c3bd08896101d783f1e9db93e4e75b964c49279748305d8aa5b121.png +0 -0
  36. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/93648751c2dd2ea57a6ba8944d2f87cc6c8e9e81a1f4774f7da2f92b93a47423.png +0 -0
  37. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/93b19b81494eaf4ff4b17fad222b805977747025e9a5b5a008cf68777dbe9510.png +0 -0
  38. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/9f6eb35344a4492765ff2a655c9d1a7f5d26f947574a1ff8c62e5ec2e34c9d7d.png +0 -0
  39. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/9fe3565b796bbcfa9b8a6c68f2acc5215f85fb44e897309c70d872af642c4e2d.png +0 -0
  40. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/a16a92d7ff125fe3cc073defe75e38d086080239f3b021f0698cc4dedcc883e0.png +0 -0
  41. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/ab3ea52ae29974a354a21dccdc3de1dec76565a3fa196fbf3f9d21da62503cb4.png +0 -0
  42. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/b10ed6221adb54338ed45d8d2c0433b92d2780e78e91da57ca28b1caf2289fd2.png +0 -0
  43. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/b3062085f3602a261ceae8d98e804ef5cf616a2c340a47fd0417e8c9b305c4bb.png +0 -0
  44. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/b5aa8550d8f9a02146a09d679ed098ed0d685f524418fd6fd86faf54d3332bb3.png +0 -0
  45. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/b5af316dd59d7d3fa732e8f9672dab880a81d86f5d41e4a95d7ee767030d767e.png +0 -0
  46. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/b82ad5912e73c863733e461aa5d7be370c8328fc1168985011a510f3ebf347e1.png +0 -0
  47. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/c02b560b528c62b15debdcecbdb9e0ced88ee1e367b743de57fca9f7f0142a3b.png +0 -0
  48. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/c5ef47b292fdb2cf51f9b059eaff2c95e0df0f2a39f6c0f054fba95cd4a3d2fc.png +0 -0
  49. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/d78a3eb336be5ce5f77c495769998eebfff641eeabdb07cf096ba335ba384956.png +0 -0
  50. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/deb9b1005e47ff20de7df521c496b60387b0a7481fbce3b95c29cf0ed9326e62.png +0 -0
  51. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/e6e15d13dceb60233ecc9bc2aedd9e8df0b792a300896686a989a96dad59097a.png +0 -0
  52. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/ee526e0d726f8fe6a7e2ad3fd875a8d64de41d1bb3f8edcfffb7d9bdc83c51f4.png +0 -0
  53. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/f12f9703ddcc9120a5e13ad8a3524191355c9212ea8464846fd89ce0bd24c0ce.png +0 -0
  54. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/f90fcf8677590540881786f73264d464ddd26208acba82e72719ff14bbc3f766.png +0 -0
  55. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/f95baafd592f4cbc2240e7d3d2bd21c86be804fc8f20c589d8676e6502be8e49.png +0 -0
  56. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_images/ff225adaa3a89376e18d036337502ea61e01a52e11a2c335260c8506295936cd.png +0 -0
  57. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_static/file.png +0 -0
  58. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_static/logo.png +0 -0
  59. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_static/minus.png +0 -0
  60. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/html/_static/plus.png +0 -0
  61. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/08b3db000d7ff09f51e879d8e8a4bcba4b5e5ed59a9349b647881854bed4a7b1.png +0 -0
  62. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/16438e8e907bb04c1921588ef02b8ef9894fda4777c4215be17cb09de624b448.png +0 -0
  63. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/18bd5a56d075e7d84d503f169a971a9e366c04da141b7348822d463ebad5cf11.png +0 -0
  64. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/1d1d3a7e409cc572734a90449deb12629bc37de864fb9fcea1a2765e2d47ca55.png +0 -0
  65. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/2381f64d3b526db11e898baa6f8312fd0fffdc6d3dbd476f10eb8155fe528ec7.png +0 -0
  66. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/37ae1e201e9f8f1450d195ae004af51596fdbbffe1c127f8495ec87d3579770c.png +0 -0
  67. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/3c43ef4a707ae514837ea0202d122e3ac810695086726dad33589c15234aed70.png +0 -0
  68. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/4261120bd44487e132f79bddd3fbee9038582dbbd97bd707732d67839655cf14.png +0 -0
  69. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/4594a8ba7ca6906387b12cbc69ea87637648141d667e5f4ebb16c911cdc446bc.png +0 -0
  70. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/47ccb675b60d54c2200555b98251427524fc0480ff8ae1239dc69dad7ff582b8.png +0 -0
  71. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/487775ecc0a7ae2a17c33776a916217da35ed4d073cd9492a04c7b9abec7d883.png +0 -0
  72. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/4baaf8fe982e28474a1bc4ee0528709e8390f7a8f9dcdcbc7111411c27c40255.png +0 -0
  73. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/4d355ca695d3b477b0dc95f43a481b253c5e42dc774f8ce255e23d34862be447.png +0 -0
  74. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/4e6bcc86438ecca1bb265614a2a20d6d96a3b69c4ec3125c75ee6269025cfd15.png +0 -0
  75. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/55b2a97dd7e62dbfbff4a10f97c3b2c461763152e800b753b1f5ccd699fdf02f.png +0 -0
  76. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/5df41ef08d7317fa90a38b0ea19bcb2cf5c2f10ed05909f1ad158e25af1ef24d.png +0 -0
  77. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/793252d2628d9cae6b81fc90ab84ff1c474aeb7b8e15e74e06fbc1ceb6975ffd.png +0 -0
  78. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/8754f22f2f7153cf294fe603e8c60a3d93fc77cbabe9aae071fbcc2e4c7c9d9b.png +0 -0
  79. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/8b2deb89a4009b385747bdb66bdb49b92e5f1465cbf145b71150e81addb8a302.png +0 -0
  80. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/8cf83779f2069bd257b6db30ee99395605380de174a3ce6eddc74b35752d7c53.png +0 -0
  81. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/92d339bb67c3bd08896101d783f1e9db93e4e75b964c49279748305d8aa5b121.png +0 -0
  82. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/93648751c2dd2ea57a6ba8944d2f87cc6c8e9e81a1f4774f7da2f92b93a47423.png +0 -0
  83. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/93b19b81494eaf4ff4b17fad222b805977747025e9a5b5a008cf68777dbe9510.png +0 -0
  84. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/9f6eb35344a4492765ff2a655c9d1a7f5d26f947574a1ff8c62e5ec2e34c9d7d.png +0 -0
  85. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/9fe3565b796bbcfa9b8a6c68f2acc5215f85fb44e897309c70d872af642c4e2d.png +0 -0
  86. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/a16a92d7ff125fe3cc073defe75e38d086080239f3b021f0698cc4dedcc883e0.png +0 -0
  87. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/ab3ea52ae29974a354a21dccdc3de1dec76565a3fa196fbf3f9d21da62503cb4.png +0 -0
  88. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/b10ed6221adb54338ed45d8d2c0433b92d2780e78e91da57ca28b1caf2289fd2.png +0 -0
  89. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/b3062085f3602a261ceae8d98e804ef5cf616a2c340a47fd0417e8c9b305c4bb.png +0 -0
  90. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/b5aa8550d8f9a02146a09d679ed098ed0d685f524418fd6fd86faf54d3332bb3.png +0 -0
  91. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/b5af316dd59d7d3fa732e8f9672dab880a81d86f5d41e4a95d7ee767030d767e.png +0 -0
  92. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/b82ad5912e73c863733e461aa5d7be370c8328fc1168985011a510f3ebf347e1.png +0 -0
  93. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/c02b560b528c62b15debdcecbdb9e0ced88ee1e367b743de57fca9f7f0142a3b.png +0 -0
  94. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/c5ef47b292fdb2cf51f9b059eaff2c95e0df0f2a39f6c0f054fba95cd4a3d2fc.png +0 -0
  95. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/d78a3eb336be5ce5f77c495769998eebfff641eeabdb07cf096ba335ba384956.png +0 -0
  96. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/deb9b1005e47ff20de7df521c496b60387b0a7481fbce3b95c29cf0ed9326e62.png +0 -0
  97. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/e6e15d13dceb60233ecc9bc2aedd9e8df0b792a300896686a989a96dad59097a.png +0 -0
  98. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/ee526e0d726f8fe6a7e2ad3fd875a8d64de41d1bb3f8edcfffb7d9bdc83c51f4.png +0 -0
  99. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/f12f9703ddcc9120a5e13ad8a3524191355c9212ea8464846fd89ce0bd24c0ce.png +0 -0
  100. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/f90fcf8677590540881786f73264d464ddd26208acba82e72719ff14bbc3f766.png +0 -0
  101. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/f95baafd592f4cbc2240e7d3d2bd21c86be804fc8f20c589d8676e6502be8e49.png +0 -0
  102. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_build/jupyter_execute/ff225adaa3a89376e18d036337502ea61e01a52e11a2c335260c8506295936cd.png +0 -0
  103. {voxcity-0.5.19 → voxcity-0.5.21}/docs/_static/logo.png +0 -0
  104. {voxcity-0.5.19 → voxcity-0.5.21}/docs/conf.py +0 -0
  105. {voxcity-0.5.19 → voxcity-0.5.21}/docs/logo.png +0 -0
  106. {voxcity-0.5.19 → voxcity-0.5.21}/docs/make.bat +0 -0
  107. {voxcity-0.5.19 → voxcity-0.5.21}/setup.cfg +0 -0
  108. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/__init__.py +0 -0
  109. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/__init__.py +0 -0
  110. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/citygml.py +0 -0
  111. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/eubucco.py +0 -0
  112. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/gee.py +0 -0
  113. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/mbfp.py +0 -0
  114. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/oemj.py +0 -0
  115. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/osm.py +0 -0
  116. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/overture.py +0 -0
  117. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/downloader/utils.py +0 -0
  118. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/exporter/magicavoxel.py +0 -0
  119. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/exporter/obj.py +0 -0
  120. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/generator.py +0 -0
  121. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/__init__.py +0 -0
  122. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/draw.py +0 -0
  123. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/grid.py +0 -0
  124. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/mesh.py +0 -0
  125. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/network.py +0 -0
  126. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/geoprocessor/polygon.py +0 -0
  127. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/simulator/__init__.py +0 -0
  128. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/simulator/solar.py +0 -0
  129. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/simulator/utils.py +0 -0
  130. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/simulator/view.py +0 -0
  131. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/utils/lc.py +0 -0
  132. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/utils/material.py +0 -0
  133. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/utils/visualization.py +0 -0
  134. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity/utils/weather.py +0 -0
  135. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity.egg-info/SOURCES.txt +0 -0
  136. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity.egg-info/dependency_links.txt +0 -0
  137. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity.egg-info/requires.txt +0 -0
  138. {voxcity-0.5.19 → voxcity-0.5.21}/src/voxcity.egg-info/top_level.txt +0 -0
  139. {voxcity-0.5.19 → voxcity-0.5.21}/tests/__init__.py +0 -0
  140. {voxcity-0.5.19 → voxcity-0.5.21}/tests/voxelcity.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voxcity
3
- Version: 0.5.19
3
+ Version: 0.5.21
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.5.19"
3
+ version = "0.5.21"
4
4
  requires-python = ">=3.10,<3.13"
5
5
  classifiers = [
6
6
  "Programming Language :: Python :: 3.10",
@@ -1,4 +1,3 @@
1
- from .geojson import *
2
1
  from .envimet import *
3
2
  from .magicavoxel import *
4
3
  from .obj import *
@@ -334,8 +334,23 @@ def create_xml_content(building_height_grid, building_id_grid, land_cover_veg_gr
334
334
  "$locationTimeZone_Longitude$": timezone_info[1],
335
335
  }
336
336
 
337
+ # Ensure no None values are passed to replace()
337
338
  for placeholder, value in placeholders.items():
338
- xml_template = xml_template.replace(placeholder, value)
339
+ if value is None:
340
+ print(f"Warning: {placeholder} is None, using fallback value")
341
+ if placeholder == "$locationName$":
342
+ value = "Unknown Location/ Unknown Country"
343
+ elif placeholder == "$locationTimeZone_Name$":
344
+ value = "UTC+00:00"
345
+ elif placeholder == "$locationTimeZone_Longitude$":
346
+ value = "0.00000"
347
+ elif placeholder == "$modelDescription$":
348
+ value = "[Enter model description]"
349
+ elif placeholder == "$modelAuthor$":
350
+ value = "[Enter model author name]"
351
+ else:
352
+ value = "Unknown"
353
+ xml_template = xml_template.replace(placeholder, str(value))
339
354
 
340
355
  # Calculate building heights including terrain elevation
341
356
  building_on_dem_grid = building_height_grid + dem_grid
@@ -508,7 +508,7 @@ def get_city_country_name_from_rectangle(coordinates):
508
508
  coordinates (list): List of (longitude, latitude) coordinates defining the rectangle
509
509
 
510
510
  Returns:
511
- str: String in format "city/ country" or None if lookup fails
511
+ str: String in format "city/ country" or fallback value if lookup fails
512
512
 
513
513
  Example:
514
514
  >>> coords = [(139.65, 35.67), (139.66, 35.67),
@@ -524,7 +524,7 @@ def get_city_country_name_from_rectangle(coordinates):
524
524
  center_coord = (center_lat, center_lon)
525
525
 
526
526
  # Initialize geocoder with rate limiting to avoid hitting API limits
527
- geolocator = Nominatim(user_agent="your_app_name (your_email@example.com)")
527
+ geolocator = Nominatim(user_agent="VoxCity/1.0 (voxcity@example.com)")
528
528
  reverse = RateLimiter(geolocator.reverse, min_delay_seconds=2, error_wait_seconds=5, max_retries=3)
529
529
 
530
530
  try:
@@ -537,9 +537,12 @@ def get_city_country_name_from_rectangle(coordinates):
537
537
  country = address.get('country', '')
538
538
  return f"{city}/ {country}"
539
539
  else:
540
- print("Location not found")
540
+ print("Location not found, using fallback value")
541
+ return "Unknown Location/ Unknown Country"
541
542
  except Exception as e:
542
543
  print(f"Error retrieving location for {center_coord}: {e}")
544
+ print("Using fallback value")
545
+ return "Unknown Location/ Unknown Country"
543
546
 
544
547
  def get_timezone_info(rectangle_coords):
545
548
  """
@@ -558,9 +561,6 @@ def get_timezone_info(rectangle_coords):
558
561
  Returns:
559
562
  tuple: (timezone string with UTC offset, central meridian longitude string)
560
563
 
561
- Raises:
562
- ValueError: If timezone cannot be determined for the given location
563
-
564
564
  Example:
565
565
  >>> coords = [(139.65, 35.67), (139.66, 35.67),
566
566
  ... (139.66, 35.68), (139.65, 35.68)]
@@ -573,25 +573,39 @@ def get_timezone_info(rectangle_coords):
573
573
  center_lon = sum(longitudes) / len(longitudes)
574
574
  center_lat = sum(latitudes) / len(latitudes)
575
575
 
576
- # Find timezone at center coordinates
577
- tf = TimezoneFinder()
578
- timezone_str = tf.timezone_at(lng=center_lon, lat=center_lat)
579
-
580
- if timezone_str:
581
- # Get current time in local timezone to calculate offset
582
- timezone = pytz.timezone(timezone_str)
583
- now = datetime.now(timezone)
584
- offset_seconds = now.utcoffset().total_seconds()
585
- offset_hours = offset_seconds / 3600
586
-
587
- # Format timezone offset and calculate central meridian
588
- utc_offset = f"UTC{offset_hours:+.2f}"
589
- timezone_longitude = offset_hours * 15 # Each hour offset = 15 degrees longitude
590
- timezone_longitude_str = f"{timezone_longitude:.5f}"
591
-
576
+ try:
577
+ # Find timezone at center coordinates
578
+ tf = TimezoneFinder()
579
+ timezone_str = tf.timezone_at(lng=center_lon, lat=center_lat)
580
+
581
+ if timezone_str:
582
+ # Get current time in local timezone to calculate offset
583
+ timezone = pytz.timezone(timezone_str)
584
+ now = datetime.now(timezone)
585
+ offset_seconds = now.utcoffset().total_seconds()
586
+ offset_hours = offset_seconds / 3600
587
+
588
+ # Format timezone offset and calculate central meridian
589
+ utc_offset = f"UTC{offset_hours:+.2f}"
590
+ timezone_longitude = offset_hours * 15 # Each hour offset = 15 degrees longitude
591
+ timezone_longitude_str = f"{timezone_longitude:.5f}"
592
+
593
+ return utc_offset, timezone_longitude_str
594
+ else:
595
+ # Fallback: estimate timezone from longitude
596
+ print("Timezone not found, estimating from longitude")
597
+ estimated_offset = center_lon / 15 # Rough estimation: 15 degrees per hour
598
+ utc_offset = f"UTC{estimated_offset:+.2f}"
599
+ timezone_longitude_str = f"{center_lon:.5f}"
600
+ return utc_offset, timezone_longitude_str
601
+ except Exception as e:
602
+ print(f"Error retrieving timezone for {center_lon}, {center_lat}: {e}")
603
+ print("Using fallback timezone values")
604
+ # Fallback values
605
+ estimated_offset = center_lon / 15
606
+ utc_offset = f"UTC{estimated_offset:+.2f}"
607
+ timezone_longitude_str = f"{center_lon:.5f}"
592
608
  return utc_offset, timezone_longitude_str
593
- else:
594
- raise ValueError("Time zone not found for the given location.")
595
609
 
596
610
  def validate_polygon_coordinates(geometry):
597
611
  """
@@ -1,4 +1,3 @@
1
- from .visualization import *
2
1
  from .lc import *
3
2
  from .weather import *
4
3
  from .material import *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voxcity
3
- Version: 0.5.19
3
+ Version: 0.5.21
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