Giter Club home page Giter Club logo

palmpy's People

Contributors

stefanfluck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

palmpy's Issues

rewrite dialect input with exec() statements.

Currently, each new dialect requires 1) a dialect.py file in the dicts folder and 2) a couple of lines in the make_static routine. automate that with exec('command as string'). Therefore, any kind of string can be supplied in the namelist, and just the file can be supplied in the dicts folder.

alternative: make path of dicts folder/file also an input in the namelist. if none provided -> use current path as it is now.

NameError: name 'zlad' is not defined

I installed the palmpy but while executing the make_static.py it shows an error as shown below.

START CREATING DOMAIN 0
Origin before cutting: 682917.4999999999/247513.50000000105. Resolution: 0.5000000000002621 m.
Origin after cutting: 682924.9999999999/247288.00000000093. Resolution: 4.0 m.
Raster Size: X: 192 Y: 192
Shifted the input array downwards by 404.31 meters.
Traceback (most recent call last):

File "/home/thirurrp/Downloads/palmpy-master/examples/tutorial_example/make_static.py", line 604, in
for m in range(len(zlad)):

NameError: name 'zlad' is not defined

add crs variable to static file

use the following information.

caution: not all are named the same! e.g. latitude of origin is not there in 21781.

check effect on whole process - so far it has been rather crs independent (provided rectangular data has been used as input)

image

probes: create input parameter for names

in the namelist, create a field containing the names for the probes to be implemented. then, when the final parameters.txt file is created, serve the names with the corresponding coordinates.

street_types: adjacent highway/path polygons, path type is burned into raster

if sql possible in gdal_rasterize, do it with that.
if not possible, work in 2 steps with street_types: first create array with important streets: highways, links, hauptstrassen, etc. create seconda array with not so important roads. Then numpy.minimum().reduce(arr1,arr2) them to the lower value (assuming lower values are better).

buildings_3d: allow also supply as a raster file.

check how bridges are represented in the 2.5d zurich buildings file. how is the lower limit defined?
how have i done it in the zrh example, was it supplied with a shp or raster?
should buildings only be made available as shp? probably no: but only allow raster input for upper limit, lower limit could come from shp with attribute.

soil array is done too early.

take it out of mapbb function, create own function. put it to end of crops/streets modifications.
must be nonzero where vegetation or pavement is present.

Allow direct input of AV data

currently, AV data needs to be split by category as pavementareas and bb shapefiles. This can be simplified. idea: Download Amtliche Vermessungsdaten as shapefile in Format DM.01-AV-CH (or -ZH etc), and provide list which categories belong to which. Include variable that says which datastandard AV data are in (e.g dm01avch or dm01avzh, containing list bbcats = 5,10,etc and pavcats = 19,40,39 etc).

change BELAGSART attribute to OBJEKTART

having belagsart as a separate feature in the paved surfaces shapefile is not really practicable. in all other files it's OBJEKTART, and in the zurich standard it is included in the ART attribute anyway.

leaf are index as shapefile attribute

currently all forests, tree lines and single trees have the same leaf area index. having it as shapefile attribute could create a more realistic tree repressentation.

refine docropfields to individual_vegetation/pavement/water

right now, cropfields shp sets vegetation to 2. this can be exploited -> rename to individuallanduse.
then, assign objektart 1001, 1003, ... for individually set vegetation types, 1101... for crop types. 2001, 2002... for individual water types and 3001 for individual pavement types.

then in script, make individlanduse array. make a np.where, filter for values between 1000 and 1999, change vegarr based on it. filter between 2000-2999 and change watarr based on it. filter between 3000-3999 and change pavarr based on it (after dopavedbb, because pave is added ontop).

import of module: decide on way to do it.

right now, the path to the module is to be provided.

modules are imported from the paths when running in python sys.path. the palmpy folder can be copied to one of those locations, then its importable with palmpy.staticcreation.geodatatools as gdt etc and the if-check is not needed and the adding of the modulepath to the sys.path.

cleaner would be to have the user
-create the palm environment
-copy the palmpy folder to one of the locations in sys.path (probably .../env/palm/lib/.)
and then import palmpy in a normal way.

Implement warning if multiple building polygons have same ID

If two buildings, that are spatially separated, have the same ID, their height will be defined by one of the polygons terrain height plus the building height. the same terrain height will also be used for the other building, which could lead to a very high building (or it just does not appear, depending on the relative terrain altitude).

remove need for tmp path in namelist file

having to specify a tmp path is not really necessary. make it optional: if empty, use same path + \tmp\ as default. then one can give another path if one needs a tailored solution

rethink having 3d vegetation in three separate files

currently, 3d vegetation is split in forest, tree lines and single trees/bushes.
however, they are all polygons, for which LAI and shape parameters could be contained as an attribute in the file itself. This simplifies the required files significantly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.