Coder Social home page Coder Social logo

nens / rastercaster Goto Github PK

View Code? Open in Web Editor NEW
1.0 5.0 2.0 94 KB

Custom DEMs from polygons with profile definitions

License: GNU General Public License v3.0

Python 29.10% PLpgSQL 70.90%
rasterization postgis-raster python digital-elevation-model plpgsql postgis

rastercaster's Issues

QGIS plugin

The RasterCaster currently has a command line interface, which is a major obstacle for users unfamiliar with using the command line. Converting the RasterCaster into a QGIS plugin would solve this problem and is probably relatively easy to achieve due to the tool’s existing python API and QGIS’ full support for PostGIS. A QGIS plugin would to connect a graphical user interface to existing python functions.

Validation

Add validation view on rc.surface that indicated if the surface will produce a valid raster

Smooth edges

If support for relative elevations is extended to elevation points, auxiliary lines, and ‘filler’ polygons, it will enable the user to make smooth transitions from existing elevation to the design elevations.

Other 3Di rasters

The polygons that are used to define elevation, may also be used to define infiltration, friction, or other 3Di raster inputs. Currently it is not possible to store multiple values per polygon.

Relative elevation

Currently, all design heights are absolute (e.g. in m.a.s.l.), rather than relative to the base raster. In many cases, it would be much quicker if you could excavate or heighten an area with a certain value.

FasterCaster

The current RasterCaster is build for accuracy only, not for processing speed. It would be very helpful if the user could set, for each polygon, a processing resolution that is coarser than the output resolution. This would mean balancing accuracy and processing speed according to the user’s preference.

Interactive updates

If the RasterCaster is a QGIS plugin, it also becomes possible to allow updating the designed raster without the need to remove it from the QGIS project, greatly reducing the feedback time for the user.

Importer

Import point and polygon features, user provides mapping for source to target values. Source values can be attributes or z coordinates. Mapping can be direct or via classification/value map. Source features for point can be points or xyz vertices of features. Source features for polygons can be polygons, rings or linework.
Exceptions should be catched and reported rather then terminating the import

Integrate definition library

Allow user to choose e.g. RoadZ as definition_type and fill in the required params and aux ids to get the desired profile

PostGIS independence

The current RasterCaster’s algorithms are based on PostGIS, which has many advantages, including stability, speed, and versatility. However, it requires the user to install PostGIS, which is an obstacle for users unfamiliar with PostGIS. This can be solved by rewriting all PostGIS algorithms in python, which is a time-consuming operation.

Burning 3Di channels into the DEM

The RasterCaster already has the technological building blocks to burn a 1D elements (e.g. channels) into a DEM, with its model-defined cross section definition. With sufficient development, it can be made possible for the user to draw a polygon and remove all 1D elements in that polygon and burn them into the DEM. This is especially useful for assessing design options when still in the sketch phase, where an integral 1D/2D model is too complex to edit.

Enforce all 3Di raster requirements.

There are some requirements to 3Di rasters that the RasterCaster does not currently enforce: valid filenames, projected coordinate system, maximum of three decimals on pixel size, output raster projection equal to global settings EPSG code, and identical data/nodata pixel locations between input rasters. Giving the user the option to enforce these constraints will guarantee that the rasters are usable as 3Di input without any problems. Another useful addition would be to constrain the output raster to active pixels in the base raster or another reference raster, to ensure that the new raster remains compatible with other existing rasters in the 3Di model.

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.