Skip to content

Instantly share code, notes, and snippets.

@mappingvermont
mappingvermont / combine.sh
Created April 4, 2017 20:56
Combine all shapefiles in directory, selecting only features where GRID_ID (or DN) is = 1
#!/bin/bash
echo "here"
DATA=`find . -name '*.shp'`
ogr2ogr -a_srs EPSG:4326 merge.shp
for i in $DATA
do
SHP=${i:2:100}
FINAL="${SHP/.shp/}"
echo $FINAL
echo $i
@mappingvermont
mappingvermont / multiprocess_raster.py
Created April 10, 2017 16:58
Example downloading + processing raster data with multiple processors
import multiprocessing
import time
tile_list = ['00N_000E', '00N_010E', '00N_020E', '00N_030E', '00N_040E']
def process_tile(tile_id):
print 'downloading loss and extent for tile id {}'.format(tile_id)
time.sleep(1)
import numpy as np
import json
from pprint import pprint
vals = [11, 14, 30, 40, 60, 90, 100, 120, 130, 140, 150, 160, 180, 190, 200, 220]
# number of loss years starting 2000 (=no loss)
years = 15
# number of land cover classes
@mappingvermont
mappingvermont / index.html
Created April 21, 2017 19:19
cambridgeport 1869 beers map
<!DOCTYPE html>
<html>
<head>
<title>Demo Cambridgeport Map</title>
<meta charset="utf-8" />
<link
rel="stylesheet"
href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css"
/>
<style>
@mappingvermont
mappingvermont / index.html
Last active April 26, 2017 14:51
Map of Greenfield MA in 1895
<!DOCTYPE html>
<html>
<head>
<title>Demo Greenfield Map</title>
<meta charset="utf-8" />
<link
rel="stylesheet"
href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css"
/>
<style>
@mappingvermont
mappingvermont / gfw-api-windows.md
Created April 28, 2017 15:45
Running the GFW API on windows

This is a pain. But so is:

  • editing your code locally and pushing it to your linux machine to see if it runs
  • running an ubuntu virtualbox locally
  • editing a complex application on a linux server using nano

Install docker and docker-compose

  1. Make sure that you have windows 10
  2. Install Docker for Windows
@mappingvermont
mappingvermont / sheets.json
Created May 8, 2017 01:50
config for chrome extension
var sheets = [{"city": "brattleboro", "s3_url": "http://vermont-sanborn-maps.s3.amazonaws.com/from-loc/brattleboro/1885/1.jpg", "loc_url": "http://tile.loc.gov/image-services/iiif/service:gmd:gmd375m:g3754m:g3754bm:g089101885:08910_1885-0001/full/pct:25/0/default.jpg", "sheet_num": "1", "year": "1885"}, {"city": "brattleboro", "s3_url": "http://vermont-sanborn-maps.s3.amazonaws.com/from-loc/brattleboro/1885/2.jpg", "loc_url": "http://tile.loc.gov/image-services/iiif/service:gmd:gmd375m:g3754m:g3754bm:g089101885:08910_1885-0002/full/pct:25/0/default.jpg", "sheet_num": "2", "year": "1885"}, {"city": "brattleboro", "s3_url": "http://vermont-sanborn-maps.s3.amazonaws.com/from-loc/brattleboro/1885/3.jpg", "loc_url": "http://tile.loc.gov/image-services/iiif/service:gmd:gmd375m:g3754m:g3754bm:g089101885:08910_1885-0003/full/pct:25/0/default.jpg", "sheet_num": "3", "year": "1885"}, {"city": "brattleboro", "s3_url": "http://vermont-sanborn-maps.s3.amazonaws.com/from-loc/brattleboro/1885/4.jpg", "loc_url": "http://tile
@mappingvermont
mappingvermont / ascii_raster_view.py
Created May 9, 2017 13:05
view data for three rasters
import numpy as np
import pandas as pd
import rasterio
import sys
ds1 = sys.argv[1]
ds2 = sys.argv[2]
ds3 = sys.argv[3]
rowID = int(sys.argv[4])
@mappingvermont
mappingvermont / filter_glad.html
Created August 25, 2016 13:11
Load GLAD tiles into Leaflet canvas, decode RGB value and filter by date
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Filtering Pixels in Leaflet</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<!-- Load Leaflet from CDN-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/leaflet/0.7.7/leaflet.css" />
@mappingvermont
mappingvermont / example.py
Created May 15, 2017 16:14
sql_format_example
import argparse
def main():
# Parse commandline arguments
parser = argparse.ArgumentParser()
parser.add_argument('--start-year', '-y1', type=int, required=True)
parser.add_argument('--start-date', '-d1', type=int, required=True)
parser.add_argument('--end-year', '-y2', type=int, required=True)