Một số ngôn ngữ kịch bản không gian địa lý:
1) Con trăn / Jython
Python / Jython một mình:
Python và Jython có thể được sử dụng một mình để xử lý dữ liệu không gian địa lý mà không cần bất kỳ phần mềm nào, sử dụng các mô-đun như osgeo (GDAL / OGR), PySAL, Shapely, Fiona, Pyshp, ..., xem Chỉ mục gói Python, Chủ đề: GIS hoặc Geoscript (Jython) . Có nhiều ví dụ về GST
như ngôn ngữ kịch bản trong các ứng dụng
QGIS, GRASS GIS, GvSIG, OpenJump hoặc Geoserver (và ArcGIS, xem ở trên) sử dụng Python / Jython để viết kịch bản:
- Quantum GIS ( Python , 1.8, thay đổi trong phiên bản chính)
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()
- Máy chủ địa lý ( Jython )
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)
và bạn cũng có thể sử dụng các thư viện Java khác như Java Topology Suite ( Jython ):
import sys
sys.path.append('.../jts-1.8.0/lib/jts-1.8.jar')
from com.vividsolutions.jts.geom import Point
2) Bash
GRASS GIS sử dụng Bash (shell và script (.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 (không có ngôn ngữ mã chỉnh sửa)
Bạn có thể sử dụng R cho tất cả các phương pháp điều trị không gian địa lý, xem CRAN Nhiệm vụ xem: Phân tích dữ liệu không gian :
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")
nhưng GRASS GIS cũng có thể sử dụng R trực tiếp:
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 cũng có thể sử dụng Beanshell (bảng điều khiển hoặc tập lệnh)
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 và JavaScript
Bạn có thể sử dụng các ngôn ngữ này với GeoScript, xem các ví dụ
6) Ngôn ngữ truy vấn JEQL
Như thể hiện bởi Martin Davis ( nhãn jeql )
shapefileReader t file: "agder/agder_buffer.shp";
t = select geomUnionMem(GEOMETRY) g from t;
ShapefileWriter t file: "result.shp";