Skip to content

Instantly share code, notes, and snippets.

View h-a-graham's full-sized avatar

Hugh Graham h-a-graham

View GitHub Profile
@h-a-graham
h-a-graham / scrape_EA_LiDAR_URL_Tokens.py
Created December 21, 2020 09:38
A function to automate the scraping of EA lidar URL tokens for a list of zipped shp files.
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# from selenium.webdriver.firefox.options import Options
import pandas as pd
import math
@h-a-graham
h-a-graham / ggplot_RH_colour_facet.R
Created January 22, 2021 14:49
Add colours to right hand facets
# this adds colours to the right hand facets
colour_right_facets <- function(plot){
g <- ggplot_gtable(ggplot_build(plot))
stripr <- which(grepl('strip-r', g$layout$name))
fills <- c("grey90","grey70","grey50")
k <- 1
for (i in stripr) {
j <- which(grepl('rect', g$grobs[[i]]$grobs[[1]]$childrenOrder))
g$grobs[[i]]$grobs[[1]]$children[[j]]$gp$fill <- fills[k]
k <- k+1
library(rayshader)
library(sf)
library(ggmap)
library(EAlidaR)
# ------------ User Inputs ---------------------------------
# Googple maps API KEY
register_google(key = "[PUT YOUR API KEY HERE!!]") # Create your own key as shown in the ggmap documentation: https://github.com/dkahle/ggmap
# WGS84 lat Long centroid location for your scene...
@h-a-graham
h-a-graham / MODIS_timeseries.R
Last active September 9, 2021 19:51
A script to create a simple time series using MODIS satellite data with R
library(gdalio)
library(rnaturalearth)
library(dplyr)
library(sf)
library(lubridate)
library(magick)
library(terra)
source(system.file("raster_format/raster_format.codeR",
package = "gdalio", mustWork = TRUE)) # helper functions
# Raster Mask Benchmark
library(sf)
library(terra)
library(dplyr)
library(elevatr)
library(microbenchmark)
# library(tictoc)
library(bench)
# ------ get data -------------
# easy height data for rayshader
# remotes::install_github("hypertidy/topography")
library(gdalio)
library(topography)
library(sf)
library(rayshader)
library(scico)
library(dplyr)
# ------ get data -------------
# Get county data for England and Wales
if (!"here" %in% installed.packages()[,"Package"]) install.packages('here')
library(here)
dir_home <- here()
# Function to un-nest all files in sub directories.
unnest_dir <- function(.root, sep="_DIR_SEP_"){
#list all the files in the directory and sub dirs
files <- list.files(.root, full.names = F, recursive = T)
# example...
library(gdalio)
library(rayshader)
library(topography)
library(gdalwebsrv)
rotate <- function(x) t(apply(x, 2, rev))
gdalio_rayshader_matrix <- function(dsn, ...) {
#anglr questions
# example...
library(gdalio)
library(rayshader)
library(topography)
library(gdalwebsrv)
library(anglr)
source(system.file("raster_format/raster_format.codeR", package = "gdalio", mustWork = TRUE))
#functions...
# Find area difference of two lines and group by whether one line is higher or
# lower than the other. Possiblt a long way round but it works!
#--------- Load packages -------------
library(wk)
library(sf)
library(tidyverse)
#------------- Create some fake data in long form ---------------
fake_df <- tibble(scenario = c(rep('high',6),rep('low',6)),