Geospatial data consists of a collection of spatial, non-spatial and spatio-temporal data types and operations on them. Many spatial analysis problems can be expressed as algebraic theories, which formalize these spatial components in a rigorous and generic way. Functional languages express the semantics of abstract data types directly and allow building of complex geospatial systems from small parts. Each of these small parts is expressed as an algebra and developed in a rigorous and testable fashion. The resulting algebras are abstract building blocks which can be combined to create more complex solutions.
We have developed TerraHS, a software component that enables the development of geographical applications in a functional language, using the data handling capabilities of TerraLib. TerraLib is a C++ library that supports different spatial database management systems, and that includes a large number of spatial algorithms. As a result, we get a combination of the good features of both programming paradigms.
- Prototyping GIS Application in Functional Programming. Sérgio Costa, Gilberto Câmara, et.al. In: GeoPantanal, 2009, Corumbá. Anais do II Geopantanal, 2009.
- TerraHS: Integration of Functional Programming and Spatial Databases for GIS Application Development. Sergio Costa, Gilberto Camara, Danilo Palomo. VIII Brazilian Symposium in Geoinformatics, GeoInfo 2006, Campos do Jordão, 2006.
- Rule-based Evolution of Typed Spatio-temporal Objects. Olga Bittencourt, Gilberto Câmara, Lúbia Vinhas, Joice Mota. IX Brazilian Symposium in Geoinformatics, GeoInfo 2007, Campos do Jordão, 2007.
- Estrutura baseada em grafos para representação unificada de fluxos locais para modelagem hidrológica distribuída . Sérgio Rosim´s PhD Thesis in Computer Science at INPE, 2008.
Notes about download and instalations is available in the TerraHS Wiki