Mathare Building import
From Map Kibera
(→Import OSM data to the db) |
(→Import OSM data to the db) |
||
Line 22: | Line 22: | ||
In this case, we're only interested in buildings from OSM. | In this case, we're only interested in buildings from OSM. | ||
- | -- | + | Get fresh data from OSM: |
- | osm2pgsql -c -d mathare -l -s | + | osmosis \ |
+ | --read-api left=36.8425655 right=36.881876 top=-1.2480512 bottom=-1.2696752999999998 outPipe.0=1 \ | ||
+ | --way-key keyList=building inPipe.0=1 outPipe.0=2 \ | ||
+ | --used-node inPipe.0=2 outPipe.0=3 \ | ||
+ | --write-xml file=mathare_building.osm inPipe.0=3 | ||
+ | Import it to the database: | ||
+ | osm2pgsql -c -d mathare -l -s mathare_building.osm | ||
+ | A new table will be created, named after the filename. | ||
== Find collisions between OSM and the import candidate == | == Find collisions between OSM and the import candidate == |
Revision as of 13:56, 9 May 2011
In this page, I (Sébastien) will describe how to import the data of the building extraction of Mathare that we've got from AAAS. See Primož's blog for the initial analysis.
Contents |
Changing the SRS
The data was made available as shapefiles in WGS84 Web Mercator Auxiliary Sphere projection, which is known as Web Mercator, spherical Mercator, Google Mercator and is referenced by various ids: EPSG:900913, EPSG:3785 (obsolete), EPSG:3857, ESRI WKID 102100... In QGIS, it's known as Google Mercator, EPSG:900913, ID 3644.
Before working with the data, we need to change the Spatial Reference System (SRS) to be compatible with OSM, that is moving to non-projected WGS84.
In QGIS: menu Vector -> Data Management Tools -> Export to new projection. Then choose the output CRS to be WGS84, EPSG:4326, ID 3452.
The two files that we're going to import are GroundTruthed-wgs84.shp and BuildingsOnTop-wgs84.shp
Setup PostGIS database
PostGIS is relatively easy to install on Ubuntu. I might describe it further later. Anyway, the current environment is PostgreSQL 8.4, PostGIS 1.5.
I found this script from GeoDjango very convenient to create a postgis db template:
$ ./create_template_postgis-debian.sh $ createdb -T template_postgis mathare
Import the shapefiles to the db
Each shapefile will be imported a separate table with shp2pgsql:
shp2pgsql -s 4326 -c -g the_geom -I -S -W UTF-8 -N skip Groundtruthed-wgs84.shp | psql mathare shp2pgsql -s 4326 -c -g the_geom -I -S -W UTF-8 -N skip BuildingsOnTop-wgs84.shp | psql mathare
Import OSM data to the db
In this case, we're only interested in buildings from OSM.
Get fresh data from OSM:
osmosis \ --read-api left=36.8425655 right=36.881876 top=-1.2480512 bottom=-1.2696752999999998 outPipe.0=1 \ --way-key keyList=building inPipe.0=1 outPipe.0=2 \ --used-node inPipe.0=2 outPipe.0=3 \ --write-xml file=mathare_building.osm inPipe.0=3
Import it to the database:
osm2pgsql -c -d mathare -l -s mathare_building.osm
A new table will be created, named after the filename.