Skip to content

Instantly share code, notes, and snippets.

View richpsharp's full-sized avatar

Richard Sharp richpsharp

View GitHub Profile
@richpsharp
richpsharp / projected_vs_epsglatlng.py
Created October 5, 2020 18:47
IsProjected vs. EPSGTreatsAsLatLong
from osgeo import osr
projection_wkt = 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]'
srs = osr.SpatialReference()
srs.ImportFromWkt(projection_wkt)
print(projection_wkt)
print(f'''IsProjected: {
srs.IsProjected()}. EPSGTreatsAsLatLong: {srs.EPSGTreatsAsLatLong()}''')
@richpsharp
richpsharp / pygeoprocessing_optimization_demo.py
Last active August 18, 2020 23:43
How to use raster optimization in pygeoprocessing
"""Demo of optimization."""
import logging
import os
import sys
import pygeoprocessing
logging.basicConfig(
level=logging.DEBUG,
format=(
@richpsharp
richpsharp / may_2020_run_biodiv_and_carbon_multiprocessing.py
Last active May 20, 2020 17:03
traditional multiprocessing approach
import multiprocessing
import os
import sys
import json
import glob
import logging
#import taskgraph
import pandas as pd
from wbnci import biodiversity, carbon
@richpsharp
richpsharp / points_contained_in_poly.py
Created May 13, 2020 04:41
Example script for testing points contained in a set of polygons
"""Example of determing if points are contained in polygon."""
from osgeo import gdal
import shapely.geometry
point_vector_path = 'dams.shp'
polygon_vector_path = 'watersheds_hotels_resorts_DdS.shp'
polygon_id_field = 'Name'
point_id_field = 'desc_short'
@richpsharp
richpsharp / mult_by_columns.py
Last active May 29, 2020 00:39
Script to evalulate Justin lasso stats values
"""Demo of how to use pandas to multiply one table by another."""
import argparse
import os
from osgeo import gdal
from osgeo import ogr
from osgeo import osr
import pandas
parser = argparse.ArgumentParser(description='mult by columns script')
@richpsharp
richpsharp / local_pystac.py
Created April 19, 2020 04:33
build a local STAC to upload later
"""Generate a STAC catalog."""
import os
import subprocess
import datetime
import pystac
output = subprocess.check_output(
'gsutil ls gs://my-bucket-with-geotiffs', shell=True)
@richpsharp
richpsharp / Dockerfile
Last active April 15, 2020 19:03
Docker build for Python 3.8 GDAL 3.0.4, w/ ZSTD extensions, and PyGeoprocessing 2.0 release
FROM python:3.8-slim-buster as builder
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
cmake build-essential wget ca-certificates unzip pkg-config \
zlib1g-dev libfreexl-dev libxml2-dev
# making directory to avoid this JDK installation bug: https://github.com/geerlingguy/ansible-role-java/issues/64
RUN mkdir /usr/share/man/man1
RUN apt-get install -y openjdk-11-jdk-headless
@richpsharp
richpsharp / run_sdr.py
Created April 6, 2020 06:03
Example file of how to run SDR with the c-factor extension in a script
"""Example of how to use experimental SDR c-factor."""
import sys
import logging
import natcap.invest.sdr.sdr
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
args = {
'biophysical_table_path': './data/biophysical_SDR.csv',
@richpsharp
richpsharp / pygeoprocessing_build_log.txt
Created March 13, 2020 19:09
Build log from broken pgp build
root@6de621f3074a:/usr/local/pygeoprocessing# python setup.py install
running install
running bdist_egg
running egg_info
creating pygeoprocessing.egg-info
writing pygeoprocessing.egg-info/PKG-INFO
writing dependency_links to pygeoprocessing.egg-info/dependency_links.txt
writing requirements to pygeoprocessing.egg-info/requires.txt
writing top-level names to pygeoprocessing.egg-info/top_level.txt
writing manifest file 'pygeoprocessing.egg-info/SOURCES.txt'
@richpsharp
richpsharp / planet_bb_query_demo.py
Created March 3, 2020 21:53
Planet Bounding Box quad query demo for Sam
import argparse
import requests
def demo(mosaic_id, planet_api_key):
"""Demo of searching multiple bounding boxes.
Parameters:
mosaic_id (str): planet mosaic id.
planet_api_key (str): Planet API key.