2016-11-04 9 views
1

J'utilise gdal_grid pour créer un modèle d'élévation de certaines surfaces 3D.Comment utiliser gdal_grid avec des points

je peux le faire en utilisant un GeoJSON fichier avec cette commande:

ds2 = gdal.Grid('outputfile.tif', 'inputfile.geojson', format = 'GTiff', algorithm = 'linear:radius=0') 

Cela fonctionne très bien, mais je voudrais être en mesure de le faire pour chaque fonctionnalité individuellement. Je peux boucle à travers le GeoJSON fichier et obtenir chaque fonction, mais est-il un moyen d'utiliser gdal.Grid avec seulement des points, par exemple:

[[12.135253194446484, 55.590235278979236, 44.500800000000005], 
[12.136885609925141, 55.58968131535586, 44.500800000000005], 
[12.149742647277185, 55.59946751368944, 89.5008], 
[12.14443275453964, 55.601269628832526, 89.5008], 
[12.135253194446484, 55.590235278979236, 44.500800000000005]] 

Mes questions sont donc:

  1. Puis-je utiliser gdal.Grid avec les points au lieu du geojson ??
  2. Où puis-je voir EXACTEMENT quels paramètres d'entrée je peux utiliser pour gdal.Grid ??

Répondre

0

Voici comment j'ai résolu le problème. Ce n'est peut-être pas la solution la plus élégante, mais cela semble fonctionner. Je charge les surfaces à partir d'un fichier geojson (en tant que dictionnaire), obtiens la première fonctionnalité, puis la transforme en une chaîne json.

with open(surfaceFileName,'r') as file: 
    data = json.load(file) 
# the first feature: 
dataJson = json.dumps(data['features'][0]['geometry']) 
# this feature as geojson-string 
featureJson = """{"type":"FeatureCollection", 
       "features": [ 
       {"type": "Feature", 
       "geometry": """+dataJson+""", 
       "properties": {} 
       }]}""" 
# Using gdal_grid: 
ds2 = gdal.Grid('test10py.tif', featureJson, format = 'GTiff', algorithm = 'linear:radius=0')