一部の地理空間スクリプト言語:
1)Python / Jython
Python / Jythonのみ:
PythonとJythonは、osgeo(GDAL / OGR)、PySAL、Shapely、Fiona、Pyshpなどのモジュールを使用して、ソフトウェアなしで地理空間データを処理するために単独で使用できます。PythonPackage Index、Topic:GISまたはGeoscript(Jython)を参照してください。。GSTには多くの例があります
アプリケーションのスクリプト言語として
QGIS、GRASS GIS、GvSIG、OpenJumpまたはGeoserver(およびArcGIS、上記を参照)では、スクリプトにPython / Jythonを使用します。
- Quantum GIS(Python、1.8、マスターバージョンの変更)
from qgis.core import *
layer = qgis.utils.iface.activeLayer()
for elem in layer.selectedFeatures():
geom= elem.geometry()
attrs = elem.attributeMap()
from grass.script import raster as grassr
grassr.raster_info('s_newfrst3@moi')
{'north':118869.900569, 'timestamp': '"none"', 'min': -456.08587646484398,
'datatype': 'FCELL', 'max': 265.500732421875, 'ewres':
14.008076920000001, 'vertical_datum': '', 'west': 164160.653425,
'units': '', 'title': ' (s_newfrst3)', 'east': 176641.849961, 'nsres':
13.976472729999999, 'south': 112552.534895}
from gvsig import *
layer = currentLayer()
features = layer.features()
for feature in features:
geom = feature.geometry()
values = feature.getValues()
from org.openjump.util.python.JUMP_GIS_Framework import *
layer = getSelectedLayers()
for i in layer.iterator():
print layer.name
# first element of the layer
fc = layer[0].featureCollectionWrapper
for elem in range(fc.size):
obj = fc.features[elem]
geom = obj.getGeometry()
from geoserver import Catalog
cat = Catalog('aff_geol')
print cat.stores()
[u'affleurements', u'cartes']
st = cat['affleurements']
print st.layers()
[u'affs']
l = st['affs']
print l.count()
3214
print l.bounds()
(107206.74,148102.45,114110.46,157514.40, EPSG:31370)
また、Java Topology Suite(Jython)などの他のJavaライブラリを使用することもできます。
import sys
sys.path.append('.../jts-1.8.0/lib/jts-1.8.jar')
from com.vividsolutions.jts.geom import Point
2)バッシュ
GRASS GISはBash(シェルとスクリプト(.sh))を使用します
GRASS 6.4.2 (geol):~ > v.out.ascii in=ligneprofil format=standard | grep '^ '|\r.profile -c in=MNT res=30 output=profil.pts
3)R(prettifyコード言語なし)
すべての地理空間処理にRを使用できます。CRANタスクビュー:空間データの分析を参照してください。
library(maptools)
geol <-readShapePoly("cal.shp")
library(rgdal)
geol = readOGR(dsn=".", layer="cal")
library(PBSmapping)
geol = importShapefile("cal.shp")
library(shapefiles)
geol <- read.shapefile("cal")
# PostGIS
geol = readOGR("PG:dbname=test", "cal")
GRASS GISはRを直接使用することもできます。
GRASS 6.4.2 (geol):~ > R
R version ....
> library(spgrass6)
> G <- gmeta6() # paramètres de Grass, région etc.
> montrait <- readRAST6(c("geologie", "mnt"),cat=c(TRUE, FALSE), ignore.stderr=TRUE,plugin=NULL)
4)BeanShell(Java)
OpenJumpはBeanshell(コンソールまたはスクリプト)も使用できます
layer = wc.layerManager .getLayer("road").featureCollectionWrapper;
getLongest() {
max = -1;
for (f : layer.features) { length = f.geometry.length; if (f.geometry.length > max) {max = length; result = f;}
}
return result;
print(getLongest().ID);
5)Groovy(Java)、Scala、JavaScript
これらの言語をGeoScriptで使用できます。例を参照してください
6) JEQLクエリ言語
Martin Davisが示すように(jeqlのラベル)
shapefileReader t file: "agder/agder_buffer.shp";
t = select geomUnionMem(GEOMETRY) g from t;
ShapefileWriter t file: "result.shp";