Difference between revisions of "TerraHS"
m |
|||
(34 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | [[Category:Packages]] [[Category:Libraries]] [[Category:Graphics]] |
|
== What is it ? == |
== What is it ? == |
||
− | [[Image:Logo terrahs.png]] is a software component that enables the development of geographical applications in a functional language, using the data handling capabilities of [http://www.terralib.org/ 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. |
+ | [[Image:Logo terrahs.png]] is a software component that enables the development of geographical applications in a functional language, using the data handling capabilities and spatial operations of [http://www.terralib.org/ 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. |
− | *[[ |
+ | *[[Why to use Haskell for GIS programming ? ]] |
== Features == |
== Features == |
||
− | The major features are: |
||
*'''Input and output formats:''' Layers or themes from TerraLib databases (just MySQL), Esri Shape File (*.shp), TIFF file. |
*'''Input and output formats:''' Layers or themes from TerraLib databases (just MySQL), Esri Shape File (*.shp), TIFF file. |
||
Line 16: | Line 15: | ||
*'''Metrical operations:''' perimeter, area, distance, centroid, shapeindex, compacity, fractal |
*'''Metrical operations:''' perimeter, area, distance, centroid, shapeindex, compacity, fractal |
||
== Demos == |
== Demos == |
||
+ | |||
− | The following figure is one example of a vector data can be exported to a TerraLib database, and then it can be visualized with [http://www.dpi.inpe.br/terraview_eng/index.php TerraView]. |
||
+ | Example of vector data that can be exported to a TerraLib database, and then it can be visualised with [http://www.dpi.inpe.br/terraview_eng/index.php TerraView]. |
||
[[Image:Terraview.png|TerraView]] |
[[Image:Terraview.png|TerraView]] |
||
− | The pattern for a main program in TerraHS has the |
+ | The pattern for a main program in TerraHS has the following structure: |
<haskell> |
<haskell> |
||
Line 62: | Line 62: | ||
#ghci SpatialOper.hs |
#ghci SpatialOper.hs |
||
</pre> |
</pre> |
||
− | + | Printing some test values, e.g.: |
|
<pre> |
<pre> |
||
Line 88: | Line 88: | ||
== Download and Installation == |
== Download and Installation == |
||
+ | TerraHS is a Haskell GIS application built using the TerraLib GIS library. In below, is available a debian packages for [http://www.terralib.org/ TerraLib]. TerraHS-0.8 uses the TerraLib-3.3.0 version. |
||
− | TerraHS is available in [http://hackage.haskell.org/package/terrahs cabal package from Hackage]. See [http://www.haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_package How to install a Cabal package in Linux or Windows].However, firstly it is necessary to download and to install the following requirements: (a) GHC-6.8.3(or newer version), (b) MySQL-5.0.41, (c) TerraLib-3-3.0 TerraView-3.3.0 and (d) ( Terralib4c + Translib) |
||
+ | |||
− | === Installation notes for Linux === |
||
+ | Optional, but is recommended to install the [http://www.dpi.inpe.br/terraview_eng/index.php TerraView] application.TerraView is a GIS application based on TerraLib, a GIS library to handle vector and raster data in geographical DBMS such as Access, PostgreSQL, MySQL and Oracle Spatial. |
||
+ | |||
+ | We have developed some specific libraries to support some functionalities for TerraHS. |
||
+ | |||
+ | *'''Translib''', a library for translation among different geographic format files (no database connection), based in the TerraLib library. This library is required for TerraHS to deal whith shape files (*.shp). |
||
+ | |||
+ | *'''Terralib4c''' is a library that maps c++ Terralib functions and classes to C functions. |
||
+ | |||
+ | Other requirements are: GHC-6.8.3(or newer version) and MySQL-5.0.41. |
||
+ | |||
+ | === Installation notes for Windows === |
||
+ | First, is necessary to install MySQL 5.0, and optionaly TerraView: |
||
+ | |||
+ | [[Image:Logo-win.png]][http://www.dpi.inpe.br/terraview/dow/terraView330.exe TerraView-3.3.0 for Windows] |
||
+ | |||
+ | Other libraries are available in: |
||
+ | |||
+ | [[Image:Logo-win.png]][http://www.dpi.inpe.br/~scosta/softwares/terrahs/terrahsextlib.exe TerraHSdependecies install for Windows (TerraLIB+Terralib4C+Translib)] |
||
+ | |||
+ | After that, download [http://www.dpi.inpe.br/~scosta/softwares/terrahs/terrahs-0.8.zip TerraHS] and unzip the archive. From a prompt, move into the created directory and run the following commands: |
||
+ | |||
+ | runhaskell Setup configure --extra-lib-dirs: C:\TerraHSExtLibs |
||
+ | runhaskell Setup build |
||
+ | runhaskell Setup install |
||
+ | |||
+ | The extra-lib-dirs depend of the path where was installed the TerraHSdependencies. |
||
+ | === Installation notes for Debian distributions === |
||
The MySQL is usualy available in the Linux package of your distribution, you just check if it already installed. |
The MySQL is usualy available in the Linux package of your distribution, you just check if it already installed. |
||
+ | For debian distributions, is possible to install they from debian packages: |
||
− | Is necessary to install some extra libraries, available in: [http://www.dpi.inpe.br/~scosta/softwares/terrahs/terrahsextlib.exe] |
||
− | |||
+ | Ubuntu 9.04 (i386) |
||
− | ==== Software dependencies from debian package ==== |
||
− | The installation procedure: |
||
+ | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terralib-3.3.0.deb TerraLib-3.3.0 for (Ubuntu 9.04 (i386))] |
||
− | #sudo dpkg -i package.deb |
||
+ | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terraview-3.3.0.deb TerraView-3.3.0 for (Ubuntu 9.04 (i386))] |
||
− | The uninstallation procedure: |
||
+ | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terrahsdependecies-0.1.deb TerraHSdependecies (TerraLib4c + Translib) for Ubuntu 9.04 (i386)] |
||
− | #sudo dpkg -r package |
||
+ | The TerraLib4c and Translib can be downloaded in separated way: |
||
− | ==== Software dependencies from source file ==== |
||
+ | [[Image:Ubuntu-icon.png]][https://sourceforge.net/projects/translib/files/translib-0.1.deb/download Translib for Ubuntu 9.04 (i386)] |
||
− | Other Linux distributions that are not based in debian, is possible to compile the extra libraries from source files. The installation procedure: |
||
+ | [[Image:Ubuntu-icon.png]][https://sourceforge.net/projects/terralib4c/files/terralib4c-0.1.deb/download Terralib4c for Ubuntu 9.04 (i386)] |
||
− | #tar xvzf package.tar.gz |
||
− | #cd package |
||
− | #./configure |
||
− | #make |
||
− | #sudo make install |
||
+ | Ubuntu 9.04 (amd64) |
||
− | The uninstallation procedure: |
||
− | #cd package |
||
− | #sudo make uninstall |
||
− | === Installation notes for Windows === |
||
+ | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terralib-3.3.0_64bits.deb TerraLib-3.3.0 for (Ubuntu 9.04 (amd_64))] |
||
− | Coming soon |
||
+ | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terrahsdependecies-0.1_64bits.deb TerraHSdependecies (TerraLib4c + Translib) for Ubuntu 9.04 (amd_64)] |
||
− | === Software dependencies === |
||
− | TerraHS is a Haskell GIS application built using the TerraLib GIS library. In below, is available a debian packages for [http://www.terralib.org/ TerraLib]. TerraHS-0.8 uses the TerraLib-3.3.0 version. |
||
+ | The installation procedure: |
||
− | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terralib-3.3.0.deb TerraLib-3.3.0 for (Ubuntu 9.04 (x86))] |
||
+ | #sudo dpkg -i package.deb |
||
+ | The uninstallation procedure: |
||
− | Optional, but is recommended to install the [http://www.dpi.inpe.br/terraview_eng/index.php TerraView] application.TerraView is a GIS application based on TerraLib, a GIS library to handle vector and raster data in geographical DBMS such as Access, PostgreSQL, MySQL and Oracle Spatial. |
||
+ | #sudo dpkg -r package |
||
− | [[Image:Ubuntu-icon.png]][http://www.dpi.inpe.br/~scosta/softwares/debian_packages/terraview-3.3.0.deb TerraView-3.3.0 for (Ubuntu 9.04 (x86))] |
||
+ | After that, download [http://hackage.haskell.org/package/terrahs TerraHS] in cabal package from Hackage and unzip the archive. From a prompt, move into the created directory and run the following commands: |
||
− | [[Image:Logo-win.png]][http://www.dpi.inpe.br/terraview/dow/terraView330.exe TerraView-3.3.0 for Windows] |
||
+ | |||
+ | runhaskell Setup configure |
||
+ | runhaskell Setup build |
||
+ | sudo runhaskell Setup install |
||
+ | |||
+ | It is done. |
||
+ | |||
+ | === Installation notes for generic Linux === |
||
+ | |||
+ | The TerraLib and TerraView source files and instalation notes: |
||
− | The TerraLib and TerraView source files can be downloaded from official sites: |
||
*[http://www.terralib.org/ TerraLib] |
*[http://www.terralib.org/ TerraLib] |
||
*[http://www.dpi.inpe.br/terraview_eng/index.php TerraView]. |
*[http://www.dpi.inpe.br/terraview_eng/index.php TerraView]. |
||
+ | TerraLib4c and Translib are available as usual source Linux package in: |
||
− | We have developed some specific libraries to support some functionalities for TerraHS. The libraries can be installed from an unique package (TerraLib4c+Translib) |
||
− | [[Image: |
+ | [[Image:Linux-icon.png]][https://sourceforge.net/projects/translib/files/translib-0.1.tar.gz/download Translib Source] |
− | [[Image:Logo-win.png]][http://www.dpi.inpe.br/~scosta/softwares/terrahs/terrahsextlib.exe TerraHSdependecies install for Windows (TerraLIB+Terralib4C+Translib)] |
||
+ | [[Image:Linux-icon.png]][https://sourceforge.net/projects/terralib4c/files/Source/terralib4c-0.1.tar.gz/download TerraLib4c Source] |
||
− | Or can be downloaded the source code in separated way: |
||
+ | The installation procedure: |
||
− | '''Translib''', a library for translation among different geographic format files (no database connection), based in the TerraLib library. This library is required for TerraHS to deal whith shape files (*.shp). |
||
+ | #tar xvzf package.tar.gz |
||
− | [[Image:Ubuntu-icon.png]][https://sourceforge.net/projects/translib/files/translib0.1.deb/download Ubuntu 9.04 (x86)] |
||
+ | #cd package |
||
+ | #./configure |
||
+ | #make |
||
+ | #sudo make install |
||
+ | The uninstallation procedure: |
||
− | [[Image:Linux-icon.png]][https://sourceforge.net/projects/translib/files/translib0.1.deb/download Source, generic Linux] |
||
+ | #cd package |
||
+ | #sudo make uninstall |
||
+ | The installation of TerraHS is the same of Debian distribution: |
||
− | '''Terralib4c''', a library that maps c++ Terralib functions and classes to C functions. Required by Haskell to do binding with TerraLib api. |
||
+ | runhaskell Setup configure |
||
− | [[Image:Ubuntu-icon.png]][https://sourceforge.net/projects/terralib4c/files/terralib4c0.1.deb/download Ubuntu 9.04 (x86)] |
||
+ | runhaskell Setup build |
||
+ | sudo runhaskell Setup install |
||
− | [[Image:Linux-icon.png]][https://sourceforge.net/projects/terralib4c/files/Source/terralib4c-0.1.tar.gz/download Source, generic Linux] |
||
== Papers, thesis and Reports == |
== Papers, thesis and Reports == |
||
Some papers and thesis that use TerraHS: |
Some papers and thesis that use TerraHS: |
||
− | * Sérgio Costa, Gilberto Câmara, et.al. '''Prototyping GIS Application in Functional Programming'''. In: GeoPantanal, 2009, Corumbá. Anais do II Geopantanal, 2009. [http://www. |
+ | * Sérgio Costa, Gilberto Câmara, et.al. '''Prototyping GIS Application in Functional Programming'''. In: GeoPantanal, 2009, Corumbá. Anais do II Geopantanal, 2009. [http://www.geopantanal2009.cnptia.embrapa.br/cd/pdf/p23.pdf download] |
*Costa, S. S., Câmara, G., & Palomo, D. (2007). TerraHS: Integration of Functional Programming and Spatial Databases for GIS Application Development. (pp. 127-149).''' Advances in Geoinformatics'''. Springer. [http://www.springerlink.com/content/ur1266l1j371554h/ link] |
*Costa, S. S., Câmara, G., & Palomo, D. (2007). TerraHS: Integration of Functional Programming and Spatial Databases for GIS Application Development. (pp. 127-149).''' Advances in Geoinformatics'''. Springer. [http://www.springerlink.com/content/ur1266l1j371554h/ link] |
Latest revision as of 22:49, 29 June 2021
What is it ?
is a software component that enables the development of geographical applications in a functional language, using the data handling capabilities and spatial operations 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.
Features
- Input and output formats: Layers or themes from TerraLib databases (just MySQL), Esri Shape File (*.shp), TIFF file.
- Data types: Raster or image (just 8 bits), Vectors (Point, Line, Polygon and Cell), Temporal (DateTime, Interval)
- Topological operators: intersects, within, touches, crosses ...
- Geometric operations: intersection, union, difference, rotation.
- Metrical operations: perimeter, area, distance, centroid, shapeindex, compacity, fractal
Demos
Example of vector data that can be exported to a TerraLib database, and then it can be visualised with TerraView.
The pattern for a main program in TerraHS has the following structure:
module Main(main) where
import TerraHS
host = "localhost";
dbname = "demo_terrahs";
user = "root";
password = "root";
main:: IO()
main = do
-- loading a vector data from a shape file
gos <- loadVectorFile "MG_MUN96.shp"
-- open a connection
db <- open (TeMySQL host user password dbname)
-- saving in a database layer
store db "layer_name" gos
print "saved"
Two different outcomes from a image data and theirs respective operations (a)input image, (b) inverted image and (c) reverse image.
The following examples use this data:
- Opening and saving shape file
- Opening a shape file and saving in database
- Opening and save tiff image files
- Simple spatial operations demo
- Understanding how to create a geoobject data type
- Opening a raster data from database
- Opening a tiff file and saving in database
- Loading geoobjects from a database and saving a shape file
Its possible to run in the ghci:
#ghci SpatialOper.hs
Printing some test values, e.g.:
Main> main Loading package syb ... linking ... done. Loading package base-3.0.3.0 ... linking ... done. Loading package terrahs-0.8 ... linking ... done. TePoint (12.5,10.0) TeLine2D [(1.0,1.0),(1.0,2.0),(1.0,7.0)] TePolygon [TeLine2D [(1.0,1.0),(1.0,2.0),(3.0,2.0),(3.0,1.0),(1.0,1.0)]] False True False 2.0
or compile and run:
#ghc SpatialOper.hs -package terrahs-0.8 -o main #main
More details about the api in source documentation - online (HTML)
Download and Installation
TerraHS is a Haskell GIS application built using the TerraLib GIS library. In below, is available a debian packages for TerraLib. TerraHS-0.8 uses the TerraLib-3.3.0 version.
Optional, but is recommended to install the TerraView application.TerraView is a GIS application based on TerraLib, a GIS library to handle vector and raster data in geographical DBMS such as Access, PostgreSQL, MySQL and Oracle Spatial.
We have developed some specific libraries to support some functionalities for TerraHS.
- Translib, a library for translation among different geographic format files (no database connection), based in the TerraLib library. This library is required for TerraHS to deal whith shape files (*.shp).
- Terralib4c is a library that maps c++ Terralib functions and classes to C functions.
Other requirements are: GHC-6.8.3(or newer version) and MySQL-5.0.41.
Installation notes for Windows
First, is necessary to install MySQL 5.0, and optionaly TerraView:
Other libraries are available in:
TerraHSdependecies install for Windows (TerraLIB+Terralib4C+Translib)
After that, download TerraHS and unzip the archive. From a prompt, move into the created directory and run the following commands:
runhaskell Setup configure --extra-lib-dirs: C:\TerraHSExtLibs runhaskell Setup build runhaskell Setup install
The extra-lib-dirs depend of the path where was installed the TerraHSdependencies.
Installation notes for Debian distributions
The MySQL is usualy available in the Linux package of your distribution, you just check if it already installed.
For debian distributions, is possible to install they from debian packages:
Ubuntu 9.04 (i386)
TerraLib-3.3.0 for (Ubuntu 9.04 (i386))
TerraView-3.3.0 for (Ubuntu 9.04 (i386))
TerraHSdependecies (TerraLib4c + Translib) for Ubuntu 9.04 (i386)
The TerraLib4c and Translib can be downloaded in separated way:
Translib for Ubuntu 9.04 (i386)
Terralib4c for Ubuntu 9.04 (i386)
Ubuntu 9.04 (amd64)
TerraLib-3.3.0 for (Ubuntu 9.04 (amd_64))
TerraHSdependecies (TerraLib4c + Translib) for Ubuntu 9.04 (amd_64)
The installation procedure:
#sudo dpkg -i package.deb
The uninstallation procedure:
#sudo dpkg -r package
After that, download TerraHS in cabal package from Hackage and unzip the archive. From a prompt, move into the created directory and run the following commands:
runhaskell Setup configure runhaskell Setup build sudo runhaskell Setup install
It is done.
Installation notes for generic Linux
The TerraLib and TerraView source files and instalation notes:
TerraLib4c and Translib are available as usual source Linux package in:
The installation procedure:
#tar xvzf package.tar.gz #cd package #./configure #make #sudo make install
The uninstallation procedure:
#cd package #sudo make uninstall
The installation of TerraHS is the same of Debian distribution:
runhaskell Setup configure runhaskell Setup build sudo runhaskell Setup install
Papers, thesis and Reports
Some papers and thesis that use TerraHS:
- Sérgio Costa, Gilberto Câmara, et.al. Prototyping GIS Application in Functional Programming. In: GeoPantanal, 2009, Corumbá. Anais do II Geopantanal, 2009. download
- Costa, S. S., Câmara, G., & Palomo, D. (2007). TerraHS: Integration of Functional Programming and Spatial Databases for GIS Application Development. (pp. 127-149). Advances in Geoinformatics. Springer. link
- Sergio Costa, Gilberto Câmara, Danilo Palomo. TerraHS: Integration of Functional Programming and Spatial Databases for GIS Application Development. VIII Brazilian Symposium in Geoinformatics, GeoInfo 2006, Campos do Jordão, 2006. download
- Olga Bittencourt, Gilberto Câmara, Lúbia Vinhas, Joice Mota. Rule-based Evolution of Typed Spatio-temporal Objects. IX Brazilian Symposium in Geoinformatics, GeoInfo 2007, Campos do Jordão, 2007.download
- Sérgio Rosim. Estrutura baseada em grafos para representação unificada de fluxos locais para modelagem hidrológica distribuída. PhD Thesis in Computer Science at INPE, 2008.download