Skip to content

Instantly share code, notes, and snippets.

View ozjimbob's full-sized avatar

Grant Williamson ozjimbob

View GitHub Profile
@ozjimbob
ozjimbob / rain.r
Last active June 13, 2022 23:54
Raindrops
library(tickle)
x11(type = 'dbcairo', antialias = 'none')
dev.control(displaylist = 'inhibit')
df = data.frame(x=runif(10,-1,1),y=runif(10,-1,1),size=rep(1,10))
size <- reactive_dbl(value=6)
rate <- reactive_dbl(value=10)
@ozjimbob
ozjimbob / gdalinfo_txt.
Created August 25, 2021 00:13
GDAL INFO
# gdalinfo for a large, integer raster:
Driver: GTiff/GeoTIFF
Files: r_vegmax.tif
Size is 34269, 31580
Coordinate System is:
PROJCS["unknown",
GEOGCS["unknown",
DATUM["Unknown_based_on_GRS80_ellipsoid",
SPHEROID["GRS 1980",6378137,298.2572221010042,
@ozjimbob
ozjimbob / remove_invalid_poly.r
Created April 28, 2021 02:30
Kill Bad Polygons Dead
remove_invalid_poly <- function(xx){
to_fix=c()
for(i in 1:nrow(xx)){
mn <- min(sapply(st_geometry(xx)[[i]], function(x) nrow(x[[1]])))
if(mn < 4){
to_fix <- c(to_fix,i)
}
}
for(fix_list in to_fix){
library(tidyverse)
library(purrr)
library(readxl)
library(jsonlite)
# Read your spreadsheet
input <- read_excel("Book1-2.xlsx")
# Take your column C and put it into a list, by interpreting the JSON
data <- map(input$context,fromJSON)
library(tidyverse)
library(purrr)
# Make a list that looks a bit like yours
# It has two entries
# Each entry has two "normal fields (application, user) - which have different lengths
# And a third field "custom" which contains the weird, staggered dataframe
data <- list()
deb https://qgis.org/ubuntu-ltr focal main
deb-src https://qgis.org/ubuntu-ltr focal main
deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/
deb-src https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/
@ozjimbob
ozjimbob / map.r
Last active April 19, 2020 11:42
# If you don't have them installed, install ggmap and ggplot2 packages
install.packages("ggmap")
install.packages("ggplot2")
# Load these packages
library(ggmap)
library(ggplot2)
# Simple tibble
d <- tibble(a1="foo",
a2="bar")
# Want to make a new column called "new" and unite all the "a*" columns together
newcol <- "new"
startchar <- "a"
unite(d,col=newcol,starts_with(startchar)) # Yay
@ozjimbob
ozjimbob / him_anim.r
Created January 7, 2020 22:19
Example code to generate animation frames of Himawari-8 hotspots
# General data manipulation
library(tidyverse)
# Spatial data
library(sf)
# Thematic maps
library(tmap)
# ignoring time=t, just modelling on dx for simplicity
frecent3 <- function(rank,dx){
a = 6.1625
cc = 1.6724
b = 0.2882
return(( a/(1e-04 * dx + cc)+b) * rank)
}