OpenStreetMap
Use osmosis
Let the data just seep into PostGIS through a semipermeable membrane with osmosis, or use the command line tool of the same name.
Get the tool
This did not work very well for me No build required, that's the Java JAR advantage! (You knew there was an advantage.)
wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip mkdir osmosis cd osmosis unzip ../osmosis-latest.zip
This is what I ended up doing
git clone https://github.com/openstreetmap/osmosis.git cd osmosis ./gradlew assemble
Set up the database
createdb osmosis_us_west echo "CREATE EXTENSION hstore; CREATE EXTENSION postgis;" | psql -U postgres $DB echo "ALTER TABLE osmosis_us_west OWNER TO osm" | psql -U postgres cd script psql -U postgres osmosis_us_west -f pgsnapshot_schema_0.6.sql
Get the data
Get the data for the western United States
wget http://download.geofabrik.de/north-america/us-west-latest.osm.pbf
Run osmosis to load the PBF file into your PostGIS server. I do it thusly
# Put TEMP files somewhere with lots of space mkdir tmp JAVACMD_OPTIONS="-Djava.io.tmpdir=tmp" \ ./osmosis -v --read-pbf us-west-latest.osm.pbf --write-pgsql user=osm_reader database=osmosis_us_west
Or use the osm2pgsql tool
Using excellent instructions from http://bostongis.com/ In particular, the Almost idiot's guide...
First, get the data from CloudMade for California and Oregon, or if you have LOTS of time and space get the whole planet.
mkdir /green/GISData/OSM && cd /green/GISData/OSM wget http://downloads.cloudmade.com/americas/northern_america/united_states/california/california.osm.bz2 wget http://downloads.cloudmade.com/americas/northern_america/united_states/oregon/oregon.osm.bz2
Create a lovely Postgis database and spatially enable it and add hstore.
Build osm2pgsql
No need for any special configuration options, just build and install!
sudo apt-get install libxml2-dev libbz2-dev cd ~/src/GIS git clone https://github.com/openstreetmap/osm2pgsql.git cd osm2pgsql ./autogen.sh ./configure sed -i 's/-g -O2/-O2 -march=native -fomit-frame-pointer/' Makefile make sudo make install
Using osm2pgsql
# bellman osm2pgsql oregon.osm.bz2 -d osm -U postgres -S /green/bwilson/src/GIS/osm2pgsql/default.style --hstore osm2pgsql california.osm.bz2 --append -d osm -U postgres -S /green/bwilson/src/GIS/osm2pgsql/default.style --hstore
# dart createdb -U postgres osm createuser -U postgres osm psql -U postgres osm CREATE EXTENSION hstore; CREATE EXTENSION postgis; # The western US - I had to increase the node cache size osm2pgsql us-west-latest.osm.pbf -d osm -U osm -S ~/src/GIS/osm2pgsql/default.style --hstore -C 10000
# The whole planet - I RUN OUT OF MEMORY!! Dang. osm2pgsql planet-latest.osm -d osm -U osm -S ~/src/GIS/osm2pgsql/default.style --hstore -C 15000
On my little server Bellman, it took 628 seconds to load the Oregon data and it took 3302 seconds to load California. Conclusion: California is much bigger, in fact there is probably room for me there in Nevada county.
I just loaded Oregon data onto my much snazzier server at work and it took 183 seconds.
Nice to have some data in my PostGIS server.
Now I need to get it showing up in Geoserver