Skip to content

Instantly share code, notes, and snippets.

View ianturton's full-sized avatar
🏠
Working from home

Ian Turton ianturton

🏠
Working from home
View GitHub Profile
package com.ianturton.w3w;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
@ianturton
ianturton / WindingOrder.java
Last active November 6, 2015 11:26
Reorder polygons so you can import them into programs which don't understand Exterior + Interior rings.
package spike;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.geotools.data.DataUtilities;
import org.geotools.data.shapefile.shp.JTSUtilities;
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ianturton.cookbook</groupId>
<artifactId>modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ianturton.cookbook</groupId>
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ianturton.cookbook</groupId>
<artifactId>modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Cookbook</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<geotools.version>15-SNAPSHOT</geotools.version>
package com.ianturton.cookbook.raster;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.geotools.coverage.GridSampleDimension;
import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverage.grid.io.AbstractGridCoverage2DReader;
@ianturton
ianturton / install.sh
Last active September 4, 2017 11:59
Installing ZooWPS on Ubuntu
# install mandatory libs etc
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install curl
sudo apt-get autoremove
sudo apt-get install fastcgi
sudo apt-get install libfcgi libfcgi-dev
sudo apt-get install libapache2-mod-fastcgi
sudo apt-get install flex bison
sudo apt-get install libxml2 libxml2-dev
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<NamedLayer>
<Name>USA states population</Name>
<UserStyle>
<Name>population</Name>
<Title>Population in the United States</Title>
<Abstract>A sample filter that filters the United States into three
@ianturton
ianturton / UpdateByPolygon.java
Created January 9, 2018 13:48
A basic and inefficient program to replace a polygon's area in a raster with a new value using GeoTools.
package com.ianturton.cookbook.raster;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import javax.media.jai.RasterFactory;
import org.geotools.coverage.CoverageFactoryFinder;
import org.geotools.coverage.grid.GridCoordinates2D;
@ianturton
ianturton / README.md
Last active October 19, 2019 08:23
Python for finding the minimum number of place names to fill the alphabet

Once I asked a question on gis.stackexchange.com which lead to a chunk of the UK academic production being lost for the day. But anyway we decided that we needed to vectorise the font typeface.

This led me to think about how many towns (or county boroughs) we actually needed to get all the letters of the alphabet, this code answers the question - 6. 'Newcastle upon Tyne', 'Wolverhampton', 'Kingston upon Hull', 'West Bromwich', 'Merthyr Tydfil', 'Halifax' Provided that you don't care about J, Q & Z!

Update

@ianturton
ianturton / OSGridTest.java
Created April 20, 2020 12:44
OS Grid Reference conversion
package spike;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.locationtech.jts.geom.Coordinate;
public class OSGridrefTest {
@Test