QGIS: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
Line 61: Line 61:
Unzip it someplace convenient. In QGIS, click on "Add Vector Layer" (icon: a green map with a +) Click Browse and find the water.shp file. Click Open. If you can't see the layer then try right-clicking the layer in the table of contents and select Zoom To Layer Extent. For this particular line layer you might want to use the Properties (double click on the layer name) "Style" tab to make the color blue and make the line a little wider (.36 works for me).
Unzip it someplace convenient. In QGIS, click on "Add Vector Layer" (icon: a green map with a +) Click Browse and find the water.shp file. Click Open. If you can't see the layer then try right-clicking the layer in the table of contents and select Zoom To Layer Extent. For this particular line layer you might want to use the Properties (double click on the layer name) "Style" tab to make the color blue and make the line a little wider (.36 works for me).


Zoomed into Finley NWR my map looks like this now.
Zoomed into Finley NWR my map looks like this now. I used purple for the water shapefile so it's easier to see.
 


[[Image:screenshot_qgis_openstreetmaps_water.png|thumb|left]]
<br clear=all>


== Extracting data from a layer ==
== Extracting data from a layer ==

Revision as of 18:55, 19 July 2013

I looked for a spatial data browser and found GeoApt Spatial Data Browser. I got interested in adding to it, so I started looking at its internals. I became more curious about QGIS.

Working with OpenStreetMap

Displaying OSM as a tiled layer in QGIS

(Thanks Nick)

Save this text into a file with the .xml extension. Variations on this will work for ANY tiled map service, not just OSM. In QGIS, use "Add Raster Layer" and navigate to the file you saved. Voila! A base map.

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://tile.openstreetmap.org/${z}/${x}/${y}.png</ServerUrl>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>18</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:900913</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <Cache />
</GDAL_WMS>

I leave the map in Web Mercator but you can do reprojection on the fly if you want.

Screenshot of Finley NWR area.

Log messages

I did actually find the button for this (see above screenshot) and now I can't find it again. Please tell me what I did. :-) The user manual I found is wrong. :-( Nick mentioned how great it would be to see error messages when trying to load a WMS layer.

Reprojection

or WHERE'S MY DATA??? I can't see it!

By default, QGIS has reprojection turned off. So if you bring in a layer in web mercator and then bring in a shapefile that is in a different projection, the layers will not line up.

  1. File->Project Properties (or control-shift-P)
  2. Coordinate Reference System (CRS) tab
  3. Check the box "Enable 'on the fly' CRS transformation"

The map should now render all the layers in the right places. QGIS 1.9 is a little buggy, so you might have to do this before adding layers. Not sure. It usually works for me but I sat here working with Nick and it was troublesome.

Adding a shapefile with hydro data

Download the shapefile, for example, for Benton county. http://gis.co.benton.or.us/GISDataDownload/Natural_Features/water.zip Unzip it someplace convenient. In QGIS, click on "Add Vector Layer" (icon: a green map with a +) Click Browse and find the water.shp file. Click Open. If you can't see the layer then try right-clicking the layer in the table of contents and select Zoom To Layer Extent. For this particular line layer you might want to use the Properties (double click on the layer name) "Style" tab to make the color blue and make the line a little wider (.36 works for me).

Zoomed into Finley NWR my map looks like this now. I used purple for the water shapefile so it's easier to see.


Extracting data from a layer

Working with the QGIS package

Okay, my problem is that I want to use a custom built GDAL because I need to be able to read ESRI file geodatabases but don't want to take on building QGIS right now.

I am getting the version of QGIS from "http://qgis.org/debian-nightly quantal main", but this packaged QGIS depends on a pre-built GDAL package. This means I have to bypass the pre-built GDAL libraries after they have been installed.

sudo apt-get install qgis
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
 gdal-bin grass-core libarmadillo3 libavdevice53 libcoin60 libdap11 libdapclient3 libepsilon0 libgdal1 libgraphicsmagick3 libhdf4-0-alt libhdf5-7 libnetcdfc7 libopenscenegraph80 libopenthreads14 libosgearth1 libqgis1.9.0 libqscintilla2-8 libqwt6 libxerces-c28 libxine1 libxine1-bin libxine1-ffmpeg libxine1-misc-plugins libxine1-plugins libzip2
 python-egenix-mxdatetime python-egenix-mxtools python-gdal python-psycopg2 python-pyspatialite python-qgis python-qgis-common python-qscintilla2 qgis-common qgis-plugin-globe qgis-plugin-globe-common qgis-plugin-grass qgis-plugin-grass-common qgis-providers qgis-providers-common

After installing I can see that it's not using the generic libgdal, good. See ldd /usr/bin/qgis.bin output.

I disabled /usr/lib/libgdal by renaming it just to be on the safe side.

Building QGIS from source

This is an onerous task... I have not succeeded yet. I want to be able to contribute code changes eventually!

First go do this: Building GDAL on Linux

Then do this based on this page: http://www.qgis.org/api/INSTALL.html#toc3

You don't want to overwrite your custom geos or gdal so this is different than the above link indicates. BTW I am building on Linux Mint 14, not Ubuntu or Debian

I like to break things up into smaller chunks too so I can see what's going on more easily.

# I'd be surprised if you dont already have these
sudo apt-get install xauth xfonts-base
# some general tools and development stuff
sudo apt-get install bison cmake doxygen flex git pkg-config python-dev python-sip python-sip-dev graphviz xvfb txt2tags
sudo apt-get install libfcgi-dev libgsl0-dev libexpat1-dev
# some QT tools
sudo apt-get install libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt5-qt4-dev pyqt4-dev-tools python-qt4 python-qt4-dev 
# some gis things
sudo apt-get install libspatialindex-dev libspatialite-dev libsqlite3-dev
  1. left out because depend on gdal
  2. libosgearth-dev libopenscenegraph-dev