[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