Re: [FreeGeoCZ] PlPython + Postgis

Leknín Řepánek <[email protected]>
Newsgroups gmane.comp.gis.grass.cz
Message-ID <[email protected]>
Hele, co máš za postgre? V postgre 9.3 jde copy from program. Takže bys
mohl použít tohle. Ináč existuje způsob, jak propojovat servery, že to
pak běhá přímo v postgre, je to nástupce dblinku, jmenuje se to fdw.

Takže si to jenom zrekapituluju. Na jednom servru máš rastry a chceš si
z druhýho vyptat vektor?

Ono asi nejjednodušší bys měl nemít ten pajtn ve fci postgresový, ale
uplně mimo s tim, že by sis připojil oba dva ty servry a tahal to přes
ten pajtn. To jde udělat několika způsobama. Myslim propojit pajtn s
postgre...

Je;

On Tue, Apr 08, 2014 at 08:01:09AM +0200, Martin Chodúr wrote:
> 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

_______________________________________________
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.