Skip to Content.
Sympa Menu

freegeocz - Re: [FreeGeoCZ] PlPython + Postgis

freegeocz AT fsv.cvut.cz

Předmět: Svobodná geoinformační infrastruktura

List archive

Re: [FreeGeoCZ] PlPython + Postgis


Chronological Podle vláken 
  • From: Leknín Řepánek <godzilalalala AT gmail.com>
  • To: Svobodná geoinformační infrastruktura <freegeocz AT fsv.cvut.cz>
  • Subject: Re: [FreeGeoCZ] PlPython + Postgis
  • Date: Tue, 8 Apr 2014 10:00:00 +0200
  • List-archive: <http://mailman.fsv.cvut.cz/pipermail/freegeocz>
  • List-id: Svobodná geoinformační infrastruktura <freegeocz.fsv.cvut.cz>

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 <godzilalalala AT gmail.com>
> Komu: Svobodná geoinformačníinfrastruktura <freegeocz AT fsv.cvut.cz>
> 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 <godzilalalala AT gmail.com>
> > Komu: Svobodná geoinformačníinfrastruktura <freegeocz AT fsv.cvut.cz>
> > 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ě
>
> > 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
> > > FreeGeoCZ AT fsv.cvut.cz
> > > http://mailman.fsv.cvut.cz/mailman/listinfo/
> > freegeocz_______________________________________________
> > FreeGeoCZ mailing list
> > FreeGeoCZ AT fsv.cvut.cz
> > http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz
> >
>
> > _______________________________________________
> > FreeGeoCZ mailing list
> > FreeGeoCZ AT fsv.cvut.cz
> > http://mailman.fsv.cvut.cz/mailman/listinfo/
> freegeocz_______________________________________________
> FreeGeoCZ mailing list
> FreeGeoCZ AT fsv.cvut.cz
> http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz
>

> _______________________________________________
> FreeGeoCZ mailing list
> FreeGeoCZ AT fsv.cvut.cz
> http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz





Archivace běží na MHonArc 2.6.19+.

Top of Page