Upgrading to 3.0¶
ObjectNat 3.0 runs its computationally intensive parts in a compiled Rust engine, objectnat._rust, and adds
2.5D and grid methods on top of it. No function is removed or renamed, but the parameters of the former Python
implementations are removed, some results differ and installing from source needs a Rust toolchain. Release 2.2.0
already has the new engine and still accepts the removed parameters with a warning, so this page applies to
upgrades from any 2.x release.
What changes for existing code¶
Change |
Effect |
What to do |
|---|---|---|
Radius isochrones and coverage follow the network |
With |
|
|
|
Remove these arguments; |
|
|
Remove the argument; |
Provision allocation runs in Rust |
For a given |
None needed: the model and the signature are unchanged |
Noise reflections are deterministic |
|
None needed |
Installation |
Wheels contain the compiled extension; building from source requires Rust; IduEdu 2.4.2 or newer |
|
What is new¶
Insolation: direct sun hours on the ground (
get_insolation()) and on facades floor by floor (get_facade_insolation()), among buildings and terrain, for a day or a period.Visibility Analysis: 2.5D viewsheds over building heights and terrain (
get_viewshed()), isovist metrics inget_visibility(), isovist fields on a grid (get_isovist_grid()), catchments of many observers in 2D and 2.5D (get_visibility_catchment(),get_viewshed_catchment()) and observers along a pedestrian graph (get_observer_points()).Noise Simulation:
simulate_noise_grid(), sound levels on a receiver grid around point, line and polygon sources with reflections and diffraction around building corners.Rasters:
rasterize()andRasterturn grid results into matplotlib plots, GeoTIFF files and web maps.Speed: exact visibility and provision allocation are many times faster (provision on the example data takes 0.06 s instead of 2.6 s), and isochrones for many origins are faster with the same geometry.