You are not logged in.
- Topics: Active | Unanswered
Announcement
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:
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ä
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ä
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ä
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ä
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.
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ä
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ä
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ä
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: 208Hienommassa 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