Quería comenzar con el desarrollo de la herramienta personalizada en césped Grass GIS o QGIS. Cómo debo comenzar en desarrollar la herramienta. Buscar mucho en google motor de búsqueda para comenzar con el desarrollo de la herramienta en césped Grass GIS o QGIS. Alguien por favor me puede ayudar en el proceso de desarrollo de la herramienta en la hierba.
Respuesta
¿Demasiados anuncios?Si usted desea desarrollar un módulo de GRASS GIS como una secuencia de comandos de Python o simplemente una secuencia de comandos que utiliza GRASS GIS (que es, de hecho, casi el mismo), empezar con http://grasswiki.osgeo.org/wiki/GRASS_and_Python.
Usted necesita estar en el CÉSPED de la sesión y el inicio de una secuencia de comandos de Python a partir de allí, entonces usted puede importar
from grass.script import core as gcore
que permite llamar a HIERBA módulos/comandos como este:
return_code = gcore.run_command('r.lake', elevation=elevation,
lake=outputs[i], xy=coordinates,
wl=water_level)
El resto es solo la normal de Python. Sin embargo, si desea que su secuencia de comandos para tener parámetros de línea de comandos, es una gran idea para el uso de la HIERBA mecanismo para procesar los parámetros de línea de comandos porque al mismo tiempo que se volvió su secuencia de comandos de Python en la HIERBA módulo. Aquí está el código de ejemplo de un módulo completo:
#!/usr/bin/env python
#%module
#% description: Fills lake at given point(s) to given levels
#% keywords: raster
#% keywords: hydrology
#%end
#%option G_OPT_R_ELEV
#%end
#%option
#% key: output
#% type: string
#% label: Basename for output maps
#% description: Maps will start with this basename
#%end
#%option
#% key: start_water_level
#% type: double
#% label: Start water level
#% description: Initial water level at the start of the simulation
#% required: yes
#% guisection: Water
#%end
#%option
#% key: end_water_level
#% type: double
#% label: Final (maximal) water level
#% description: Maximal water level to be reached
#% required: yes
#% guisection: Water
#%end
#%option G_OPT_M_COORDS
#% label: Seed point coordinates
#% description: Either this coordinates pair or a seed map name have to be specified
#% required: no
#% guisection: Water
#%end
import sys
from grass.script import core as gcore
def frange(x, y, step):
while x <= y:
yield x
x += step
def main():
options, flags = gcore.parser()
elevation = options['elevation']
basename = options['output']
start_water_level = float(options['start_water_level'])
end_water_level = float(options['end_water_level'])
water_level_step = 0.5
coordinates = options['coordinates']
water_levels = [step for step in frange(start_water_level,
end_water_level, water_level_step)]
outputs = ['%s%s%s' % (basename, '_', water_level)
for water_level in water_levels]
for i, water_level in enumerate(water_levels):
return_code = gcore.run_command('r.lake', elevation=elevation,
lake=outputs[i], xy=coordinates,
wl=water_level)
if __name__ == '__main__':
sys.exit(main())
El #!
línea permite la ejecución en sistemas tipo unix, sin explícitamente usando el intérprete de Python en la línea de comandos. El #%
líneas son utilizados por la HIERBA para analizar las opciones y los incluya en options, flags = gcore.parser()
diccionarios. El resto del código, en este caso, es la computación de diferente nivel del agua, que se utiliza como una entrada a la HIERBA, r.lake
módulo que simula lo que se inundan cuando el agua tiene cierto nivel en DEM. Este script es una versión simple de r.lake.series
HIERBA addon (de la fuente que usted puede buscar en google usando svn r.lake.series
y encontrar la manera de comprobar los parámetros, eliminar mapas, incluye licencia y autores).
Puede ejecutar esta secuencia de comandos/módulo:
# inside GRASS GIS session (command line)
python ~/myscripts/r.lake.series.simple.py --help
python ~/myscripts/r.lake.series.simple.py elevation=elevation output=lake start=15 end=18 coor=548841.585956,4388325.94431
Si usted desea desarrollar un módulo de GRASS GIS como programa escrito en C o C++, empezar con http://grass.osgeo.org/development/how-to-start/ y verificación de los módulos de la muestra en la HIERBA código fuente (doc/raster/r.example/
y doc/vector/v.example/
).
Tenga en cuenta que la API en C de las funciones son accesibles en Python a través de ctypes y, hablando de GRASS GIS 7, hay también un interfaz Python llamada PyGRASS, por lo que en Python se puede usar todas las cosas disponibles en la HIERBA C API.
En QGIS puede usar QGIS Procesamiento. Cómo utilizar la función de secuencias de comandos se describe en
Documentation for QGIS 2.0 -> User guide/Manual -> QGIS processing framework -> Using processing algorithms from the console
(No puedo utilizar el enlace ahora). Básicamente, importe processing
módulo y uso runalg
función de:
import processing
...
processing.runalg('algorithm_name', params, ..., and_outputs, ...)
Este supongamos que usted tiene QGIS configurado con la HIERBA y que conocen los parámetros y salidas del algoritmo (esto se puede encontrar también el uso de processing
funciones tales como algoptions
y alghelp
).