You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2012-09-10 23:30:14

JRA
Member
Registered: 2007-12-17
Posts: 677

MapBuffet - Avoimen datan noutopöytä

Huvittaisikohan ketään kokeilla, voisiko tällainen idea toimia?

Laitoin ladattavaksi Spatialite-tietokannan ja sitä käyttävän QGis-projektitiedoston.  Jos laittaa molemmat tiedostot mihin tahansa yhteiseen hakemistoon, niin QGis:in pitäisi näyttää koko projekti kaikkine karttatasoineen, kunhan vain avaa projektitiedoston. QGis-version 1.8 pitäisi riittää, vaikka projekti onkin tehty dev-versiolla 1.9.0

http://latuviitta.org/documents/Helsinki-atlas.sqlite
http://latuviitta.org/documents/Helsinki-atlas.qgs

Kokeilussa demoillaan useita asioita:
- Rasterit ja vektorit kaikki samassa Spatialite-tietokannassa
- Helppoa asennettavuutta: lataa, käynnistä ja käytä
- Eri lähteistä peräisin olevien aineistojen helppoa ja läpinäkyvää yhteiskäyttöä
  (OSM, MML, HRI, latuviitta.org)
- Monikielisyystuki; MML:n taustakarttatasoille voidaan piirtää tienimet OSM:sta tai maastotietokannasta, suomeksi, ruotsiksi tai vaikka kaksikielisesti
- Pari muuta, vielä toteuttamatonta ideaa.

Tässä vaiheessa kiinnostaisi tietää, käynnistyyko kartta QGis-projektitiedostosta kohtuullisessa ajassa ja tulevatko kaikki tasot näkyviin.  Jossain vaiheessa minulle kävi niin, että rasteritasot näkyivät vasta, kun avasi jokaisen tason ominaisuudet-ikkunan ja sulki sen.  Mitään muutoksia ei tarvinnut tehdä, mutta joka tason asetuksissa oli vierailtava.  Käynnistysnopeutta parantavia muutoksia on jo tehtykin GDAL:iin, mutta ne eivät ole vielä mukana edes QGis:in kehitysversiossa.

Toinen projektitiedosto, jossa on esimerkin vuoksi luokiteltu maastotietokannan tiet tieluokan mukaan
http://latuviitta.org/documents/Helsinki-atlas2.qgs

Last edited by JRA (2012-09-11 06:03:55)

Offline

#2 2012-09-11 08:19:45

jlehtoma
Member
Registered: 2012-02-03
Posts: 1

Re: MapBuffet - Avoimen datan noutopöytä

Kuulostaa kyllä hyödylliseltä. Kokeilin itse nopeasti lataamalla tiedostot ja avaamalla QGIS:in projekti-tiedoston. Rasterit (n=6) eivät latautuneet ollenkaan, vaan näytölle ilmeistyi seuraava virheilmoitus:

http://i.imgur.com/NbBkR.png

Polygoni- (kaupunginosat + karttalehdet) ja pistepiirteet (parkkilippuautomaatit) avautuivat ja piirtyivät oikein. Viivapiirteet (vägnamn + mtk_tienimet + osm_tienimet + osm_tiet + mtk_tiet) avautuivat, mutta eivät piirry ruudulle. Nopea ominaisuuksien säätäminen ei auttanut, mutta testailin vain hyvin nopeasti.

Testasin seuraavalla kokoonpanolla:

OS: openSUSE 12.2 x86_64
QGIS version: 1.8.0-Lisboa
Compiled against Qt: 4.8.1
Compiled against GDAL/OGR: 1.9.1
GEOS Versio: 3.3.5
SpatiaLite Version: 2.4.0

Offline

#3 2012-09-11 08:51:49

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

JRA wrote:

Tässä vaiheessa kiinnostaisi tietää, käynnistyyko kartta QGis-projektitiedostosta kohtuullisessa ajassa ja tulevatko kaikki tasot näkyviin.  Jossain vaiheessa minulle kävi niin, että rasteritasot näkyivät vasta, kun avasi jokaisen tason ominaisuudet-ikkunan ja sulki sen.  Mitään muutoksia ei tarvinnut tehdä, mutta joka tason asetuksissa oli vierailtava.  Käynnistysnopeutta parantavia muutoksia on jo tehtykin GDAL:iin, mutta ne eivät ole vielä mukana edes QGis:in kehitysversiossa.

Kiitos, hyvältä idealta vaikuttaa. Ubuntu 12.04:ssa QGIS 1.8.0-Lisboa:lla suhteellisen heikkotehoisella läppärillä näkyivät ensin vain karttalehtien neliöt ja ne MML:n tunnukset. Kesti varsin kauan zoomailla sisään, mutta sitten alkoivat tiet näkyä, ja liikkuminen ja zoomailu tapahtuu kohtuuvauhdilla. Rasterikarttaa ei näy, vaikka kävin avaamassa ja sulkemassa "karttalehdet"-tason ja sen alla olevien Ominaisuudet. Virheilmoituksia ei tule.

Offline

#4 2012-09-11 08:54:24

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

Kiitoksia testauksesta.

Teillä ja tienimillä on mittakaavarajoitus 1:50000, joten ne saattavat näkyä, jos lähennät näkymää.

Rasterlite-tasoilla ei näytä toimivan sama tapa kuin Spatialite-vektoreilla osoittaa suhteellisia polkuja, eli että datatiedostoja etsitään suhteessa siihen hakemistoon, jossa QGis-projektitiedosto on. Kokeile muokata projektitiedostosta näitä rivejä

 <datasource>RASTERLITE:./Helsinki-atlas.sqlite,table=t0005</datasource>

joko poistamalla ./ tai jos sekään ei toimi, laittamalla RASTERLITE:n perään oman systeemisi absoluuttinen polku sqlite-tiedostolle.

 <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0005</datasource>

Toivottavasti absoluuttista polkua ei tarvita, kun tästä pitäisi tulla helppo asentaa.

Spatialite 2.4.0 tuntuu pahalta koska Spatialitellä on surkea yhteensopivuus taaksepäin.  Helsinki-atlas on tehty versiolla 3.0.  Ainakin on varmaa, että piakkoin julkaistavalla 4.0-versiolla tehdyt tietokannat eivät tule toimimaan edes 3.0-version Spatialite-binääreillä.  Onneksi samalla kertaa julkaistaa apuohjelmat koko tietokannan muuntamiseksi versiosta toiseen.

Offline

#5 2012-09-11 09:05:00

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

jkp wrote:

Rasterikarttaa ei näy

Harmi.  Säädin taustakarttatasot valmiiksi projektitiedostoon niin, että ne syttyvät ja sammuvat järkevissä mittakaavarajoissa eikä koskaan piirretä kuin yhden mittakaavatason rasterit.
Kokeile pystytkö lisäämään rasterit käsin Lisää rasteritaso -toiminnolla Rasterlite-ajurilla.  Jos Helsinki-atlas.sqlite:n avaaminen tuo näkyviin listan kaikista rasteritasoista, niin ne voi lisätä vaikka kaikki kerralla kartalle.

Offline

#6 2012-09-11 09:10:51

muistikas
Member
Registered: 2011-01-02
Posts: 226

Re: MapBuffet - Avoimen datan noutopöytä

QGIS 1.8:lla Windows 7 64-bit ympäristössä tulee sama virheilmoitus kuin edellä on esitetty, mutta rasteritasot pystyy lisäämään käsin .sqlite tiedostosta.

Offline

#7 2012-09-11 09:15:45

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Minulla on spatialite-versio (libspatialite3) 3.0.0~beta20110817-3 ja librasterlite 1.1~svn11-1build2

Kun QGIS käynnistyy, kaikissa tasoissa näkyvät pienen hetken ruksit, mutta sitten ruksit katoavat muista paitsi ,table=* -tasoista.

Ei auta rasteritasoihin ./:n poisto eikä absoluuttisen polun käyttö, vektoritasot taas toimivat sekä ./ -alun kanssa että ilman.

Offline

#8 2012-09-11 09:18:34

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Minullakin onnistuu rasteritasojen lisääminen käsin.

Offline

#9 2012-09-11 09:29:16

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Kun käsin lisäämisen jälkeen katsoin projektin asetuksia (alla), päätin kokeilla tuon mallin mukaan ./ -alkuliitteen poistamisen lisäksi .sqlite  -liitteen poistamista projektitiedostosta. Kun tein niin, sain saman virheilmoituksen kuin muistikas ja jlehtoma.

    <legend updateDrawingOrder="false">
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="RASTERLITE:Helsinki-atlas,table=t0160" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="RASTERLITE_Helsinki_atlas_table_t016020120911111810658" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="RASTERLITE:Helsinki-atlas,table=t0080" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="RASTERLITE_Helsinki_atlas_table_t008020120911111810602" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="RASTERLITE:Helsinki-atlas,table=t0040" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="RASTERLITE_Helsinki_atlas_table_t004020120911111810518" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="RASTERLITE:Helsinki-atlas,table=t0020" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="RASTERLITE_Helsinki_atlas_table_t002020120911111810434" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="RASTERLITE:Helsinki-atlas,table=t0010" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="RASTERLITE_Helsinki_atlas_table_t001020120911111810164" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="RASTERLITE:Helsinki-atlas,table=t0005" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="RASTERLITE_Helsinki_atlas_table_t000520120911111808918" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="true" checked="Qt::Unchecked" name="kaupunginosat" showFeatureCount="0">
            <filegroup open="true" hidden="false">
                <legendlayerfile isInOverview="0" layerid="kaupunginosat20120909175449059" visible="0"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="true" checked="Qt::Unchecked" name="parkkilippuautomaatit" showFeatureCount="0">
            <filegroup open="true" hidden="false">
                <legendlayerfile isInOverview="0" layerid="parkkilippuautomaatit20120907212733993" visible="0"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Unchecked" name="vägnamn" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="mtk_tiet20120907233720473" visible="0"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="mtk_tienimet" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="mtk_tiet20120907213333293" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name="osm_tienimet" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="osm_tiet20120907213333685" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="true" checked="Qt::Checked" name="osm_tiet" showFeatureCount="0">
            <filegroup open="true" hidden="false">
                <legendlayerfile isInOverview="0" layerid="osm_tiet20120907212733102" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="true" checked="Qt::Checked" name="mtk_tiet" showFeatureCount="0">
            <filegroup open="true" hidden="false">
                <legendlayerfile isInOverview="0" layerid="mtk_tiet20120907212732154" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="true" checked="Qt::Checked" name="karttalehdet" showFeatureCount="0">
            <filegroup open="true" hidden="false">
                <legendlayerfile isInOverview="0" layerid="karttalehdet20120907212731960" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name=",table=t0160" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="_table_t016020120909162052670" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name=",table=t0080" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="_table_t008020120909162052125" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name=",table=t0040" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="_table_t004020120907205516014" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name=",table=t0020" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="_table_t002020120907205515341" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name=",table=t0010" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="_table_t001020120907205514284" visible="1"/>
            </filegroup>
        </legendlayer>
        <legendlayer drawingOrder="-1" open="false" checked="Qt::Checked" name=",table=t0005" showFeatureCount="0">
            <filegroup open="false" hidden="false">
                <legendlayerfile isInOverview="0" layerid="_table_t000520120907205510262" visible="1"/>
            </filegroup>
        </legendlayer>
    </legend>

Offline

#10 2012-09-11 09:43:55

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

Nuo on selitteen määrittelyjä, datasourcet ovat alempana projektitiedostossa.
Jos tallentaa toiselle nimelle sellaisen projektin, johon on saanut rasterit näkymään ja vertailee tiedostoja, niin löytää ehkä paikan jota pitäisi säätää.  Minä kirjoitin tästä jo QGIs-postituslistalle mutta en saanut ketään kiinnostumaan ongelmasta.

Offline

#11 2012-09-11 09:59:31

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

Kevyesti kommentoitu Windows-komentojono, joka luo tuon Helsinki-atlas -tietokannan automaattisesti.  Kommenteista pitäisi suurin piirtein selvitä mitä tapahtuu, miksi, ja mistä kohdasta pitää räätälöidä, jotta saa tietokannan luoduksi eri paikasta ja itselle mieleisistä kartta-aineistoista.  Jos vaikka metsätaloussuunnitelman teko kiinnostaa, niin kannattaa ottaa peruskartat ja ilmakuvat ja jättää parkkilippuautomaatit pois.
http://latuviitta.org/documents/tee_helsinki-atlas.txt

Kellotustulos oli tasan kymmenen minuuttia tehokkaalla kannettavalla.  Vanhalla ja heikolla kannettavalla taisi mennä 40 minuuttia.

Offline

#12 2012-09-11 10:20:08

muistikas
Member
Registered: 2011-01-02
Posts: 226

Re: MapBuffet - Avoimen datan noutopöytä

Vaikuttaa siltä, että ihan helposti .qgs tiedoston muuttaminen ei onnistu, siis siten, että muutamaa riviä muuttamalla saisi QGIS 1.8 rasteritason piirtämään. Vaikuttaa siltä, että jos tallettaa tason määrittelyn ja vertaa tuossa tiedostossasi olevaan vastaavan tason määrittelyyn, eroja on paljon, mm. siinä, että käytät  <rasterrenderer> -tagia kun taas QGIS:n tuottamassa on <rasterproperties> -tagi ja huomattavasti pidempi määrittely.

Offline

#13 2012-09-11 10:23:14

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

En minä sitä projektitiedostoa ole itse tehnyt, erot johtuvat ilmeisesti sitten tästä:
<qgis projectname="" version="1.9.0-Master">

Offline

#14 2012-09-11 10:23:58

muistikas
Member
Registered: 2011-01-02
Posts: 226

Re: MapBuffet - Avoimen datan noutopöytä

Tuota voisi muokata siten, että kuntanimet, joista (joiden alueelta) aineisto tuotetaan, annettaisiin parametrina tai syötetiedostona. Jollain pythonilla gdal/ogr -kirjastoa hyödyntäen ehkä onnistuisi? Eikös aineistossa joku kunta- tms. jako ollut mukana?

Offline

#15 2012-09-11 10:28:14

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Rasteri toimii minulla kun muuttaa rasterrenderer -määrittelyt rasterproperties -määrittelyiksi, kopioitu käsin lisättyjen tasojen projektitiedostosta.

--- Helsinki-atlas.qgs	2012-09-10 23:32:32.000000000 +0300
+++ Helsinki-atlas-muokattu.qgs	2012-09-11 12:22:14.714786738 +0300
@@ -117,9 +117,42 @@
             <transparencyLevelInt>255</transparencyLevelInt>
             <customproperties/>
             <provider>gdal</provider>
-            <rasterrenderer opacity="1" alphaBand="-1" blueBand="3" greenBand="2" type="multibandcolor" invertColor="0" redBand="1">
-                <rasterTransparency/>
-            </rasterrenderer>
+            <rasterproperties>
+                <mDrawingStyle>MultiBandColor</mDrawingStyle>
+                <mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
+                <mInvertColor boolean="false"/>
+                <mRedBandName>Band 1</mRedBandName>
+                <mGreenBandName>Band 2</mGreenBandName>
+                <mBlueBandName>Band 3</mBlueBandName>
+                <mGrayBandName>Not Set</mGrayBandName>
+                <mStandardDeviations>0</mStandardDeviations>
+                <mUserDefinedRGBMinimumMaximum boolean="false"/>
+                <mRGBMinimumMaximumEstimated boolean="true"/>
+                <mUserDefinedGrayMinimumMaximum boolean="false"/>
+                <mGrayMinimumMaximumEstimated boolean="true"/>
+                <mContrastEnhancementAlgorithm>NoEnhancement</mContrastEnhancementAlgorithm>
+                <contrastEnhancementMinMaxValues>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                </contrastEnhancementMinMaxValues>
+                <mNoDataValue mValidNoDataValue="true">-32768.000000</mNoDataValue>
+                <singleValuePixelList>
+                    <pixelListEntry pixelValue="-32768.000000" percentTransparent="100"/>
+                </singleValuePixelList>
+                <threeValuePixelList>
+                    <pixelListEntry red="-32768.000000" blue="-32768.000000" green="-32768.000000" percentTransparent="100"/>
+                </threeValuePixelList>
+            </rasterproperties>
             <rasterresampler maxOversampling="2"/>
         </maplayer>
         <maplayer minimumScale="2600" maximumScale="6600" type="raster" hasScaleBasedVisibilityFlag="1">
@@ -143,9 +176,42 @@
             <transparencyLevelInt>255</transparencyLevelInt>
             <customproperties/>
             <provider>gdal</provider>
-            <rasterrenderer opacity="1" alphaBand="-1" blueBand="3" greenBand="2" type="multibandcolor" invertColor="0" redBand="1">
-                <rasterTransparency/>
-            </rasterrenderer>
+            <rasterproperties>
+                <mDrawingStyle>MultiBandColor</mDrawingStyle>
+                <mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
+                <mInvertColor boolean="false"/>
+                <mRedBandName>Band 1</mRedBandName>
+                <mGreenBandName>Band 2</mGreenBandName>
+                <mBlueBandName>Band 3</mBlueBandName>
+                <mGrayBandName>Not Set</mGrayBandName>
+                <mStandardDeviations>0</mStandardDeviations>
+                <mUserDefinedRGBMinimumMaximum boolean="false"/>
+                <mRGBMinimumMaximumEstimated boolean="true"/>
+                <mUserDefinedGrayMinimumMaximum boolean="false"/>
+                <mGrayMinimumMaximumEstimated boolean="true"/>
+                <mContrastEnhancementAlgorithm>NoEnhancement</mContrastEnhancementAlgorithm>
+                <contrastEnhancementMinMaxValues>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                </contrastEnhancementMinMaxValues>
+                <mNoDataValue mValidNoDataValue="true">-32768.000000</mNoDataValue>
+                <singleValuePixelList>
+                    <pixelListEntry pixelValue="-32768.000000" percentTransparent="100"/>
+                </singleValuePixelList>
+                <threeValuePixelList>
+                    <pixelListEntry red="-32768.000000" blue="-32768.000000" green="-32768.000000" percentTransparent="100"/>
+                </threeValuePixelList>
+            </rasterproperties>
             <rasterresampler maxOversampling="2"/>
         </maplayer>
         <maplayer minimumScale="6600" maximumScale="13000" type="raster" hasScaleBasedVisibilityFlag="1">
@@ -169,9 +235,42 @@
             <transparencyLevelInt>255</transparencyLevelInt>
             <customproperties/>
             <provider>gdal</provider>
-            <rasterrenderer opacity="1" alphaBand="0" blueBand="3" greenBand="2" type="multibandcolor" invertColor="0" redBand="1">
-                <rasterTransparency/>
-            </rasterrenderer>
+            <rasterproperties>
+                <mDrawingStyle>MultiBandColor</mDrawingStyle>
+                <mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
+                <mInvertColor boolean="false"/>
+                <mRedBandName>Band 1</mRedBandName>
+                <mGreenBandName>Band 2</mGreenBandName>
+                <mBlueBandName>Band 3</mBlueBandName>
+                <mGrayBandName>Not Set</mGrayBandName>
+                <mStandardDeviations>0</mStandardDeviations>
+                <mUserDefinedRGBMinimumMaximum boolean="false"/>
+                <mRGBMinimumMaximumEstimated boolean="true"/>
+                <mUserDefinedGrayMinimumMaximum boolean="false"/>
+                <mGrayMinimumMaximumEstimated boolean="true"/>
+                <mContrastEnhancementAlgorithm>NoEnhancement</mContrastEnhancementAlgorithm>
+                <contrastEnhancementMinMaxValues>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                </contrastEnhancementMinMaxValues>
+                <mNoDataValue mValidNoDataValue="true">-32768.000000</mNoDataValue>
+                <singleValuePixelList>
+                    <pixelListEntry pixelValue="-32768.000000" percentTransparent="100"/>
+                </singleValuePixelList>
+                <threeValuePixelList>
+                    <pixelListEntry red="-32768.000000" blue="-32768.000000" green="-32768.000000" percentTransparent="100"/>
+                </threeValuePixelList>
+            </rasterproperties>
             <rasterresampler maxOversampling="2"/>
         </maplayer>
         <maplayer minimumScale="13000" maximumScale="30000" type="raster" hasScaleBasedVisibilityFlag="1">
@@ -195,9 +294,42 @@
             <transparencyLevelInt>255</transparencyLevelInt>
             <customproperties/>
             <provider>gdal</provider>
-            <rasterrenderer opacity="1" alphaBand="-1" blueBand="3" greenBand="2" type="multibandcolor" invertColor="0" redBand="1">
-                <rasterTransparency/>
-            </rasterrenderer>
+            <rasterproperties>
+                <mDrawingStyle>MultiBandColor</mDrawingStyle>
+                <mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
+                <mInvertColor boolean="false"/>
+                <mRedBandName>Band 1</mRedBandName>
+                <mGreenBandName>Band 2</mGreenBandName>
+                <mBlueBandName>Band 3</mBlueBandName>
+                <mGrayBandName>Not Set</mGrayBandName>
+                <mStandardDeviations>0</mStandardDeviations>
+                <mUserDefinedRGBMinimumMaximum boolean="false"/>
+                <mRGBMinimumMaximumEstimated boolean="true"/>
+                <mUserDefinedGrayMinimumMaximum boolean="false"/>
+                <mGrayMinimumMaximumEstimated boolean="true"/>
+                <mContrastEnhancementAlgorithm>NoEnhancement</mContrastEnhancementAlgorithm>
+                <contrastEnhancementMinMaxValues>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                </contrastEnhancementMinMaxValues>
+                <mNoDataValue mValidNoDataValue="true">-32768.000000</mNoDataValue>
+                <singleValuePixelList>
+                    <pixelListEntry pixelValue="-32768.000000" percentTransparent="100"/>
+                </singleValuePixelList>
+                <threeValuePixelList>
+                    <pixelListEntry red="-32768.000000" blue="-32768.000000" green="-32768.000000" percentTransparent="100"/>
+                </threeValuePixelList>
+            </rasterproperties>
             <rasterresampler maxOversampling="2"/>
         </maplayer>
         <maplayer minimumScale="30000" maximumScale="100000" type="raster" hasScaleBasedVisibilityFlag="1">
@@ -221,9 +353,42 @@
             <transparencyLevelInt>255</transparencyLevelInt>
             <customproperties/>
             <provider>gdal</provider>
-            <rasterrenderer opacity="1" alphaBand="0" blueBand="3" greenBand="2" type="multibandcolor" invertColor="0" redBand="1">
-                <rasterTransparency/>
-            </rasterrenderer>
+            <rasterproperties>
+                <mDrawingStyle>MultiBandColor</mDrawingStyle>
+                <mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
+                <mInvertColor boolean="false"/>
+                <mRedBandName>Band 1</mRedBandName>
+                <mGreenBandName>Band 2</mGreenBandName>
+                <mBlueBandName>Band 3</mBlueBandName>
+                <mGrayBandName>Not Set</mGrayBandName>
+                <mStandardDeviations>0</mStandardDeviations>
+                <mUserDefinedRGBMinimumMaximum boolean="false"/>
+                <mRGBMinimumMaximumEstimated boolean="true"/>
+                <mUserDefinedGrayMinimumMaximum boolean="false"/>
+                <mGrayMinimumMaximumEstimated boolean="true"/>
+                <mContrastEnhancementAlgorithm>NoEnhancement</mContrastEnhancementAlgorithm>
+                <contrastEnhancementMinMaxValues>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                </contrastEnhancementMinMaxValues>
+                <mNoDataValue mValidNoDataValue="true">-32768.000000</mNoDataValue>
+                <singleValuePixelList>
+                    <pixelListEntry pixelValue="-32768.000000" percentTransparent="100"/>
+                </singleValuePixelList>
+                <threeValuePixelList>
+                    <pixelListEntry red="-32768.000000" blue="-32768.000000" green="-32768.000000" percentTransparent="100"/>
+                </threeValuePixelList>
+            </rasterproperties>
             <rasterresampler maxOversampling="2"/>
         </maplayer>
         <maplayer minimumScale="100000" maximumScale="1e+08" type="raster" hasScaleBasedVisibilityFlag="1">
@@ -247,9 +412,42 @@
             <transparencyLevelInt>255</transparencyLevelInt>
             <customproperties/>
             <provider>gdal</provider>
-            <rasterrenderer opacity="1" alphaBand="0" blueBand="3" greenBand="2" type="multibandcolor" invertColor="0" redBand="1">
-                <rasterTransparency/>
-            </rasterrenderer>
+            <rasterproperties>
+                <mDrawingStyle>MultiBandColor</mDrawingStyle>
+                <mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
+                <mInvertColor boolean="false"/>
+                <mRedBandName>Band 1</mRedBandName>
+                <mGreenBandName>Band 2</mGreenBandName>
+                <mBlueBandName>Band 3</mBlueBandName>
+                <mGrayBandName>Not Set</mGrayBandName>
+                <mStandardDeviations>0</mStandardDeviations>
+                <mUserDefinedRGBMinimumMaximum boolean="false"/>
+                <mRGBMinimumMaximumEstimated boolean="true"/>
+                <mUserDefinedGrayMinimumMaximum boolean="false"/>
+                <mGrayMinimumMaximumEstimated boolean="true"/>
+                <mContrastEnhancementAlgorithm>NoEnhancement</mContrastEnhancementAlgorithm>
+                <contrastEnhancementMinMaxValues>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                    <minMaxEntry>
+                        <min>0</min>
+                        <max>255</max>
+                    </minMaxEntry>
+                </contrastEnhancementMinMaxValues>
+                <mNoDataValue mValidNoDataValue="true">-32768.000000</mNoDataValue>
+                <singleValuePixelList>
+                    <pixelListEntry pixelValue="-32768.000000" percentTransparent="100"/>
+                </singleValuePixelList>
+                <threeValuePixelList>
+                    <pixelListEntry red="-32768.000000" blue="-32768.000000" green="-32768.000000" percentTransparent="100"/>
+                </threeValuePixelList>
+            </rasterproperties>
             <rasterresampler maxOversampling="2"/>
         </maplayer>
         <maplayer minimumScale="0" maximumScale="1e+08" minLabelScale="0" maxLabelScale="1e+08" geometry="Polygon" type="vector" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">

Last edited by jkp (2012-09-11 10:28:46)

Offline

#16 2012-09-11 10:42:53

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

muistikas wrote:

Tuota voisi muokata siten, että kuntanimet, joista (joiden alueelta) aineisto tuotetaan, annettaisiin parametrina tai syötetiedostona. Jollain pythonilla gdal/ogr -kirjastoa hyödyntäen ehkä onnistuisi? Eikös aineistossa joku kunta- tms. jako ollut mukana?

Onhan tuohon eväitä olemassa.  Kuntajako löytyy WFS-palvelusta, ja esimerkiksi Tampereen ulottuvuudet löytyy näin

ogrinfo -ro -al wfs:http://hip.latuviitta.org/cgi-bin/tinyows municipalities -where kunta_ni1='Tampere'
INFO: Open of `wfs:http://hip.latuviitta.org/cgi-bin/tinyows'
      using driver `WFS' successful.

Layer name: lv:municipalities
Geometry: Multi Polygon
Feature Count: 1
Extent: (316189.750000, 6814338.000000) - (347619.843750, 6859997.000000)
Layer SRS WKT:
PROJCS["ETRS89 / TM35FIN(E,N)",

Oikeasti toimivan systeemin tekemiseen tarvittaisiin koodaria, mutta ei siinä mitään valtavan suuria juttuja pitäisi tarvita.  Ääkköselliset kuntanimet eivät mene helposti läpi, ja tuotantokelpoisen systeemin pitäisi tehdä kyselyt POST-menetelmällä.  Jos siis haluaa hyödyntää WFS:ää, voihan homman tehdä muutenkin, jos räätälöimään lähtee.  Esimerkiksi tallentamalla kuntien BBOX:it valmiiksi jonnekin helppoon paikkaan.

Offline

#17 2012-09-11 11:19:16

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

jkp wrote:

Rasteri toimii minulla kun muuttaa rasterrenderer -määrittelyt rasterproperties -määrittelyiksi, kopioitu käsin lisättyjen tasojen projektitiedostosta.

Tein toisen projektitiedoston, joka toivottavasti toimii lähes sellaisenaan QGIS 1.8 versiolla.  1.8 tosin näyttää vaativan absoluuttiset polut Rasterlite-tietolähteille, eli nämä rivit pitää etsiä ja kirjoittaa oma polku "D:/data/" -polun tilalle.

<datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0005</datasource>

QGIS 1.9 ilmeisesti osaa käyttää suhteellisiakin polkuja.

http://latuviitta.org/documents/Helsink … IS_1.8.qgs

Offline

#18 2012-09-11 11:23:30

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Ei ainakaan minulla 1.8 vaatinut absoluuttisia polkuja tuolla diffillä minkä lähetin, käyttöjärjestelmänä Ubuntu 12.04.

Offline

#19 2012-09-11 11:30:38

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Toimii kunhan muutan absoluuttiset polut suhteellisiksi.

--- Helsinki-atlas_QGIS_1.8.qgs 2012-09-11 13:10:07.000000000 +0300
+++ Helsinki-atlas_QGIS_1.8-muokattu.qgs        2012-09-11 13:26:33.349920674 +0300
@@ -98,7 +98,7 @@
     <projectlayers layercount="14">
         <maplayer minimumScale="0" maximumScale="2600" type="raster" hasScaleBasedVisibilityFlag="1">
             <id>_table_t000520120907205510262</id>
-            <datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0005</datasource>
+            <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0005</datasource>
             <title></title>
             <abstract></abstract>
             <layername>,table=t0005</layername>
@@ -157,7 +157,7 @@
         </maplayer>
         <maplayer minimumScale="2600" maximumScale="6600" type="raster" hasScaleBasedVisibilityFlag="1">
             <id>_table_t001020120907205514284</id>
-            <datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0010</datasource>
+            <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0010</datasource>
             <title></title>
             <abstract></abstract>
             <layername>,table=t0010</layername>
@@ -216,7 +216,7 @@
         </maplayer>
         <maplayer minimumScale="6600" maximumScale="13000" type="raster" hasScaleBasedVisibilityFlag="1">
             <id>_table_t002020120907205515341</id>
-            <datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0020</datasource>
+            <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0020</datasource>
             <title></title>
             <abstract></abstract>
             <layername>,table=t0020</layername>
@@ -275,7 +275,7 @@
         </maplayer>
         <maplayer minimumScale="13000" maximumScale="30000" type="raster" hasScaleBasedVisibilityFlag="1">
             <id>_table_t004020120907205516014</id>
-            <datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0040</datasource>
+            <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0040</datasource>
             <title></title>
             <abstract></abstract>
             <layername>,table=t0040</layername>
@@ -334,7 +334,7 @@
         </maplayer>
         <maplayer minimumScale="30000" maximumScale="100000" type="raster" hasScaleBasedVisibilityFlag="1">
             <id>_table_t008020120909162052125</id>
-            <datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0080</datasource>
+            <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0080</datasource>
             <title></title>
             <abstract></abstract>
             <layername>,table=t0080</layername>
@@ -393,7 +393,7 @@
         </maplayer>
         <maplayer minimumScale="100000" maximumScale="1e+08" type="raster" hasScaleBasedVisibilityFlag="1">
             <id>_table_t016020120909162052670</id>
-            <datasource>RASTERLITE:D:/data/Helsinki-atlas.sqlite,table=t0160</datasource>
+            <datasource>RASTERLITE:Helsinki-atlas.sqlite,table=t0160</datasource>
             <title></title>
             <abstract></abstract>
             <layername>,table=t0160</layername>

Offline

#20 2012-09-11 12:47:00

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

Ok, korjasin tuon QGIS 1.8 -version käyttämään muotoa RASTERLITE:./Helsinki-atlas.sqlite
Windowsilla esiintyy jännä ilmiö, projektitiedosto toimii kun käynnistää QGIS 1.8:n tuplaklikkaamalla projektitiedostoa,  mutta jos starttaa ohjelman ensin  ja sittten avaa projektitiedoston, niin suhteelliset polut eivät toimi.

Minun piti itse asiassa laittaa OSM-tauluun nopeusrajoitukset ja pinnoitetyyppi mukaan osoittamaan sitä, kuinka MML:n karttaa voidaan rikastuttaa OSM:in laajemmilla ominaisuustiedoilla lisäämällä OSM-vektorit projektiin uudestaan nopeusrajoitusten tai pinnoitteen mukaan luokiteltuna.  Tarkoitus on myös herättää ajatuksia, että olisivatkohan nettikartat kuitenkin vähän tylsiä, kun vertaa niitä paikallisesti käytettävien vektoreiden tarjoamaan yksilöllisyyteen ja räätälöitävyyteen.

Vaihdan uuden tietokannan tarjolle illalla ja lisään siihen myös uuden taulun johon laitan tekijänoikeuslinkit.

QGIS muuten tukee myös GPS:ää oikein hyvin.  Ei tarvitse muuta kuin laittaa GPS-vastaanotin kiinni USB-liittimeen ja kertoa sitten mistä sarjaportista löytyy signaali. Voisi kuvitella että Linux- tai Windows-tabletista ja QGIS:stä voisi kehittyä jotain käyttökelpoista off-line-käyttöön.

Offline

#21 2012-09-11 13:17:02

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

JRA wrote:

Tarkoitus on myös herättää ajatuksia, että olisivatkohan nettikartat kuitenkin vähän tylsiä, kun vertaa niitä paikallisesti käytettävien vektoreiden tarjoamaan yksilöllisyyteen ja räätälöitävyyteen.

Rasterikartat nyt yleensäkin ovat aika tylsiä.

Minä taas haluaisin herätellä ajatuksia, että minkäs takia rasteri/vektori -muoto pitäisi koplata ominaisuuteen online/offline. Nykyään tavallinen käytäntö tuntuu olevan, että vektoreita talletetaan paikallisesti ja rasterit haetaan netistä ja cachetaan paikallisesti, mutta eihän siihen mitään periaatteellista syytä ole.

Minusta potentiaalia olisi sellaisella käyttömallilla, että haetaan ajantasaiset vektorit netistä, ja piirrellään kartat sitten vektoreista ruudulle (tai muodostetaan ääneksi) käyttäjän valintojen, asiayhteyden ym. mukaan räätälöitynä.

Offline

#22 2012-09-11 13:45:53

muistikas
Member
Registered: 2011-01-02
Posts: 226

Re: MapBuffet - Avoimen datan noutopöytä

JRA wrote:

Voisi kuvitella että Linux- tai Windows-tabletista ja QGIS:stä voisi kehittyä jotain käyttökelpoista off-line-käyttöön.

Ei ollenkaan kaukaa kuviteltu, nimittäin, sen lisäksi että QGIS:iä portataan Androidille ((http://hub.qgis.org/projects/android-qgis/activity), niin QGIS:lle on saatavilla tiedonkeruu-plugin QMAP: http://woostuff.wordpress.com/2012/09/1 … cing-qmap/.

Offline

#23 2012-09-11 14:00:18

muistikas
Member
Registered: 2011-01-02
Posts: 226

Re: MapBuffet - Avoimen datan noutopöytä

jkp wrote:

Minusta potentiaalia olisi sellaisella käyttömallilla, että haetaan ajantasaiset vektorit netistä, ja piirrellään kartat sitten vektoreista ruudulle (tai muodostetaan ääneksi) käyttäjän valintojen, asiayhteyden ym. mukaan räätälöitynä.

Tähän auttaa se, että päätelaitteista alkaa löytyä tehoa ja lisäksi ohjelmia alkaa olla saatavilla sille, että hyvän näköistä karttaa oikeasti voidaan tuottaa lennosta, off-line, päätelaitteesta riippumatta. Valmiiksi renderöityjen rasterikarttojen käyttö vaan on niin helppoa, että helposti tulee valittua se tie.

Koska aihe ja jakelu on sopiva, en voi olla laittamatta linkkiä esimerkkiin siitä, kuinka pahuksen hienoa jälkeä Mapnikilla saa aikaiseksi:
http://mike.teczno.com/notes/hillshading.html
ja
http://mapbox.com/blog/expanding-mapnik-carto/
Esimerkit tosin eivät ole mitään lennosta renderöintejä, mutta antavat mallia siitä mitä ilmaisilla välineillä voi saada aikaan.

Offline

#24 2012-09-11 14:27:25

JRA
Member
Registered: 2007-12-17
Posts: 677

Re: MapBuffet - Avoimen datan noutopöytä

Itselläni on yleensä aina mielessä myös mahdollinen työkäyttö maastossa, ja silloin ottaisin metsään mukaan ennemmin vaikka varttitunnin vanhan kartan kuin en karttaa ollenkaan, jos netti ei sattuisi toimimaan.  Metsätaloussuunnitelmat ja eri vuosien viljelysuunnitelmat ja salaiset marja- ja kalapaikat ovat sellaisia aineistoja, joita ei ehkä netistä löydykään, joten olen ehdottomasti sekakäytön puolella sekä vektoreiden/rastereiden että paikallisen datan/verkkopalveluiden suhteen.  Kaikki kelpaa, mikä toimii, mutta ennemmin jotain kivaa kuin tylsää, jos voi valita.

Liikenneonnettomuudet, tietyöt, kelivaroitukset, huomautukset muuttuneista nopeusrajoituksista ym. sopisivat täydellisesti MapBuffet-malliin.  Jos netti on käytössä, niin halukkaat käyttäjät voivat pollata palvelut läpi vaikka kerran minuutissa.  Systeemin ei todellakaan tarvitsisi olla raskas, kevyimmillään tiedot voi olla tallennettuna vaikka shapefileksi mihin tahansa, minne netistä pääsee.  Tässä esimerkki GDAL-kehitysversiolla:

ogrinfo -ro -al -so /vsizip/vsicurl/http://latuviitta.org/documents/ETRS_lehtijako_100t.zip
INFO: Open of `/vsizip/vsicurl/http://latuviitta.org/documents/ETRS_lehtijako_100t.zip'
      using driver `ESRI Shapefile' successful.

Layer name: ETRS_lehtijako_100t
Geometry: Polygon
Feature Count: 208

Hienommassa systeemissä Atom tai RSS feed voisi kertoa, milloin tiedot on viimeksi päivitetty.  Jos joku ihan tosissaan tahtoisi tuollaisen tiedotus- ja varoitusjärjestelmän pystyttää, niin kyllä se huomenna tähän aikaan olisi jo käyttökunnossa.

Offline

#25 2012-09-11 14:36:28

jkp
Member
Registered: 2009-01-19
Posts: 202

Re: MapBuffet - Avoimen datan noutopöytä

Juu toki niitä vektoreitakin sitten kannattaa cacheilla siltä varalta netti ei toimi, ja mielellään vaikka sellaisella systeemillä että voi ennalta ladata cacheen alueen datat jos tietää suunnilleen minne on menossa.

Jos kapulalla käytöstä puhutaan, niin näköjään joku palikka oli Androidille jolla voi lukea spatialite -kantoja.

Offline

Board footer

Powered by FluxBB