Skip to content
/ libral Public

A library for various geospatial raster methods

License

LGPL-2.1, Unknown licenses found

Licenses found

LGPL-2.1
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

ajolma/libral

Repository files navigation

libral

A library for various geospatial raster methods

HISTORY

This library began a long time ago as the part written in C for a Perl module Grid.pm. Grid.pm became Geo::Raster and it requires this library.

PURPOSE

This library has three purposes. The first is to be a fast and simple raster algebra calculator. The second is to contain some geospatial analysis algorithms, especially for hydrological terrain analysis. The third is to provide methods for rendering vector data on a graphics backend. There are also some code for computational geometry in the library.

DEPENDENCIES

Raster input and output and vector output are mostly left for GDAL.

GDK and Cairo are used as the graphics backend.

LIMITATIONS

The data type of the cells of the libral rasters (they are called grids in the code) are either integer or real. ral/config.h defines the implementation data types via RAL_INTEGER and RAL_REAL, which are by default short (two byte int) and float (four byte real). Use of other data types is not tested.

The libral rasters are in-memory rasters. Thus the size of the rasters are limited by the amount of RAM in the computer.

NOTES ON THE CODE

config.h

Generated by configure but included in distribution for not-configure-based builds (in those cases, you may need to edit it). Defines HAVE_LIBPNG. This is not installed anywhere, it is used only in build.

msg.h

Things that are needed to build RAL but not a part of its API. Mainly error messages.

ral/ral.h

The main header to include for using RAL.

ral/config.h

Configuration for the local build. Generated by configure but included in distribution for not-configure-based builds (in those cases, you may need to edit it). Defines RAL_INTEGER and RAL_REAL.

ral/hash.h

This is an almost general purpose hash library. It is used for example in ral_grid.c. I'm not using glib's hash functions and that's a conscious decision.

ral/vector.h

This is a simple vector library. The functions are mostly used in rasterization and in visualization.

ral/grid.h

This defines the grid structure (a raster) and fundamental raster algebra operations and some not so fundamental.

ral/dem.h

Methods for raster DEMs and its derivatives.

ral/visual.h

Visualization attributes and tools.

ral/backend.h

Methods for rendering geospatial data onto various backends using visualization attributes.

TO DO / FUTURE PLANS

Separate the library according to purpose. I.e., the geospatial and terrain analysis should be in its own library as well as the rendering.

Use opaque pointers for structs.

Use Cairo for rendering onto the graphical backend.

Create better test code.

OTHER CODE FOR RASTER ALGEBRA / TERRAIN ANALYSIS

For raster algebra / terrain analysis there are also other libraries, some of which are free. These include

PCRaster http://pcraster.geo.uu.nl/

RiverTools http://rivix.com/

TAPES-G Gallant and Wilson. TAPES-G: A grid-based terrain analysis program for the environmental sciences. Computers & Geosciences 22(7) 713-722.

TARDEM http://www.crwr.utexas.edu/gis/gishydro99/uwrl/tardem.html

TOPOG http://www.per.clw.csiro.au/topog/

TOPAZ http://www.ars.usda.gov/Main/docs.htm?docid=21167

OpenEV http://openev.sourceforge.net

GRASS http://grass.osgeo.org/

About

A library for various geospatial raster methods

Resources

License

LGPL-2.1, Unknown licenses found

Licenses found

LGPL-2.1
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages