Re: [FreeGeoCZ] PlPython + Postgis

Martin Chodúr <[email protected]>
Newsgroups gmane.comp.gis.grass.cz
Message-ID <[email protected]>
Přesně tak... potřebuju to volat z jinýho serveru a aby mi to vrátilo sadu 
polygonů v nejakým PostGIS friendly formátu. 

To je mi jasný že je to lámaný přes koleno jen mě bohužel zatím nenapadlo 
lepší řešení.

Gdal se dá použít v Pythonu samozřejmě, ale nenašel jsem způsob jak to z 
něho nahrát do databáze zpátky právě.


---------- Původní zpráva ----------
Od: Leknín Řepánek <[email protected]>
Komu: Svobodná geoinformačníinfrastruktura <[email protected]>
Datum: 8. 4. 2014 7:05:36
Předmět: Re: [FreeGeoCZ] PlPython + Postgis

"Hm volat z postgre pajtn, ve kterym se provede komandlajna, která posílá
rourou z gdal na psql. No, to je už trochu ozlomkrk. To přece musí jít
udělat jinak. Ta gdalka de dát do pythonu... Nebo ty to posíláš na jinej
servr?

Je;

On Tue, Apr 08, 2014 at 12:57:24AM +0200, Martin Chodúr wrote:
> Zdravím, narazil jsem na takový problém. Co se snažím udělat je vytvořit 
funkci
> v PLPythonu, která by načetla rastr z databáze, převedla ho do pole hodnot
pro
> clustering, převedla nově vygenerovaný rastr na polygony a vrátila je jako
> tabulku geometrií.
> Načtení dat z databáze (přestože ne zrovna ideálním způsobem) se mi 
podařilo i
> jejich clusterování, pro převod na polygony jsem chtěl ale využít ST_
Polygon, k
> tomu ale potřebuji převést výslednou matici zpět na raster a ještě jí 
nastavit
> spatial data jako srs bbox atd.
> 
> Tady sem bohužel narazil. Gdal nemá podle všeho zatím funkční driver pro 
výstup
> do postgis (možná se pletu) a nevím jak tenhle zádrhel obejít zatím.
> 
> Uložení do souboru je z důvodu že imread() nebere vstup string. jeto jen
> provizorní řešení.
> 
> Pokud by někdo uměl poradit, nebo měl lepší nápad jak to řešit, budu 
vděčný.
> Podpora práce s rastrem v PostGISu není zatím tak převratná a google neumí
> poradit už.
> 
> Předem díky za jakoukoli odpověď
> Martin Chodúr
> 
> pro ukázku dosavadní stav funkce:
> 
> CREATE OR REPLACE FUNCTION cluster (raster text)
> RETURNS table(geom geometry)
> AS $$
> from sklearn.cluster import AffinityPropagation
> import matplotlib.pyplot as plt
> from scipy import misc
> from osgeo import gdal
> import os
> 
> out = plpy.execute("select st_aspng(rast) png from "+raster, 1)
> f = open('/foo/bin/temp.png','wb')
> f.write(out[0]['png'])
> f.close()
> 
> im = misc.imread('/foo/bin/temp.png')
> im_reshaped = im.reshape((len(im) * len(im[0]), 3))
> 
> af = AffinityPropagation(damping=0.5, convergence_iter=2).fit(im_reshaped)
> labels_reshaped = af.labels_.reshape(len(im), len(im[0]))
> 
> ##### dál už to nefunguje a je to jen představa jak by to mohlo jít
> 
> misc.imsave('/home/fus/out/temp_clustered.png',labels_reshaped)
> 
> plpy.info(os.system('raster2pgsql /home/fus/out/temp_clustered.png
> clustering.out | psql -d testovaci -q '))
> 
> out = plpy.execute("select st_polygon(rast) geom from clustering.out limit
> 1")
> 
> return out
> $$ LANGUAGE plpythonu;
> 
> 

> _______________________________________________
> FreeGeoCZ mailing list
> [email protected]
> http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz_____________________
__________________________
FreeGeoCZ mailing list
[email protected]
http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz"

_______________________________________________
FreeGeoCZ mailing list
[email protected]
http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.