{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ " # Table of Contents\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# GDAL and OGR libraries" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the previous session, we used the GDAL library to open HDF files. GDAL is not limited to a single file format, but can actually cope with many different raster file formats semalessly. For *vector* data (i.e., data that is stored by features, each being made up of fields containing different types of information, one of them being a *geometry*, such as polygon, line or point), GDAL has a sister library called OGR. The usefulness of these two libraries is that they allow the user to deal with many of the different file formats in a consistent way. \n", "\n", "It is important to note that both GDAL and OGR come with a suite of command line tools that let you do many complex tasks on the command line directly. A listing of the GDAL command line tools is available [here](http://www.gdal.org/gdal_utilities.html), but bear in mind that many blogs etc. carry out examples of using GDAL tools in practice. For OGR, most of the library can be accessed using [ogr2ogr](http://www.gdal.org/ogr2ogr.html), but as usual, you might find more useful information on [blogs](http://www.bostongis.com/PrinterFriendly.aspx?content_name=ogr_cheatsheet) etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## GDAL data type" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "GDAL provides a very handy way of dealing with raster data in many different formats, not only by making access to the data easy, but also abstracting the nuances and complications of different file formats. In GDAL, a raster file is made up of the actual raster data (i.e., the values of each pixel of LAI that we saw before), and of some *metadata*. Metadata is data that describes something, and in this case it could be the projection, the location of corners and pixel spacing, etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The GeoTransform" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "GDAL stores information about the location of each pixel using the GeoTransform. The GeoTransform contains the coordinates (in some projection) of the upper left (UL) corner of the image (taken to be the **borders of the pixel** in the UL corner, not the center), the pixel spacing and an additional rotation. By knowing these figures, we can calculate the location of each pixel in the image easily. Let's see how this works with an easy example. We have prepared a GeoTIFF file (GeoTIFF is the more ubiquitous file format for EO data) of the MODIS landcover product for the UK. The data has been extracted from the HDF-EOS files that are similar to the LAI product that we have seen before, and converted. The file is [`lc_h17v03.tif`](https://raw.github.com/jgomezdans/geogg122/master/ChapterX_GDAL/lc_h17v03.tif). We will open the file in Python, and have a look at finding a particular location.\n", "\n", "Assume we are interested in locating [Kinder Scout](http://toolserver.org/~rhaworth/os/coor_g.php?pagename=Kinder_Scout¶ms=SK086875_region%3AGB_scale%3A25000), a moorland in the Peak District National Park. Its coordinates are 1.871417W, 53.384726N. In the MODIS integerised sinusoidal projection, the coordinates are (-124114.3, 5936117.4) (you can use the [MODLAND tile calculator website](http://landweb.nascom.nasa.gov/cgi-bin/developer/tilemap.cgi) to do this calculation yourself)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:26.954183Z", "start_time": "2017-10-30T18:03:26.331998Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(-1111950.519667, 463.3127165279167, 0.0, 6671703.118, 0.0, -463.3127165279165)\n", "2400 2400\n" ] } ], "source": [ "import gdal # Import GDAL library\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "# have to make sure have access to gdal data files \n", "import os\n", "if 'GDAL_DATA' not in os.environ:\n", " os.environ[\"GDAL_DATA\"] = '/opt/anaconda/share/gdal'\n", "\n", "\n", "g = gdal.Open ( \"lc_h17v03.tif\" ) # Open the file\n", "if g is None:\n", " print \"Could not open the file!\"\n", "geo_transform = g.GetGeoTransform ()\n", "print geo_transform\n", "print g.RasterXSize, g.RasterYSize" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the previous code, we open the file (we just use the filename), and then query the object for its GeoTransform, which we then print out. The 6-element tuple comprises \n", "\n", "1. The Upper Left *easting* coordinate (i.e., *horizontal*)\n", "2. The E-W pixel spacing\n", "3. The rotation (0 degrees if image is \"North Up\")\n", "4. The Upper left *northing* coordinate (i.e., *vertical*)\n", "5. The rotation (0 degrees)\n", "6. The N-S pixel spacing, negative as we will be counting from the UL corner\n", "\n", "We have also seen that the dataset is of size 2400x2400, using `RasterXSize` and `RasterYSize`. The goal is to find the pixel number $(i,j), \\;\\;0\\le i,j < 2400$ that corresponds to Kinder Scout. To do this, we use the following calculations:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:26.963688Z", "start_time": "2017-10-30T18:03:26.957331Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2132.11549009 1587.66572071\n" ] } ], "source": [ "pixel_x = (-124114.3 - geo_transform[0])/geo_transform[1] \\\n", " # The difference in distance between the UL corner (geot[0] \\\n", " #and point of interest. Scaled by geot[1] to get pixel number\n", "\n", "pixel_y = (5936117.4 - geo_transform[3])/(geo_transform[5]) # Like for pixel_x, \\\n", " #but in vertical direction. Note the different elements of geot \\\n", " #being used\n", "\n", "print pixel_x, pixel_y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you can't be bothered doing those simple calculations, GDAL offers you a couple of methods to do the same thing already: you can use `ApplyGeoTransform`, a method that takes:\n", "* A geotransform array\n", "* The x co-ordinate\n", "* The y co-ordinate\n", "\n", "Using the standard geo-transform, you can go from pixel location to projected units:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:27.068215Z", "start_time": "2017-10-30T18:03:27.063673Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-124114.30000000016, 5936117.4]\n" ] } ], "source": [ "print gdal.ApplyGeoTransform(geo_transform, pixel_x, pixel_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we want to go the other way (from projected units to pixel row/column pair) we can \"invert\" the geotransform as follows:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:27.373543Z", "start_time": "2017-10-30T18:03:27.369064Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2132.115490094644, 1587.6657207091303]\n" ] } ], "source": [ "print gdal.ApplyGeoTransform(gdal.InvGeoTransform(geo_transform), -124114.3, 5936117.4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the pixel number is a floating point number, which we might need to round off as an integer. Let's plot the entire raster map (with minimum value 0 to ignore the ocean) using [`plt.imshow`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow) and plot the location of Kinder Scout using [`plt.plot`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plt). We will also use [`plt.annotate`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.annotate) to add a label with an arrow:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:28.548825Z", "start_time": "2017-10-30T18:03:27.695014Z" } }, "outputs": [ { "data": { "text/plain": [ "([], )" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lc = g.ReadAsArray() # Read raster data\n", "# Now plot the raster data using gist_earth palette\n", "plt.figure(figsize=(11,11))\n", "plt.imshow ( lc, interpolation='nearest', vmin=0, cmap=plt.cm.gist_earth )\n", "# Plot location of our area of interest as a red dot ('ro')\n", "plt.plot ( pixel_x, pixel_y, 'ro')\n", "# Annotate\n", "plt.annotate('Kinder Scout', xy=(pixel_x, pixel_y), \\\n", " xycoords='data', xytext=(-120, -40), \\\n", " textcoords='offset points', size=12, \\\n", " bbox=dict(boxstyle=\"round4,pad=.5\", fc=\"0.8\"), \\\n", " arrowprops=dict(arrowstyle=\"->\", \\\n", " connectionstyle=\"angle,angleA=0,angleB=-90,rad=10\", \\\n", " color='w'), )\n", "# Remove vertical and horizontal ticks\n", "plt.xticks([])\n", "plt.yticks([])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Try it out in some other places!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Find the longitude and latitude of some places of interest in the British isles (West of Greenwich!) and using the MODLAND MODIS tile calculator and the geotransform, repeat the above experiment. Note that the [MODIS calculator](http://landweb.nascom.nasa.gov/cgi-bin/developer/tilemap.cgi) calculates both the projected coordinates in the MODIS sinusoidal projection, as well as the pixel number, so it is a helpful way to check whether you got the right result.\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Park nameLongitude [deg]Latitude [deg]
Dartmoor national park-3.904\t50.58
New forest national park\t-1.595\t50.86
Exmoor national park\t-3.651\t51.14
Pembrokeshire coast national park\t-4.694\t51.64
Brecon beacons national park\t-3.432\t51.88
Pembrokeshire coast national park\t-4.79\t51.99
Norfolk and suffolk broads\t1.569\t52.62
Snowdonia national park\t-3.898\t52.9
Peak district national park\t-1.802\t53.3
Yorkshire dales national park\t-2.157\t54.23
North yorkshire moors national park\t-0.8855\t54.37
Lake district national park\t-3.084\t54.47
Galloway forest park\t-4.171\t54.87
Northumberland national park\t-2.228\t55.28
Loch lomond and the trossachs national park\t-4.593\t56.24
Tay forest park\t-4.025\t56.59
Cairngorms national park\t-3.545\t57.08
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The projection" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Projections in GDAL objects are stored can be accessed by querying the dataset using the `GetProjection()` method. If we do that on the currently opened dataset (stored in variable `g`), we get:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:29.410003Z", "start_time": "2017-10-30T18:03:29.400213Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PROJCS[\"unnamed\",GEOGCS[\"Unknown datum based upon the custom spheroid\",DATUM[\"Not_specified_based_on_custom_spheroid\",SPHEROID[\"Custom spheroid\",6371007.181,0]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]],PROJECTION[\"Sinusoidal\"],PARAMETER[\"longitude_of_center\",0],PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]]\n" ] } ], "source": [ "print g.GetProjection()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above is the description of the projection (in this case, MODIS sinusoidal) in `WKT` (well-known text) format. There are a number of different ways of specifying projections, the most important being\n", "\n", "* WKT\n", "* Proj4\n", "* EPSG codes\n", "\n", "The site [spatialreference.org](http://spatialreference.org) allows you to search a large collection of projections, and get the representation that you want to use. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So far, we have read data from files, but lets see how we can save raster data **to** a new file. We will use the previous landcover map as an example. We will write a method to save the data in a format provided by the user. The procedure is fairly straightforward: we get a handler to a driver (e.g. a GeoTIFF or Erdas Imagine format), we create the output file (giving a filename, number of rows, columns, bands, the data type), and then add the relevant metadata (projection, geotransform, ...). We then select a band from the output and copy the array that we want to write to that band." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:30.963726Z", "start_time": "2017-10-30T18:03:30.854895Z" } }, "outputs": [], "source": [ "g = gdal.Open ( \"lc_h17v03.tif\" ) # Open original file\n", "# Get the x, y and number of bands from the original file\n", "x_size, y_size, n_bands = g.RasterXSize, g.RasterYSize, g.RasterCount\n", "data = g.ReadAsArray ()\n", "driver = gdal.GetDriverByName ( \"HFA\" ) # Get a handler to a driver\n", " # Maybe try \"GeoTIFF\" here\n", "# Next line creates the output dataset with\n", "# 1. The filename (\"test_lc_h17v03.img\")\n", "# 2. The raster size (x_size, y_size)\n", "# 3. The number of bands\n", "# 4.The data type (in this case, Byte.\n", "# Other typical values might be gdal.GDT_Int16 \n", "# or gdal.GDT_Float32)\n", "\n", "dataset_out = driver.Create ( \"test_lc_h17v03.img\", x_size, y_size, n_bands, \n", " gdal.GDT_Byte )\n", "# Set the output geotransform by reading the input one\n", "dataset_out.SetGeoTransform ( g.GetGeoTransform() )\n", "# Set the output projection by reading the input one\n", "dataset_out.SetProjection ( g.GetProjectionRef() )\n", "# Now, get band # 1, and write our data array. \n", "# Note that the data array needs to have the same type\n", "# as the one specified for dataset_out\n", "dataset_out.GetRasterBand ( 1 ).WriteArray ( data )\n", "# This bit forces GDAL to close the file and write to it\n", "dataset_out = None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The output file should hopefully exist in this directory. Let's use [`gdalinfo`](http://www.gdal.org/gdalinfo.html) to find out about it" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:31.698155Z", "start_time": "2017-10-30T18:03:31.512811Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Driver: HFA/Erdas Imagine Images (.img)\r\n", "Files: test_lc_h17v03.img\r\n", "Size is 2400, 2400\r\n", "Coordinate System is:\r\n", "PROJCS[\"Sinusoidal\",\r\n", " GEOGCS[\"GCS_Unknown datum based upon the custom spheroid\",\r\n", " DATUM[\"Not_specified_based_on_custom_spheroid\",\r\n", " SPHEROID[\"Custom_spheroid\",6371007.181,0],\r\n", " TOWGS84[0,0,0,-0,-0,-0,0]],\r\n", " PRIMEM[\"Greenwich\",0],\r\n", " UNIT[\"Degree\",0.017453292519943295]],\r\n", " PROJECTION[\"Sinusoidal\"],\r\n", " PARAMETER[\"longitude_of_center\",0],\r\n", " PARAMETER[\"false_easting\",0],\r\n", " PARAMETER[\"false_northing\",0],\r\n", " UNIT[\"Meter\",1]]\r\n", "Origin = (-1111950.519667000044137,6671703.117999999783933)\r\n", "Pixel Size = (463.312716527916677,-463.312716527916507)\r\n", "Corner Coordinates:\r\n", "Upper Left (-1111950.520, 6671703.118) ( 20d 0' 0.00\"W, 60d 0' 0.00\"N)\r\n", "Lower Left (-1111950.520, 5559752.598) ( 15d33'26.06\"W, 50d 0' 0.00\"N)\r\n", "Upper Right ( 0.000, 6671703.118) ( 0d 0' 0.01\"E, 60d 0' 0.00\"N)\r\n", "Lower Right ( 0.000, 5559752.598) ( 0d 0' 0.01\"E, 50d 0' 0.00\"N)\r\n", "Center ( -555975.260, 6115727.858) ( 8d43' 2.04\"W, 55d 0' 0.00\"N)\r\n", "Band 1 Block=64x64 Type=Byte, ColorInterp=Undefined\r\n", " Description = Layer_1\r\n", " Metadata:\r\n", " LAYER_TYPE=athematic\r\n", "\r\n" ] } ], "source": [ "!gdalinfo test_lc_h17v03.img" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the previous code works. Since this is something we typically do (read some data from one or more files, manipulate it and save the result in output files), it makes a lot of sense to try to put this code in a method that is more or less generic, that we can test and then re-use. Here's a first attempt at it:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:31.955342Z", "start_time": "2017-10-30T18:03:31.933865Z" } }, "outputs": [], "source": [ "def save_raster ( output_name, raster_data, dataset, driver=\"GTiff\" ):\n", " \"\"\"\n", " A function to save a 1-band raster using GDAL to the file indicated\n", " by ``output_name``. It requires a GDAL-accesible dataset to collect \n", " the projection and geotransform.\n", " \n", " Parameters\n", " ----------\n", " output_name: str\n", " The output filename, with full path and extension if required\n", " raster_data: array\n", " The array that we want to save\n", " dataset: str\n", " Filename of a GDAL-friendly dataset that we want to use to\n", " read geotransform & projection information\n", " driver: str\n", " A GDAL driver string, like GTiff or HFA.\n", " \"\"\"\n", " \n", " # Open the reference dataset\n", " g = gdal.Open ( dataset )\n", " # Get the Geotransform vector\n", " geo_transform = g.GetGeoTransform ()\n", " x_size = g.RasterXSize # Raster xsize\n", " y_size = g.RasterYSize # Raster ysize\n", " srs = g.GetProjectionRef () # Projection\n", " # Need a driver object. By default, we use GeoTIFF\n", " driver = gdal.GetDriverByName ( driver )\n", " dataset_out = driver.Create ( output_name, x_size, y_size, 1, \\\n", " gdal.GDT_Float32 )\n", " dataset_out.SetGeoTransform ( geo_transform )\n", " dataset_out.SetProjection ( srs )\n", " dataset_out.GetRasterBand ( 1 ).WriteArray ( \\\n", " raster_data.astype(np.float32) )\n", " dataset_out = None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Now try modifying that method so that you can\n", "\n", "1. Select the output data type diffrent to Float32\n", "2. Provide a given projection and geotransform (e.g. if you don't have a GDAL filename)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reprojecting things" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Previously, we have used the [MODLAND grid converter](http://landweb.nascom.nasa.gov/cgi-bin/developer/tilemap.cgi) site to go from latitude/longitude pairs to MODIS projection. However, in practice, we might want to use a range of different projections, and convert many points at the same time, so how do we go about that?\n", "\n", "In GDAL/OGR, most projection-related tools are in the `osr` package, which needs to be imported like e.g. `gdal` itself. The main tools are the `osr.SpatialReference` object, which defines a projection object (with no projection to start with), and the `osr.CoordinateTransformation` object. \n", "\n", "Once you instantiate `osr.SpatialReference`, it holds no projection information. You need to use methods to set it up, using EPSG codes, Proj4 strings, or whatever. These methods typically start by `ImportFrom` (e.g. `ImportFromEPSG`, `ImportFromProj4`, ...).\n", "\n", "The `CoordinateTransformation` requires a source and destination spatial references that have been configured. Once this is done, it expose the method `TransformPoint` to convert coordinates from the source to the destination projection.\n", "\n", "Let's see how this works by converting some latitude/longitude pairs to the Ordnance Survey's [National Grid](http://en.wikipedia.org/wiki/Ordnance_Survey_National_Grid) projection. The projection is also available in [spatialreference.org](http://spatialreference.org/ref/epsg/27700/), where we can gleam its EPSG code (27700). The EPSG code for longitude latitude is [4326](http://spatialreference.org/ref/epsg/4326/). Let's see this in practice:\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:33.081894Z", "start_time": "2017-10-30T18:03:33.047183Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Site: Snowdonia national park Lon/Lat: -3.898,52.9, OS x,y,z: 272430,335305,-51.8129\n" ] } ], "source": [ "from osgeo import osr, ogr\n", "\n", "# Define the source projection, WGS84 lat/lon. \n", "wgs84 = osr.SpatialReference( ) # Define a SpatialReference object\n", "wgs84.ImportFromEPSG( 4326 ) # And set it to WGS84 using the EPSG code\n", "\n", "# Now for the target projection, Ordnance Survey's British National Grid\n", "osng = osr.SpatialReference() # define the SpatialReference object\n", "# In this case, we get the projection from a Proj4 string\n", "osng.ImportFromEPSG( 27700)\n", "# or, if using the proj4 representation\n", "#osng.ImportFromProj4 ( \"+proj=tmerc +lat_0=49 +lon_0=-2 \" + \\\n", "# \"+k=0.9996012717 +x_0=400000 +y_0=-100000 \" + \\\n", "# \"+ellps=airy +datum=OSGB36 +units=m +no_defs\" )\n", "\n", "\n", "# Now, we define a coordinate transformtion object, *from* wgs84 *to* OSNG\n", "tx = osr.CoordinateTransformation( wgs84, osng)\n", "# We loop over the lines of park_data, \n", "# using the split method to split by newline characters\n", "park_name, lon, lat = \"Snowdonia national park\", -3.898,52.9\n", "\n", "# create a geometry from coordinates\n", "point = ogr.Geometry(ogr.wkbPoint)\n", "point.AddPoint(lon, lat)\n", "\n", "# Actually do the transformation using the TransformPoint method\n", "point.Transform ( tx )\n", "\n", "osng_x = point.GetX()\n", "osng_y = point.GetY()\n", "osng_z = point.GetZ()\n", "\n", "# Print out\n", "print \"Site: {:s} Lon/Lat: {:g},{:g}, OS x,y,z: {:g},{:g},{:g}\".format(park_name, \n", " lon, lat, osng_x, osng_y, osng_z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can test the result is reasonable by feeding the data for `osng_x` and `osng_y` in the OS own [coordinate conversion website](http://www.ordnancesurvey.co.uk/gps/transformation) and making sure that the calculated longitude latitude pair is the same as the one you started with." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reprojecting whole rasters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using the Python bindings\n", "\n", "We can reproject one raster file from one projection to another easily by using the gdal.Warp method. Let's suppose we want to convert our original `lc_h17v03.img` dataset (which is MODIS sinusoidal projection) into Lat/Long projection (WGS84, EPSG code 4326).\n", "\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:34.646322Z", "start_time": "2017-10-30T18:03:34.539674Z" } }, "outputs": [], "source": [ "gg = gdal.Warp(\"lc_h17v03.img\", \"lc_h17v03_wgs84.tif\", \n", " format=\"GTiff\", width=2400, height=2400, dstSRS=\"EPSG:4326\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are lots of options you can pass on to `gdal.Warp`. You can see all of them by reading the help associated with the `gdal.WarpOptions` method:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2017-10-31T12:05:14.586934Z", "start_time": "2017-10-31T12:05:14.294597Z" } }, "outputs": [], "source": [ "import gdal\n", "gdal.WarpOptions?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using command line tools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The easiest way to reproject a raster file is to use GDAL's [`gdalwarp`](http://www.gdal.org/gdalwarp.html) tool. As an example, let's say we want to reproject the landcover file from earlier on into latitude/longitude (WGS84):" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:36.059884Z", "start_time": "2017-10-30T18:03:35.968033Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ERROR 1: Output dataset lc_h17v03_wgs84.tif exists,\n", "but some command line options were provided indicating a new dataset\n", "should be created. Please delete existing dataset and run again.\n", "\n" ] } ], "source": [ "%%bash\n", "# in case you don't have library path set\n", "# use 'locate libnetcdf` or similar if its not in here\n", "LD_LIBRARY_PATH=/opt/anaconda/lib:$LD_LIBRARY_PATH\n", "export LD_LIBRARY_PATH\n", "\n", "gdalwarp -of GTiff -t_srs \"EPSG:4326\" -ts 2400 2400 test_lc_h17v03.img lc_h17v03_wgs84.tif" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see here that the command takes a number of arguments:\n", "\n", "1. `-of GTiff` is the outut format (in this case GeoTIFF)\n", "2. `-t_srs \"EPSG:4326\"` is the **to** projection (the **from** projection is already specified in the source dataset), in this case, lat/long WGS84, known by its [EPSG code](http://spatialreference.org/ref/epsg/4326/)\n", "3. `-ts 2400 2400` instructs `gdalwarp` to use an output of size `2400*2400`.\n", "3. `test_lc_h17v03.img` is the **input dataset**\n", "4. `lc_h17v03_wgs84.tif` is the **output dataset**\n", "\n", "Note that `gdalwarp` will reproject the data, and decide on the pixel size based on some considerations. This can result in the size of the raster changing. If you wanted to still keep the same raster size, we use the `-ts 2400 2400` option, or select an appropriate pixel size using `-tr xres yres` (note it has to be in the target projection, so degrees in this case). We can use `gdalinfo` to see what we've done." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:36.532357Z", "start_time": "2017-10-30T18:03:36.469958Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/ucfajlg/python/geogg122-1/Chapter4_GDAL\n", "Driver: HFA/Erdas Imagine Images (.img)\n", "Files: test_lc_h17v03.img\n", "Size is 2400, 2400\n", "Coordinate System is:\n", "PROJCS[\"Sinusoidal\",\n", " GEOGCS[\"GCS_Unknown datum based upon the custom spheroid\",\n", " DATUM[\"Not_specified_based_on_custom_spheroid\",\n", " SPHEROID[\"Custom_spheroid\",6371007.181,0],\n", " TOWGS84[0,0,0,-0,-0,-0,0]],\n", " PRIMEM[\"Greenwich\",0],\n", " UNIT[\"Degree\",0.017453292519943295]],\n", " PROJECTION[\"Sinusoidal\"],\n", " PARAMETER[\"longitude_of_center\",0],\n", " PARAMETER[\"false_easting\",0],\n", " PARAMETER[\"false_northing\",0],\n", " UNIT[\"Meter\",1]]\n", "Origin = (-1111950.519667000044137,6671703.117999999783933)\n", "Pixel Size = (463.312716527916677,-463.312716527916507)\n", "Corner Coordinates:\n", "Upper Left (-1111950.520, 6671703.118) ( 20d 0' 0.00\"W, 60d 0' 0.00\"N)\n", "Lower Left (-1111950.520, 5559752.598) ( 15d33'26.06\"W, 50d 0' 0.00\"N)\n", "Upper Right ( 0.000, 6671703.118) ( 0d 0' 0.01\"E, 60d 0' 0.00\"N)\n", "Lower Right ( 0.000, 5559752.598) ( 0d 0' 0.01\"E, 50d 0' 0.00\"N)\n", "Center ( -555975.260, 6115727.858) ( 8d43' 2.04\"W, 55d 0' 0.00\"N)\n", "Band 1 Block=64x64 Type=Byte, ColorInterp=Undefined\n", " Description = Layer_1\n", " Metadata:\n", " LAYER_TYPE=athematic\n", "\n" ] } ], "source": [ "%%bash\n", "# in case you don't have library path set\n", "# use 'locate libnetcdf` or similar if its not in here\n", "LD_LIBRARY_PATH=/opt/anaconda/lib:$LD_LIBRARY_PATH\n", "export LD_LIBRARY_PATH\n", "\n", "pwd\n", "gdalinfo test_lc_h17v03.img" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:36.594672Z", "start_time": "2017-10-30T18:03:36.534446Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Driver: GTiff/GeoTIFF\n", "Files: lc_h17v03_wgs84.tif\n", "Size is 2400, 2400\n", "Coordinate System is:\n", "GEOGCS[\"WGS 84\",\n", " DATUM[\"WGS_1984\",\n", " SPHEROID[\"WGS 84\",6378137,298.257223563,\n", " AUTHORITY[\"EPSG\",\"7030\"]],\n", " AUTHORITY[\"EPSG\",\"6326\"]],\n", " PRIMEM[\"Greenwich\",0],\n", " UNIT[\"degree\",0.0174532925199433],\n", " AUTHORITY[\"EPSG\",\"4326\"]]\n", "Origin = (-19.999999994952233,59.999999994611805)\n", "Pixel Size = (0.008333919248404,-0.004166959624202)\n", "Metadata:\n", " AREA_OR_POINT=Area\n", "Image Structure Metadata:\n", " INTERLEAVE=BAND\n", "Corner Coordinates:\n", "Upper Left ( -20.0000000, 60.0000000) ( 20d 0' 0.00\"W, 60d 0' 0.00\"N)\n", "Lower Left ( -20.0000000, 49.9992969) ( 20d 0' 0.00\"W, 49d59'57.47\"N)\n", "Upper Right ( 0.0014062, 60.0000000) ( 0d 0' 5.06\"E, 60d 0' 0.00\"N)\n", "Lower Right ( 0.0014062, 49.9992969) ( 0d 0' 5.06\"E, 49d59'57.47\"N)\n", "Center ( -9.9992969, 54.9996484) ( 9d59'57.47\"W, 54d59'58.73\"N)\n", "Band 1 Block=2400x3 Type=Byte, ColorInterp=Gray\n", " Description = Layer_1\n", " Metadata:\n", " LAYER_TYPE=athematic\n" ] } ], "source": [ "%%bash\n", "# in case you don't have library path set\n", "# use 'locate libnetcdf` or similar if its not in here\n", "LD_LIBRARY_PATH=/opt/anaconda/lib:$LD_LIBRARY_PATH\n", "export LD_LIBRARY_PATH\n", "\n", "gdalinfo lc_h17v03_wgs84.tif" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how different these two datasets are:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:38.917157Z", "start_time": "2017-10-30T18:03:37.021890Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nGIYBAPz/zj/PqaycxvEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g = gdal.Open ( \"lc_h17v03_wgs84.tif\" )\n", "wgs84 = g.ReadAsArray()\n", "g = gdal.Open(\"test_lc_h17v03.img\")\n", "modis = g.ReadAsArray()\n", "fig, axs = plt.subplots(nrows=1, ncols=2, \n", " sharex=True, sharey=True, figsize=(13, 5))\n", "\n", "axs[0].imshow ( modis, interpolation='nearest', vmin=0, cmap=plt.cm.gist_earth )\n", "axs[1].imshow ( wgs84, interpolation='nearest', vmin=0, cmap=plt.cm.gist_earth )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "1. Create a method that reprojects from a rasters original projection to an arbitrary one\n", "2. Check with e.g. the OS projection for the UK (remember the EPSG code for this is 27700)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a mask from a vector" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose in the previous example that one is only interested in Ireland. How could you ignore the pixels that don't believe to the UK? One way to go around that would be if we had a vector with the country boundaries, then we could select the pixels that fall within Ireland, and create a binary mask of the same size as our map with `True` within Ireland and `False` otherwise.\n", "\n", "Predictably, GDAL can do this. We will use a [global map of countries](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip) provided as a zipped shapefile. You can download that file using requests as here:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:42.348863Z", "start_time": "2017-10-30T18:03:39.796734Z" } }, "outputs": [], "source": [ "import requests\n", "r = requests.get (\"http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/\" +\n", " \"cultural/ne_110m_admin_0_countries.zip\")\n", "if r.ok:\n", " with open(\"data/ne_110m_admin_0_countries.zip\", 'w') as fp:\n", " fp.write(r.content)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But if you can't be bothered, you can also open [remote zipped files with GDAL](http://gdal.org/gdal_virtual_file_systems.html). Given this is a zipfile, we can use the command line tool `ogrinfo` to see the contents of the file and, in particular, the layers it contains. Basically, we build the filename as \n", "\n", "```\n", "/vsizip/vsicurl//\n", "```\n", "\n", "We get a few warnings, but..." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:50.442994Z", "start_time": "2017-10-30T18:03:42.358851Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ERROR 1: Random access not supported for /vsizip\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "ERROR 1: Random access not supported for /vsizip\n", "Warning 4: Failed to open /vsizip/vsicurl/http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp, No such file or directory.\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Had to open data source read-only.\n", "INFO: Open of `/vsizip/vsicurl/http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp'\n", " using driver `ESRI Shapefile' successful.\n", "\n", "Layer name: ne_110m_admin_0_countries\n", "Metadata:\n", " DBF_DATE_LAST_UPDATE=2017-10-04\n", "Geometry: Polygon\n", "Feature Count: 177\n", "Extent: (-180.000000, -90.000000) - (180.000000, 83.645130)\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Layer SRS WKT:\n", "GEOGCS[\"WGS84\",\n", " DATUM[\"WGS_1984\",\n", " SPHEROID[\"WGS 84\",6378137,298.257223563]],\n", " PRIMEM[\"Greenwich\",0],\n", " UNIT[\"degree\",0.017453292519943295],\n", " AUTHORITY[\"EPSG\",\"4326\"]]\n", "scalerank: Integer (4.0)\n", "featurecla: String (30.0)\n", "LABELRANK: Real (6.2)\n", "SOVEREIGNT: String (32.0)\n", "SOV_A3: String (3.0)\n", "ADM0_DIF: Real (4.2)\n", "LEVEL: Real (4.2)\n", "TYPE: String (17.0)\n", "ADMIN: String (36.0)\n", "ADM0_A3: String (3.0)\n", "GEOU_DIF: Real (4.2)\n", "GEOUNIT: String (36.0)\n", "GU_A3: String (3.0)\n", "SU_DIF: Real (4.2)\n", "SUBUNIT: String (36.0)\n", "SU_A3: String (3.0)\n", "BRK_DIFF: Real (4.2)\n", "NAME: String (36.0)\n", "NAME_LONG: String (36.0)\n", "BRK_A3: String (3.0)\n", "BRK_NAME: String (36.0)\n", "BRK_GROUP: String (30.0)\n", "ABBREV: String (13.0)\n", "POSTAL: String (4.0)\n", "FORMAL_EN: String (52.0)\n", "FORMAL_FR: String (35.0)\n", "NAME_CIAWF: String (45.0)\n", "NOTE_ADM0: String (22.0)\n", "NOTE_BRK: String (164.0)\n", "NAME_SORT: String (36.0)\n", "NAME_ALT: String (38.0)\n", "MAPCOLOR7: Real (4.2)\n", "MAPCOLOR8: Real (4.2)\n", "MAPCOLOR9: Real (4.2)\n", "MAPCOLOR13: Real (6.2)\n", "POP_EST: Real (13.2)\n", "POP_RANK: Real (5.2)\n", "GDP_MD_EST: Real (11.2)\n", "POP_YEAR: Real (7.2)\n", "LASTCENSUS: Real (7.2)\n", "GDP_YEAR: Real (7.2)\n", "ECONOMY: String (26.0)\n", "INCOME_GRP: String (23.0)\n", "WIKIPEDIA: Real (6.2)\n", "FIPS_10_: String (3.0)\n", "ISO_A2: String (5.0)\n", "ISO_A3: String (3.0)\n", "ISO_A3_EH: String (3.0)\n", "ISO_N3: String (3.0)\n", "UN_A3: String (4.0)\n", "WB_A2: String (3.0)\n", "WB_A3: String (3.0)\n", "WOE_ID: Real (11.2)\n", "WOE_ID_EH: Real (11.2)\n", "WOE_NOTE: String (190.0)\n", "ADM0_A3_IS: String (3.0)\n", "ADM0_A3_US: String (3.0)\n", "ADM0_A3_UN: Real (6.2)\n", "ADM0_A3_WB: Real (6.2)\n", "CONTINENT: String (23.0)\n", "REGION_UN: String (23.0)\n", "SUBREGION: String (25.0)\n", "REGION_WB: String (26.0)\n", "NAME_LEN: Real (5.2)\n", "LONG_LEN: Real (5.2)\n", "ABBREV_LEN: Real (5.2)\n", "TINY: Real (6.2)\n", "HOMEPART: Real (6.2)\n", "MIN_ZOOM: Real (6.2)\n", "MIN_LABEL: Real (6.2)\n", "MAX_LABEL: Real (6.2)\n" ] } ], "source": [ "!ogrinfo -al -so \\\n", " /vsizip/vsicurl/http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that we can basically filter when the `NAME` attribute is equal to the country name. On the shell, we can see what information is available on ireland by filtering:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:57.427922Z", "start_time": "2017-10-30T18:03:50.448275Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ERROR 1: Random access not supported for /vsizip\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "ERROR 1: Random access not supported for /vsizip\n", "Warning 4: Failed to open /vsizip/vsicurl/http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp, No such file or directory.\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Had to open data source read-only.\n", "INFO: Open of `/vsizip/vsicurl/http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp'\n", " using driver `ESRI Shapefile' successful.\n", "\n", "Layer name: ne_110m_admin_0_countries\n", "Metadata:\n", " DBF_DATE_LAST_UPDATE=2017-10-04\n", "Geometry: Polygon\n", "Feature Count: 1\n", "Extent: (-180.000000, -90.000000) - (180.000000, 83.645130)\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Warning 1: Recode from CP437 to UTF-8 failed with the error: \"Invalid argument\".\n", "Layer SRS WKT:\n", "GEOGCS[\"WGS84\",\n", " DATUM[\"WGS_1984\",\n", " SPHEROID[\"WGS 84\",6378137,298.257223563]],\n", " PRIMEM[\"Greenwich\",0],\n", " UNIT[\"degree\",0.017453292519943295],\n", " AUTHORITY[\"EPSG\",\"4326\"]]\n", "scalerank: Integer (4.0)\n", "featurecla: String (30.0)\n", "LABELRANK: Real (6.2)\n", "SOVEREIGNT: String (32.0)\n", "SOV_A3: String (3.0)\n", "ADM0_DIF: Real (4.2)\n", "LEVEL: Real (4.2)\n", "TYPE: String (17.0)\n", "ADMIN: String (36.0)\n", "ADM0_A3: String (3.0)\n", "GEOU_DIF: Real (4.2)\n", "GEOUNIT: String (36.0)\n", "GU_A3: String (3.0)\n", "SU_DIF: Real (4.2)\n", "SUBUNIT: String (36.0)\n", "SU_A3: String (3.0)\n", "BRK_DIFF: Real (4.2)\n", "NAME: String (36.0)\n", "NAME_LONG: String (36.0)\n", "BRK_A3: String (3.0)\n", "BRK_NAME: String (36.0)\n", "BRK_GROUP: String (30.0)\n", "ABBREV: String (13.0)\n", "POSTAL: String (4.0)\n", "FORMAL_EN: String (52.0)\n", "FORMAL_FR: String (35.0)\n", "NAME_CIAWF: String (45.0)\n", "NOTE_ADM0: String (22.0)\n", "NOTE_BRK: String (164.0)\n", "NAME_SORT: String (36.0)\n", "NAME_ALT: String (38.0)\n", "MAPCOLOR7: Real (4.2)\n", "MAPCOLOR8: Real (4.2)\n", "MAPCOLOR9: Real (4.2)\n", "MAPCOLOR13: Real (6.2)\n", "POP_EST: Real (13.2)\n", "POP_RANK: Real (5.2)\n", "GDP_MD_EST: Real (11.2)\n", "POP_YEAR: Real (7.2)\n", "LASTCENSUS: Real (7.2)\n", "GDP_YEAR: Real (7.2)\n", "ECONOMY: String (26.0)\n", "INCOME_GRP: String (23.0)\n", "WIKIPEDIA: Real (6.2)\n", "FIPS_10_: String (3.0)\n", "ISO_A2: String (5.0)\n", "ISO_A3: String (3.0)\n", "ISO_A3_EH: String (3.0)\n", "ISO_N3: String (3.0)\n", "UN_A3: String (4.0)\n", "WB_A2: String (3.0)\n", "WB_A3: String (3.0)\n", "WOE_ID: Real (11.2)\n", "WOE_ID_EH: Real (11.2)\n", "WOE_NOTE: String (190.0)\n", "ADM0_A3_IS: String (3.0)\n", "ADM0_A3_US: String (3.0)\n", "ADM0_A3_UN: Real (6.2)\n", "ADM0_A3_WB: Real (6.2)\n", "CONTINENT: String (23.0)\n", "REGION_UN: String (23.0)\n", "SUBREGION: String (25.0)\n", "REGION_WB: String (26.0)\n", "NAME_LEN: Real (5.2)\n", "LONG_LEN: Real (5.2)\n", "ABBREV_LEN: Real (5.2)\n", "TINY: Real (6.2)\n", "HOMEPART: Real (6.2)\n", "MIN_ZOOM: Real (6.2)\n", "MIN_LABEL: Real (6.2)\n", "MAX_LABEL: Real (6.2)\n", "OGRFeature(ne_110m_admin_0_countries):74\n", " scalerank (Integer) = 1\n", " featurecla (String) = Admin-0 country\n", " LABELRANK (Real) = 3.00\n", " SOVEREIGNT (String) = Ireland\n", " SOV_A3 (String) = IRL\n", " ADM0_DIF (Real) = 0.00\n", " LEVEL (Real) = 2.00\n", " TYPE (String) = Sovereign country\n", " ADMIN (String) = Ireland\n", " ADM0_A3 (String) = IRL\n", " GEOU_DIF (Real) = 0.00\n", " GEOUNIT (String) = Ireland\n", " GU_A3 (String) = IRL\n", " SU_DIF (Real) = 0.00\n", " SUBUNIT (String) = Ireland\n", " SU_A3 (String) = IRL\n", " BRK_DIFF (Real) = 0.00\n", " NAME (String) = Ireland\n", " NAME_LONG (String) = Ireland\n", " BRK_A3 (String) = IRL\n", " BRK_NAME (String) = Ireland\n", " BRK_GROUP (String) = (null)\n", " ABBREV (String) = Ire.\n", " POSTAL (String) = IRL\n", " FORMAL_EN (String) = Ireland\n", " FORMAL_FR (String) = (null)\n", " NAME_CIAWF (String) = Ireland\n", " NOTE_ADM0 (String) = (null)\n", " NOTE_BRK (String) = (null)\n", " NAME_SORT (String) = Ireland\n", " NAME_ALT (String) = (null)\n", " MAPCOLOR7 (Real) = 2.00\n", " MAPCOLOR8 (Real) = 3.00\n", " MAPCOLOR9 (Real) = 2.00\n", " MAPCOLOR13 (Real) = 2.00\n", " POP_EST (Real) = 5011102.00\n", " POP_RANK (Real) = 13.00\n", " GDP_MD_EST (Real) = 322000.00\n", " POP_YEAR (Real) = 2017.00\n", " LASTCENSUS (Real) = 2011.00\n", " GDP_YEAR (Real) = 2016.00\n", " ECONOMY (String) = 2. Developed region: nonG7\n", " INCOME_GRP (String) = 1. High income: OECD\n", " WIKIPEDIA (Real) = -99.00\n", " FIPS_10_ (String) = EI\n", " ISO_A2 (String) = IE\n", " ISO_A3 (String) = IRL\n", " ISO_A3_EH (String) = IRL\n", " ISO_N3 (String) = 372\n", " UN_A3 (String) = 372\n", " WB_A2 (String) = IE\n", " WB_A3 (String) = IRL\n", " WOE_ID (Real) = 23424803.00\n", " WOE_ID_EH (Real) = 23424803.00\n", " WOE_NOTE (String) = Exact WOE match as country\n", " ADM0_A3_IS (String) = IRL\n", " ADM0_A3_US (String) = IRL\n", " ADM0_A3_UN (Real) = -99.00\n", " ADM0_A3_WB (Real) = -99.00\n", " CONTINENT (String) = Europe\n", " REGION_UN (String) = Europe\n", " SUBREGION (String) = Northern Europe\n", " REGION_WB (String) = Europe & Central Asia\n", " NAME_LEN (Real) = 7.00\n", " LONG_LEN (Real) = 7.00\n", " ABBREV_LEN (Real) = 4.00\n", " TINY (Real) = -99.00\n", " HOMEPART (Real) = 1.00\n", " MIN_ZOOM (Real) = 0.00\n", " MIN_LABEL (Real) = 3.00\n", " MAX_LABEL (Real) = 8.00\n", " POLYGON ((-7.57216793459106 55.1316222194549,-7.36603064617879 54.5958409694527,-7.57216793459106 54.059956366586,-6.95373023113807 54.0737022975756,-6.19788489422103 53.8675650091634,-6.03298539877761 53.1531641709444,-6.78885657391085 52.2601179062923,-8.56161658368356 51.6693012558994,-9.97708574059027 51.8204548203531,-9.16628251793078 52.8646288112427,-9.68852454267245 53.8813626165853,-8.32798743329201 54.6645189479686,-7.57216793459106 55.1316222194549))\n", "\n" ] } ], "source": [ "!ogrinfo -al -where \"NAME='IRELAND'\" \\\n", " /vsizip/vsicurl/http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The associated polygon is a polygon describing the borders of Ireland. We want to rasterise that polygon to provide a mask for e.g. `lc_h17v03_wgs84.tif` (the Lat/Long projection you created earlier). To do this, we need to extract information about\n", "\n", "1. The projection of the raster\n", "2. The extent of the raster\n", "3. The number of rows and columns\n", "4. A value for pixels outside our region of interest (say 0)\n", "5. A value for pixels inside our region of itnerest (say 1)\n", "\n", "We will extract the relevant information in what follows\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:57.513108Z", "start_time": "2017-10-30T18:03:57.435640Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done!\n" ] } ], "source": [ "g = gdal.Open(\"lc_h17v03_wgs84.tif\")\n", "proj = g.GetProjectionRef()\n", "geoT = g.GetGeoTransform()\n", "xs = []\n", "ys = []\n", "for x,y in [ [0, 0], [0, g.RasterYSize], [g.RasterXSize, g.RasterYSize], [g.RasterXSize, 0]]:\n", " xx, yy = gdal.ApplyGeoTransform(geoT, x,y)\n", " xs.append(xx)\n", " ys.append(yy)\n", "extent = [min(xs), min(ys), max(xs), max(ys)]\n", "xRes = geoT[1]\n", "yRes = geoT[-1]\n", "nx = g.RasterXSize\n", "ny = g.RasterYSize\n", "\n", "gg = gdal.Rasterize(\"data/lc_h17v03_wgs84_ireland.tif\", \"/vsizip/\" +\n", " \"data/ne_110m_admin_0_countries.zip/ne_110m_admin_0_countries.shp\",\n", " format=\"GTiff\", xRes=xRes, yRes=yRes, where=\"NAME='Ireland'\",\n", " outputBounds=[min(xs), min(ys), max(xs), max(ys)], \n", " width=nx, height=ny, noData=0, burnValues=1)\n", "if gg is not None:\n", " print \"Done!\"" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:03:59.478458Z", "start_time": "2017-10-30T18:03:57.515926Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mask = gg.ReadAsArray()\n", "g = gdal.Open ( \"lc_h17v03_wgs84.tif\" )\n", "wgs84 = g.ReadAsArray()\n", "\n", "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(13,5))\n", "axs[0].imshow(mask, interpolation=\"nearest\")\n", "axs[1].imshow((1.*mask)*wgs84, interpolation=\"nearest\", cmap=plt.cm.gist_earth)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That was using the lowest resolution map. Let's use something a bit better... There's a higher resolution map available from \n", "[]http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip). We'll download it if it's not available in your `data/` folder, and do the same as above.." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2017-10-30T18:04:01.539824Z", "start_time": "2017-10-30T18:03:59.493250Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done!\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import os\n", "if not os.path.exists(\"data/ne_50m_admin_0_countries.zip\"):\n", " r = requests.get (\"http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/\"\n", " + \"cultural/ne_50m_admin_0_countries.zip\")\n", " if r.ok:\n", " with open(\"data/ne_50m_admin_0_countries.zip\", 'w') as fp:\n", " fp.write(r.content)\n", "g = gdal.Open(\"lc_h17v03_wgs84.tif\")\n", "proj = g.GetProjectionRef()\n", "geoT = g.GetGeoTransform()\n", "xs = []\n", "ys = []\n", "for x,y in [ [0, 0], [0, g.RasterYSize], [g.RasterXSize, g.RasterYSize], [g.RasterXSize, 0]]:\n", " xx, yy = gdal.ApplyGeoTransform(geoT, x,y)\n", " xs.append(xx)\n", " ys.append(yy)\n", "extent = [min(xs), min(ys), max(xs), max(ys)]\n", "xRes = geoT[1]\n", "yRes = geoT[-1]\n", "nx = g.RasterXSize\n", "ny = g.RasterYSize\n", "\n", "\n", "gg = gdal.Rasterize(\"data/lc_h17v03_wgs84_ireland.tif\", \"/vsizip/\" +\n", " \"data/ne_50m_admin_0_countries.zip/ne_50m_admin_0_countries.shp\",\n", " format=\"GTiff\", xRes=xRes, yRes=yRes, where=\"NAME='Ireland'\",\n", " outputBounds=[min(xs), min(ys), max(xs), max(ys)], \n", " width=nx, height=ny, noData=0, burnValues=1)\n", "if gg is not None:\n", " print \"Done!\"\n", " \n", "mask = gg.ReadAsArray()\n", "g = gdal.Open ( \"lc_h17v03_wgs84.tif\" )\n", "wgs84 = g.ReadAsArray()\n", "\n", "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(13,5))\n", "axs[0].imshow(mask, interpolation=\"nearest\")\n", "axs[1].imshow((1.*mask)*wgs84, interpolation=\"nearest\", cmap=plt.cm.gist_earth)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" }, "latex_envs": { "LaTeX_envs_menu_present": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": true, "latex_user_defs": false, "report_style_numbering": true, "user_envs_cfg": false }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "toc_cell": true, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }