Skip to content

Instantly share code, notes, and snippets.

View mdiener21's full-sized avatar

Michael Diener mdiener21

View GitHub Profile
@mdiener21
mdiener21 / backup_postgresql2ftp.py
Created April 10, 2018 08:59
Backup Postgresql DB to FTP with python
import ftplib
import os
import sys
import subprocess
from optparse import OptionParser
from datetime import datetime
DB_USER = 'databaseuser'
DB_NAME = 'databasename'
@mdiener21
mdiener21 / join_pts_polys.py
Created April 4, 2018 06:38
shapely spatial join points and polygons
import shapefile
import shapely
#Load the shapefile of polygons and convert it to shapely polygon objects
polygons_sf = shapefile.Reader("C:/PolygonShapeFile.shp")
polygon_shapes = polygons_sf.shapes()
polygon_points = [q.points for q in polygon_shapes ]
from shapely.geometry import Polygon
polygons = [Polygon(q) for q in polygon_points]
@mdiener21
mdiener21 / create_fishnet.sql
Created February 11, 2018 09:13
create a survey grid as vector with Postgis as a function
CREATE OR REPLACE FUNCTION ST_CreateFishnet(
nrow integer, ncol integer,
xsize float8, ysize float8,
x0 float8 DEFAULT 0, y0 float8 DEFAULT 0,
OUT "row" integer, OUT col integer,
OUT geom geometry)
RETURNS SETOF record AS
$$
SELECT i + 1 AS row, j + 1 AS col, ST_Translate(cell, j * $3 + $5, i * $4 + $6) AS geom
FROM generate_series(0, $1 - 1) AS i,
@mdiener21
mdiener21 / map_2_lists_to_dict.py
Created November 4, 2017 06:59
Map two lists into a dictionary ordered by keys
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
#result looks like this {'a': 1, 'b': 2, 'c': 3}
# ordered dictionary
import collections
keys = ['a', 'b', 'c']
values = [1, 2, 3]
@mdiener21
mdiener21 / package.json
Last active October 28, 2017 07:34
setup openlayers and webpack for development
{
"name": "newprojectname",
"version": "1.0.0",
"description": "test-map",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --progress -p",
"watch": "webpack --progress --watch",
"server": "webpack-dev-server --open"
@mdiener21
mdiener21 / Run Django as a script
Created April 21, 2017 11:14
Run Django as a script
# add this to top of script with the correct path to your app
import sys, os
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings
@mdiener21
mdiener21 / updateAllPipModules.py
Created February 24, 2017 13:40
Update all pip installed apps to their newest versions in one go using python
import pip
from subprocess import call
for dist in pip.get_installed_distributions():
call("pip install --upgrade " + dist.project_name, shell=True)
@mdiener21
mdiener21 / set-pwd-postgres.sh
Created February 7, 2017 20:18
Set initial password for postgres database ubuntu fresh install
#In a terminal, type:
sudo -u postgres psql postgres
# this connects as a role with same name as the local user, i.e. "postgres", to the database called "postgres" (1st argument to psql).
# Set a password for the "postgres" database role using the command:
\password postgres
@mdiener21
mdiener21 / install-pgadmin4-py3.sh
Last active December 26, 2017 23:03
install pgadmin4 desktop ubuntu 16
# original post http://askubuntu.com/questions/831262/how-to-install-pgadmin-4-in-desktop-mode-on-ubuntu-16-04
sudo apt-get install python3-venv python3-pip libpq-dev python3-dev
mkdir myVenvs
cd myVenvs
pyvenv pgadmin4-ve
source pgadmin4-v/bin/activate
wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py3-none-any.whl
@mdiener21
mdiener21 / install-postgres-postgis-gdal.sh
Last active June 24, 2020 16:18
Setup Ubuntu 16.04 for GIS development postgresql 9.6, postgis 2.3, gdal 2.1.2, python 3.5, pgrouting
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.6
sudo apt-get install postgresql-9.6-postgis-2.3
sudo apt-get install postgresql-9.6-pgrouting
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update