Skip to content

Instantly share code, notes, and snippets.

View lukasmartinelli's full-sized avatar

Lukas Martinelli lukasmartinelli

View GitHub Profile
CREATE VIEW poi_label_zoom_level_changes AS (
SELECT osm_id, timestamp FROM poi_label_z14
);
CREATE VIEW road_zoom_level_changes AS (
SELECT osm_id, timestamp FROM road_z14
UNION ALL
SELECT osm_id, timestamp FROM road_z13
UNION ALL
@lukasmartinelli
lukasmartinelli / extract_cities.py
Created April 26, 2016 14:20
Extract city bounding box CSV from Mapzen
import json
doc = json.load(open('cities.json'))
for region, region_obj in doc['regions'].items():
for city_name, city_obj in region_obj['cities'].items():
bbox = city_obj['bbox']
parts = city_name.split('_')
if len(parts) != 2:
continue
@lukasmartinelli
lukasmartinelli / calc_coords.py
Last active May 4, 2016 15:04
Filter coords whether they are in Switzerland
#!/usr/bin/env python
import csv
import sys
import os
import mercantile
DELIMITER = os.getenv('DELIMITER', ' ')
def calculate_center(x, y, zoom):
@lukasmartinelli
lukasmartinelli / unique_jobs.py
Created May 11, 2016 14:18
Filter JSON lines jobs by unique id
import json
ids = {}
for line in open('failed-jobs.json'):
doc = json.loads(line)
if not doc['id'] in ids:
ids[doc['id']] = True
print(json.dumps(doc))
@lukasmartinelli
lukasmartinelli / tiles_between_y_axis.py
Created May 17, 2016 07:50
Scripts to deal with XYZ tile lists
import fileinput
import sys
def around_north_pole(y):
return y < 75
def around_south_pole(y):
return y > 184
@lukasmartinelli
lukasmartinelli / filter_nginx_log_by_time.py
Created May 18, 2016 10:35
Filter NGINX for requests longer than 10 seconds
import fileinput
import sys
for line in fileinput.input():
tokens = line.split('"-"')
time_tokens = tokens[-1].strip().split(' ')
try:
nginx_time, php_time = float(time_tokens[0]), float(time_tokens[1])
except ValueError:
@lukasmartinelli
lukasmartinelli / PROPOSAL.md
Last active July 12, 2016 18:37
OSM2VectorTiles v3
#admin
[admin_level]
[disputed]
[maritime]
[osm_id]
#aeroway
[osm_id]
[type]
#building
[osm_id]
@lukasmartinelli
lukasmartinelli / README.md
Created July 26, 2016 09:15
Pyramid Jobs from Tile List File

Usage

Meant to create pyramid jobs for OSM2VectorTiles when only a tile list file is available (e.g. recovering missing tiles).

cat missing_tiles.txt | sed 's/MISSING//g' | python generate_pyramid_jobs.py
```
@lukasmartinelli
lukasmartinelli / compress_tiff_files.sh
Created July 30, 2016 12:18
Compress all DEM TIFF files in a directory in place
#!/bin/bash
set -o errexit
set -o pipefail
set -o nounset
function compress_inplace() {
local filename="$1"
gdal_translate -co compress=lzw "$filename" "$filename.compressed"
rm "$filename"
mv "$filename.compressed" "$f"