Skip to content

Instantly share code, notes, and snippets.

@springmeyer
springmeyer / install-mapnik-amazon-ami.sh
Last active January 6, 2024 15:06
Mapnik on Amazon Linux AMI (Fedora)
# http://aws.amazon.com/amazon-linux-ami/
# http://aws.amazon.com/amazon-linux-ami/faqs/
# Boot up a machine with at least 1.5 to 2 GB Ram
# login
chmod 600 key.pem
ssh -i key.pem ec2-user@ec2...compute.amazonaws.com
# update
@springmeyer
springmeyer / degress2meters.js
Last active June 12, 2023 22:50
convert from long/lat to google mercator (or EPSG:4326 to EPSG:900913)
// See https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames for more details.
var degrees2meters = function(lon,lat) {
var x = lon * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return [x, y]
}
x= -77.035974
@springmeyer
springmeyer / kivalina-lidar-process.sh
Last active October 17, 2022 13:48
processing lidar with liblas and gdal
# depends on liblas built with laszip and ogr support
mkdir -p laz
cd laz
# download from noaa
if [ ! -f 20040805A_ak302_2_000037_p13.laz ]; then
wget http://www.csc.noaa.gov/htdata/lidar1_z/geoid12a/data/23/20040805A_ak302_2_000037_p13.laz
wget http://www.csc.noaa.gov/htdata/lidar1_z/geoid12a/data/23/20040805A_ak302_2_000038_p13.laz
wget http://www.csc.noaa.gov/htdata/lidar1_z/geoid12a/data/23/20040805A_ak302_2_000039_p13.laz
wget http://www.csc.noaa.gov/htdata/lidar1_z/geoid12a/data/23/20040805A_ak302_2_000040_p13.laz
@springmeyer
springmeyer / install-tilemill-latest.sh
Last active April 7, 2022 20:00
install bleeding edge tilemill, nodejs, and mapnik
# First, clear out any old mapnik or node.js installs that might conflict
sudo apt-get purge libmapnik libmapnik-dev mapnik-utils nodejs
# Also clear out any old ppa's that might conflict
sudo rm /etc/apt/sources.list.d/*mapnik*
sudo rm /etc/apt/sources.list.d/*developmentseed*
sudo rm /etc/apt/sources.list.d/*chris-lea*
# add new ppa's
echo 'yes' | sudo apt-add-repository ppa:chris-lea/node.js
@springmeyer
springmeyer / shp2geojson.js
Created December 4, 2013 21:43
shapefile to geojson in node.js with mapnik
var geojsonStream = require('geojson-stream');
var mapnik = require('mapnik');
var fs = require('fs');
var input = 'test/data/world_merc.shp';
var output = './out.geojson';
// set up geojson output stream
var fileOut = fs.createWriteStream(output);
var geojsonOut = geojsonStream.stringify();
@springmeyer
springmeyer / mapnik.xml
Created September 2, 2011 03:04
dynamic colorization of raster elevation data in mapnik and mapserver styles
<!-- renders: http://cl.ly/0t3p3D0a320x0I0M2o2S -->
<Map srs="+init=epsg:4269">
<Style name="terrain">
<Rule>
<RasterSymbolizer>
<!-- http://trac.mapnik.org/wiki/RasterColorizer -->
<RasterColorizer default-mode="linear">
<stop color="#35A86E" value = "1003"/>
@springmeyer
springmeyer / dedupe.md
Last active March 9, 2021 20:05
Dedupe geojson -> shapefile

First convert to sqlite

$ time ogr2ogr -f SQLite out.db 1447454472-debug.geojson 

real    2m31.904s
user    1m37.525s
sys 0m48.042s
@springmeyer
springmeyer / boost-backporting-guide.md
Last active January 11, 2021 18:57
How to backport recent Boost packages to older ubuntu distro's and build using personal PPA

Boost backporting

Goal here is to document the steps I took in May 2012 to get Boost 1.49 packages backported and working on Lucid, Maverick, Natty, Oneiric, and Precise.

TODO: look into using ubuntu-dev-tools and backportpackage -s [new_release] -d [old_release] -u [ppa] [package_name]

Install dev tools

sudo apt-get install debhelper devscripts dput git-core python pgpgpg
@springmeyer
springmeyer / create_index.js
Created August 10, 2011 23:41
create an sqlite rtree spatial index using node-sqlite3 and node-mapnik
/*
wget http://dl.dropbox.com/u/342088/10m-us-parks-area.sqlite
ogr2ogr -f SQLite parks.sqlite ParkPly_900913.shp
dane$ ogr2ogr -f SQLite parks.sqlite ~/Documents/MapBox/cache/2976a0c1-10m-us-parks-area/2976a0c1-10m-us-parks-area.shp
*/
@springmeyer
springmeyer / bench.js
Created March 20, 2015 18:43
benchmark.js example: testing an async function
'use strict';
var path = require('path');
var fontnik = require('../');
var Benchmark = require('benchmark');
var opensans = path.resolve(__dirname + '/../fonts/open-sans/OpenSans-Regular.ttf');
var suite = new Benchmark.Suite();