Rastr (hillshade) v pgsql a Mapnik

3 zpráv
Zpět na přehled

Rastr (hillshade) v pgsql a Mapnik

3 zpráv PJ 2 účastníků 4 min čtení
  1. Petr Vejsada osm na propsychology.cz #m67df97
    Ahoj, už delší dobu se nemohu hnout z místa, tak se zeptám. Chtěl bych mít v databázi rastrovou vrstvu pro reliéy/stínování a to pak zobrazovat Mapnikem. Mapnik přímo to v aktuální stabilní verzi (asi) nepodporuje, ale umí to GDAL a Mapnik zase umí GDAL. Zkusil jsem Mapniku podstrčit jako zdroj dat GDAL, jen jsem si 'trochu' poupravil název souboru. Konfigurace vypadá takto: <Datasource> <Parameter name="type">gdal</Parameter> <Parameter name="file">PG:dbname=pedro port=5432 schema=gis table=cz_hillshade mode=2</Parameter> <Parameter name="format">tiff</Parameter> </Datasource> Když zavolám Mapnik z Pythonu, použiji skripty na generování dlaždic nebo obrázku generate_tiles.py nebo generate_image.py, tak vše funguje podle mých představ. Data bere z postgresql a vykreslí, co chci. GDAL to, co je v parametru <file> vezme jako datasource z databáze a vše je OK. Pokud to chci dát do produkčního režimu, tedy přes Tirex a mod_tile, už se to nezdaří. Do syslogu dostanu hlášku: Feb 5 21:08:52 propsy tirex-backend-mapnik[10981]: Renderer started (name=mapnik) Feb 5 21:08:57 propsy tirex-backend-mapnik[10981]: cannot add /etc/tirex/renderer/mapnik/hill.conf Feb 5 21:08:57 propsy tirex-backend-mapnik[10981]: `/home/mapnik/layers/hill/PG:dbname=pedro port=54 32 schema=gis table=cz_hillshade mode=2' does not exist in the file system, and is not recognised as a supported dataset name. encountered during parsing of layer 'hillshade' in Layer at line 5 of '/h ome/mapnik/layers/hill/osm.xml' Nemohl jsem přijít na to, co vlastně tu hlášku "file ... does not exist in the file system, and is not recognised as a supported dataset name" způsobuje. Pak jsem vygrepoval, že je to GDAL. Otázkou je, proč GDAL při volání Mapniku z Pythonu ten parametr v pohodě vezme jako DB resource, kdežto při volání z Tirexu tvrdošíjně hledá soubor toho názvu, co je v parametru <file>. Tirex asi volá Mapnik jiným způsobem, nebo že by sám parsoval konfiguraci Mapniku a testnul si GDAL, jestli bude s takovým souborem spokojený? Nesetkal jste se s tímto někdo?
  2. Jachym Cepicky jachym.cepicky na gmail.com #mf233be
    Jestli se nepletu, tak Paul Ramsay důrazně nedopurčoval, dávat do PostGISu rastry. To že něco jde ještě neznamená, že je to dobrej nápad. Zkuste to vyexportit to geotiffu a přistupovat k tomu z gdalu "normálně" J
    Ahoj, už delší dobu se nemohu hnout z místa, tak se zeptám. Chtěl bych mít v databázi rastrovou vrstvu pro reliéy/stínování a to pak zobrazovat Mapnikem. Mapnik přímo to v aktuální stabilní verzi (asi) nepodporuje, ale umí to GDAL a Mapnik zase umí GDAL. Zkusil jsem Mapniku podstrčit jako zdroj dat GDAL, jen jsem si 'trochu' poupravil název souboru. Konfigurace vypadá takto: <Datasource> <Parameter name="type">gdal</Parameter> <Parameter name="file">PG:dbname=pedro port=5432 schema=gis table=cz_hillshade mode=2</Parameter> <Parameter name="format">tiff</Parameter> </Datasource> Když zavolám Mapnik z Pythonu, použiji skripty na generování dlaždic nebo obrázku generate_tiles.py nebo generate_image.py, tak vše funguje podle mých představ. Data bere z postgresql a vykreslí, co chci. GDAL to, co je v parametru <file> vezme jako datasource z databáze a vše je OK. Pokud to chci dát do produkčního režimu, tedy přes Tirex a mod_tile, už se to nezdaří. Do syslogu dostanu hlášku: Feb 5 21:08:52 propsy tirex-backend-mapnik[10981]: Renderer started (name=mapnik) Feb 5 21:08:57 propsy tirex-backend-mapnik[10981]: cannot add /etc/tirex/renderer/mapnik/hill.conf Feb 5 21:08:57 propsy tirex-backend-mapnik[10981]: `/home/mapnik/layers/hill/PG:dbname=pedro port=54 32 schema=gis table=cz_hillshade mode=2' does not exist in the file system, and is not recognised as a supported dataset name. encountered during parsing of layer 'hillshade' in Layer at line 5 of '/h ome/mapnik/layers/hill/osm.xml' Nemohl jsem přijít na to, co vlastně tu hlášku "file ... does not exist in the file system, and is not recognised as a supported dataset name" způsobuje. Pak jsem vygrepoval, že je to GDAL. Otázkou je, proč GDAL při volání Mapniku z Pythonu ten parametr v pohodě vezme jako DB resource, kdežto při volání z Tirexu tvrdošíjně hledá soubor toho názvu, co je v parametru <file>. Tirex asi volá Mapnik jiným způsobem, nebo že by sám parsoval konfiguraci Mapniku a testnul si GDAL, jestli bude s takovým souborem spokojený? Nesetkal jste se s tímto někdo?
    -- Jachym Cepicky URL: http://les-ejk.cz e-mail: jachym.cepicky at gmail com PGP: http://les-ejk.cz/pgp/JachymCepicky.pgp @jachymc
  3. Petr Vejsada osm na propsychology.cz #m74e511
    Zdravím,
    Jestli se nepletu, tak Paul Ramsay důrazně nedopurčoval, dávat do PostGISu rastry. To že něco jde ještě neznamená, že je to dobrej nápad. Zkuste to vyexportit to geotiffu a přistupovat k tomu z gdalu "normálně"
    no já to právě v geotiffu teď mám a chtěl jsem do Postgisu, protože se snáze přidávají a ubírají územní části. Asi mi nezbude než to tak nechat. Pravda, Postgis je o něco pomalejší. Už jsem přišel na to, proč ta chyba, ovšem nevím řešení. Je to proto, protože z Pythonu je cesta k osm.xml relativní (je v ./) a tak ta definice souboru, kde je DB zdroj, zůstane nedotčena, kdežto při při volání z mod_tile je cesta absolutní a pak z toho vznikne to /home/mapnik/.../PG: OK, tak alespoň mám důvod se přestat snažit.
Napsat odpověď e-mailem… Odpovědět

Otevře váš e-mailový klient. Odpovědi pak sledujte zde na webu.