Scene from above

I’ve been severely neglecting my blog on account of focusing on writing up my PhD project as well as being sick (don’t underestimate the pain of getting your tonsils out as an adult!).

I wanted to write up a decent post for my 100th entry, but have subsequently realised it’s lead to me posting nothing for the last couple of months! I have a plan for a good entry coming up, though will need to find the time to put it together.

In the meantime, I picked up that Alistair Graham (geoger), who gave a talk at the conference I ran this year, and Andrew Cutts, who I have never met, though I remember worked through the straightforward openCV GUI demo from his website which I thought was great, have started a podcast, scene from above.

Science communication is tricky at the best of times, so I’m excited they’re giving this style of delivery a crack. The demo episode discusses Sentinel 5p and the larger scope of the sentinel project, remap’s webapp and cloud computing more generally, and the launch of a Moroccan satellite.

I think the discussion of the webapp was my favorite part. I appreciated Alistair’s humility in admitting that maybe he was approaching interaction with data from a point of view that was somewhat outdated, as he seems (as am I!) skeptical of the benefits of a sleek interface. Admittedly the app isn’t designed with me or others in the RS community in mind, but I can’t see it being used much in it’s current iteration.

Thinking of my ornithologist friends currently in PhDs/postdocs who would be the target audience for an app like this, they would almost definitely look at it for an hour or two with interest, and never think to use it again. Having consistently tried to get them interested in RS and accurate mapping, the tools need to be unbelievably simple to get people to consider using them seeing as so much of other scientists time is dedicated to learning specialist knowledge and general computing skills. It’s one of the many challenges of interdisciplinary work in science!

I’m looking forward to the next episode of the podcast, and hope a forum opens up for discussion online as I think I’d have something to contribute, and would love to hear other people’s opinions on these ideas!

Keep an eye out for a longer update soon 🙂

MP map

Just a quick entry detailing an interactive map showing MPs’ constituencies and party membership created at the request of a friend. It uses leaflet.js and geojson to draw the map, meaning it’s standalone html code which can be easily moved and modified.


It’s based largely on the chloropleth example included in the leaflet documentation and was pretty interesting to make!

You can see it at my website here.


I thought it might be fun to try something different, and delve back into the world of satellite remote sensing (outside of Sentinel_bot, which isn’t a scientific tool). It’s been a while since I’ve tried anything like this, and my skills have definitely degraded somewhat, but I decided to fire up GrassGIS and give it a go with some publicly available data.

I set myself a simple task of trying to guess how ‘leafy’ streets are within an urban for urban environment from Landsat images. Part of the rationale was that whilst we could count trees using object detectors, this requires high resolution images. While I might do a blog on this at a later date, it was outside the scope of what I wanted to achieve here which is at a very coarse scale. I will be using a high resolution aerial image for ground truthing!

For the data, I found an urban area on USGS Earth Explorer with both high resolution orthoimagery and a reasonably cloud free image which were within 10 days of one another in acquisition. This turned out to be reasonably difficult to find, with the aerial imagery being the main limiting factor, but I found a suitable area in Cleveland, Ohio.

The aerial imagery is a 30 cm resolution having been acquired using a Williams ZI Digital Mapping Camera, and was orthorectified prior to download. For the satellite data, a Landsat 5 Thematic Mapper raster was acquired covering the area of interest, with a resolution of 30 m in the bands we are interested in.

This experiment sought to use the much researched NDVI, a simple index used for recovering an estimate of vegetation presence and health.

Initially, I loaded both datasets into QGIS to get an idea of the resolution differences


Aerial image overlain on Landsat 5 TM data (green channel)

So a decent start, looks like our data is valid in some capacity and should be an interesting mini-experiment to run! The ground truth data is resolute enough to let us know how the NDVI is doing, and will be used farther downstream.


Onto GrassGIS, which I’ve always known has great features for processing satellite imagery, though I’ve never used. It’s also largely built on python, which is my coding language of choice, so I feel very comfortable troubleshooting the many errors fired at me!

The bands were loaded, DN -> reflectance conversion done (automatically, using GrassGIS routines) and a subsequent NDVI raster derived.


Aerial image overlain on NDVI values. Lighter pixels denote a higher presence of vegetation

Cool! We’ve got our NDVI band, and can ground truth it against the aerial photo as planned.


Lighter values were seen around areas containing vegetation

Last on the list is grabbing a vector file with street data for the area of interest so we can limit the analysis to just pixels beside or on streets. I downloaded the data from here and did a quick clip to the area of interest.


Vector road network (in yellow) for our aerial image. Some new roads appear to have been built.

I then generated a buffer from the road network vector file, and generated a raster mask from this so only data within 20 m of a road would be included in analyses. The result is a first stab at our leafy streets index!


Visual inspection suggests it’s working reasonably well when compared with the reference aerial image, a few cropped examples are shown below.

This slideshow requires JavaScript.

Lastly, we can use this this data to scale things up, and make a map of the wider area in Cleveland. This would be simple to do for anywhere with decent road data.

map3.jpgThis might be useful for sending people on the scenic route, particularly in unfamiliar locations. Another idea might be to use it in a property search, or see if there’s a correlation with real estate prices. Right now I’ve run out of time for this post, but might return to the theme at a later date!


Choosing a field site: The hunt (Part three)

In another portion of the same field trip, some students were required to do a survey around the town of Hunstanton, about an hour’s drive from the earlier stop of Overstrand. Hunstanton is regionally known for its chalk cliffs, which my supervisor had previously suspected might be a good site candidate. So, after dropping off the students, we went down to investigate its potential as a study site.

The aerial image (once again courtesy of GetMapping) reveals a sharper cliff, far more distinct than what appeared to be a set of landslides at Overstrand. Looking within the shadows reveals numerous rockfalls and slips, which was thought could make for an interesting (and challenging!) environment for photogrammetric mapping. The tide in the image is almost at its highest, a search reveals that it shouldn’t be a big issue for conducting a survey as it stays relatively far out, but this will obviously be influenced by focal length and sensor size of the cameras we use!


Aerial image of Hunstanton and its cliffs, courtesy of GetMapping

The Hunstanton cliffs are extremely well documented, and another set of cliffs with conservation status. One of the earliest records revealed is an 18th Century essay, ‘Towards a topographical history of the county of Norfolk’, with numerous mentions of the Hunstanton cliffs. The cliffs consist of three distinct strata denoted by their striking colour differences (colour contrast!). The bottommost layer is rusty brown Carstone, which contrasts with the striking Hunstanton Red Chalk Formation and white/grey topmost Ferriby Chalk Formation. It’s a popular area with fossil hunters, being a very productive area for ammonite fossils.


Strata at Hunstanton, taken from the GCR site description

This definitely ticked the colour contrast box in a big way, and appeared to be very accessible – there’s a carpark located at the top of the cliff allowing an easy path to the strand. The reconnaissance mission revealed one very interesting 50 m or so stretch where a landslip had occurred, according to a passer-by, in the early nineties.


An overview of the cliffs of Hunstanton, including the aforementioned landslip

Vegetation has taken hold in upper parts of the landslip to create a natural scene with an almost unnatural amount of colour contrast, things were shaping up nicely! One of the only downsides we foresaw was a large amount of traffic through the area, but this wasn’t a large enough of a deterrent to add it to the list.

This set the stage nicely – two sites within an hour of each other, with good options for accommodation and well accessible. Now all that was required was careful planning and enough time to ensure the whole thing was done correctly! A checklist and research design was made of the most important equipment needed to answer the questions posed. I accessed the UK LiDAR inventory in order to make some coarse resolution 3D models of the areas of interest, and used a nifty CloudCompare function to actually place virtual cameras in the scene. This came in useful for planning what focal length lens would be required for data acquisition!


Overview of the initial plan for the photogrammetric survey at Hunstanton, showing camera positions

I actually spent some (probably too much!) time fiddling around with a Blender plugin which simulates a physical camera, so you can play with the focus distance/aperture, but nothing much came from it. Something on the back-burner.

Stay tuned for part four, where I detail the fieldwork plan.

Leaflet maps, beautiful!

I decided to try and make some sort of map to help visualize the goings on of the movement of refugees through Europe, but got distracted in the technical aspects of putting together a web map and appreciating the effort that some open source developers have gone through to make really beautiful tiles for openlayers-based maps.

As such, I’ve put together a chloropleth map showing where the 130,000 extra refugees Europe is being asked to accept would go based purely on GDP. In essence, it’s a map of EU countries GDPs but may give a bit of context as to the practicality of certain countries offering asylum. It’s got some basic javascript components (Roll over for info, with highlighting), I’ve disabled the zoom as it wasn’t very relevant considering how sparsely the dataset is populated.

You can see it in my webspace here, a printscreen is attached! Here‘s a second similar one, showing number of asylum applications per country as of December 2014.


50 posts!

For my 50th post I thought I’d just present another couple of geovisualisations based off of the UK national LiDAR inventory. The first is London, and is relatively complete. The point spacing at the most zoomed level is 7m as this was the best I could get without crashing my computer! I still think it’s quite interesting to see, and I hope to add some more functionality to it as time goes on. It’s viewable here.

Secondly I wanted to present a more topographically diverse region, so I searched for the area around Snowdonia, which had no data listed. Next, I searched around Ben Nevis, which had no data either! I then searched around Scafell Pike where there was a tile with data present, though you’ll see that it’s patchy, but somewhat interesting nonetheless! See it here.

Sunday map #1

I’ve been thinking about trying to do a map series for a while, but hadn’t quite settled on a theme so the risk of never getting around to it I’ve decided to start today with no particular theme. First up, a map showing percentage of foreign born populace per local authority in England and Wales. I was hoping to make it interactive but google maps limits are pretty small so need to do some reading on how I could go about this.


Data sources are listed at the bottom of the post, hoping to make this a weekly contribution! Definitely need to think about design a bit more too, this is pretty shabby looking but don’t want to sink too much time into it. Made with QGIS.

Population data:

Boundary data: