[pyar] Cortar raster en Geodjango
Juan Carlos Abdala
tonisgo en gmail.com
Jue Dic 10 17:04:14 ART 2015
Gente buen día, estoy incursionando en GeoDjango y me tope con un problema
de no poder cortar un raster con un shape, usando las herraminetas del
mismo.
Si bien a partir del django 1.8 se pueden cargar rasters y soporta
funciones de POSTGIS no pude encontrar la funcion la que necesito, que en
postgis se veria asi:
SELECT ST_Clip(rasti.rast, shape.poly) AS raster
FROM modis_raster as rasti
CROSS JOIN modis_shape as shape
Where rasti.id = 7
AND shape.id = 9;
Si bien funciona lo que me gustaría algo soportado por la ORM, alguno lo
encontro
Lo mas parecido que encontre es Intersection.
https://docs.djangoproject.com/en/1.9/ref/contrib/gis/functions/#django.contrib.gis.db.models.functions.Intersection
from django.contrib.gis.db.models.functions import Intersection
from modis.models import Shape, Raster
shape = Shape.objects.all().first()
raster = Raster.objects.all().first()
Intersection(raster.rast, shape.poly)
que devuelve:
Intersection(Value(), GeomValue(SRID=4326;POLYGON ((-63.4641437268324324
-31.4787135064993819, -63.4659110233989523 -31.4820827421527483,
-63.4680441715292787 -31.4807663742485850, -63.4686201888293695
-31.4792556412187778, -63.4686571017877270 -31.4769050496621681,
-63.4675316594277845 -31.4754922220365394, -63.4667996739109697
-31.4749697905970152, -63.4641353105968307 -31.4750378214511564,
-63.4641437268324324 -31.4787135064993819))))
Pero solo son las coordenadas geométricas y yo necesito el valor del pixel
Les paso mas datos, por las dudas:
model.py
from django.contrib.gis.db import models
class Raster(models.Model):
name = models.CharField(max_length=50)
rast = models.RasterField()
class Shape(models.Model):
image = models.ForeignKey("Raster", null=True, blank=True)
name = models.CharField(max_length=50)
poly = models.PolygonField()
Y en las tablas en la base de postgis se ve:
Table "public.modis_raster"
id | integer | not null default
nextval('modis_modis_id_seq'::regclass) | plain |
name | character varying(50) | not null
| extended | |
rast | raster | not null
| extended |
Table "public.modis_shape"
id | integer | not null default
nextval('modis_shape_id_seq'::regclass) | plain |
name | character varying(50) | not null
| extended |
poly | geometry(Polygon,4326) | not null
| main |
image_id | integer |
| plain |
Saludos y desde ya gracias por leer.
--
Att. Juan Carlos Abdala
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151210/a2b69811/attachment.html>
More information about the pyar
mailing list