Re: [FreeGeoCZ] PlPython + Postgis
Leknín Řepánek <[email protected]>
| Newsgroups | gmane.comp.gis.grass.cz |
|---|---|
| Message-ID | <[email protected]> |
Taky si myslim, jestli teda dobře chápu zadání (a co je WPS)... On Tue, Apr 08, 2014 at 10:08:33AM +0200, Jachym Cepicky wrote: > Taky mi to zní jako něco pro WPS :-) > > J > > On Tue, Apr 08, 2014 at 10:00:00AM +0200, Leknín Řepánek wrote: > > Do postgisu to dostaneš uplně v poho, když máš tabulku geometry, tak > > copy myslim zvládá i wkt. Co se týče insert statementů, tak dáš normálně > > wkt::geometry a tradá. S WKB to nejspíš pude taky. WKB ti vrátí gdal v > > pajtnu. > > Další možnost je to otrigrovat a pak je tvuj limit na vstupní formát v > > podstatě limitovanej jen tim, co jseš schopnej ošetřit fcí. Takže třeba > > gml je uplně bez problému (i když tady neni gml relevantní). > > > > Nevim teda, jestli dobře chápu tu tvojí myšlenku toho pavouka, ale > > přijde mi zbytečný, aby si měl postgre server na kždý tý noze. Postgre > > je na skladování dat, na výpočty to nebude uplně ono. Podle mě bys měl > > lepší, kdyby si měl teda servr s datama (kam posypeš o výstupy) a > > aplikaci, která bude rozdělovat práci mimo ten sql server. Poněvač tam > > se ti taky může stát, že bude někde čekat fce na odpověď, budeš mít > > locky a tenhle celej blázinec a pude to celé do kopru. TOhle použití tý > > fce nepokládám za uplně rozumný. > > > > Je; > > > > On Tue, Apr 08, 2014 at 09:45:02AM +0200, Martin Chodúr wrote: > > > Jáchym: No na to by měla stačit ta funkce ST_Polygon. Problém je že já > > > potřebuju to převést do nějakýho použitelnýho formátu abych ty data mohl > > > zpracovat protože PostGIS nemá ty možnosti co potřebuju bohužel. > > > > > > Leknín: hmm to co navrhuješ je zajímavý o tom právě nic nevím. > > > > > > Celková představa je taková že se jedná o spuštění v clusteru na víc > > > virtuálních mašinách. Bude jeden centrální master kterej bude mít rastrový > > > snímky v postgisu v tailech. Pak bude x slejvů na který bude ten master ve > > > vláknech přiřazovat jednotlivý taily ,pokud bude dostupnej ten slejv, do funkce > > > (co právě píšu) přes 5432 klasicky a ta by vrátila seznam polygonů který by si > > > master skládal k sobe do jedné tabulky zase. > > > Na tom mastru potřebuju výsledný data zase v postgisu protože pak by > > > následovaly další analýzy. > > > > > > Ten největší problém je právě ale převést ty rastrový data z postgisu do nějaké > > > podoby abzch s něma mohl pracovat a potom zase zpátky do postgisu no.. > > > > > > > > > Kouknu na to copy from program, ale kdyby vás napadl jinej návrh celé té > > > architektury budu jen rád pokud bude lepší. > > > > > > > > > > > > > > > ---------- Původní zpráva ---------- > > > Od: Leknín Řepánek <[email protected]> > > > Komu: Svobodná geoinformačníinfrastruktura <[email protected]> > > > Datum: 8. 4. 2014 8:55:02 > > > Předmět: Re: [FreeGeoCZ] PlPython + Postgis > > > > > > > > > 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 > > > > > > > > _______________________________________________ > > > 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 > > > -- > Jachym Cepicky > URL: http://les-ejk.cz > e-mail: jachym.cepicky at gmail com > PGP: http://les-ejk.cz/pgp/JachymCepicky.pgp > @jachymc > _______________________________________________ > 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