{"id":2615,"date":"2020-07-23T10:41:59","date_gmt":"2020-07-22T22:41:59","guid":{"rendered":"http:\/\/blogs.lincoln.ac.nz\/gis\/?p=2615"},"modified":"2023-05-07T03:16:13","modified_gmt":"2023-05-07T03:16:13","slug":"sosc301-web-app-part-1","status":"publish","type":"post","link":"https:\/\/blogs.lincoln.ac.nz\/gis\/sosc301-web-app-part-1\/","title":{"rendered":"SOSC301 Web App &#8211; Part 1"},"content":{"rendered":"<p><em>This is part 1 of the process of creating a web map based field data collection app that will run on smartphones for a SOSC301 field trip.\u00a0 In this post we set the specifications for the app and think through the data needed.\u00a0 Along the way we use mosaic datasets, batch processing and a quick ModelBuilder model.<\/em><\/p>\n<p>SOSC301 is planning a field trip for the mid-semester break; they&#8217;ll be travelling to <a href=\"https:\/\/thisnzlife.co.nz\/hard-work-and-scenic-views-high-country-sheep-farmers-will-and-ems-murray-are-earning-the-good-life-at-glenmore-station\/\" target=\"_blank\" rel=\"noopener noreferrer\">Glenmore Station<\/a> on the banks of beautiful Lake Tekapo to do some soil sampling.\u00a0 \u00a0On the trip they&#8217;re aiming to collect data in the field from soil pits and augering, and then later construct a high resolution soil map from those data.\u00a0 Wouldn&#8217;t it be nice if we could set up a <a href=\"http:\/\/blogs.lincoln.ac.nz\/gis\/dont-let-that-dragonfly-get-away-offline-mapping-in-vanuatu\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-wplink-edit=\"true\">mapping app<\/a> to collect their field data?\u00a0 GIS is here to help!\u00a0 In this and a few subsequent posts, we&#8217;ll work through the development and deployment of this app and then how the data get used afterwards.\u00a0 Here we&#8217;ll go over the specifications and start compiling the data for this app.<\/p>\n<p><strong>App Specifications<\/strong><\/p>\n<p>As a first step, Peter Almond and I had a chat about what the app needed to do.\u00a0 It&#8217;s aim is to provide the students with some spatial context about things like terrain and climate and also have the capability to capture field data entered by the students.<\/p>\n<p>We started our discussion by generating a list of the layers he wanted displayed in the app.\u00a0 I&#8217;ll list these below with tentative thoughts about which layers will suit and where they will come from:<\/p>\n<table style=\"height: 486px\" width=\"541\">\n<tbody>\n<tr>\n<td style=\"width: 162px\"><strong>Data<\/strong><\/td>\n<td style=\"width: 163px\"><strong>Layer<\/strong><\/td>\n<td style=\"width: 164px\"><strong>Data Source<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Geology<\/td>\n<td style=\"width: 163px\"><a href=\"https:\/\/www.gns.cri.nz\/Home\/Our-Science\/Land-and-Marine-Geoscience\/Regional-Geology\/Geological-Maps\/1-250-000-Geological-Map-of-New-Zealand-QMAP\" target=\"_blank\" rel=\"noopener noreferrer\">QMAP<\/a>\u00a0(faults and geological units)<\/td>\n<td style=\"width: 164px\">J: drive (from GNS)<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Glacial Geomorphology<\/td>\n<td style=\"width: 163px\"><a href=\"http:\/\/shop.gns.cri.nz\/mon27\/\" target=\"_blank\" rel=\"noopener noreferrer\">CSIGG<\/a>\u00a0(Glacial Geomorphology of the central South Island<\/td>\n<td style=\"width: 164px\">J: drive (from GNS)<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Climate<\/td>\n<td style=\"width: 163px\"><a href=\"https:\/\/niwa.co.nz\/climate\/research-projects\/national-and-regional-climate-maps\" target=\"_blank\" rel=\"noopener noreferrer\">NZ Climate Grids<\/a>\u00a0(precipitation, temperature and soil moisture deficit days)<\/td>\n<td style=\"width: 164px\">J: drive (from NIWA)<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Elevation<\/td>\n<td style=\"width: 163px\"><a href=\"https:\/\/data.linz.govt.nz\/layer\/99231-canterbury-lidar-1m-dem-2016\/\" target=\"_blank\" rel=\"noopener noreferrer\">1 m LiDAR DEM<\/a><\/td>\n<td style=\"width: 164px\"><a href=\"https:\/\/data.linz.govt.nz\/\" target=\"_blank\" rel=\"noopener noreferrer\">LINZ Data Service<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Slope<\/td>\n<td style=\"width: 163px\">\u00a0Derive from DEM<\/td>\n<td style=\"width: 164px\">Downloaded DEM<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Aspect<\/td>\n<td style=\"width: 163px\">Derive from DEM<\/td>\n<td style=\"width: 164px\">Downloaded DEM<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 162px\">Hillshade<\/td>\n<td style=\"width: 163px\">Derive from DEM<\/td>\n<td style=\"width: 164px\">Downloaded DEM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Compiling the Data<\/strong><\/p>\n<p>With a good idea of where the data will come from, I next needed an area to work with &#8211; what are the station boundaries?\u00a0 Peter sent me this map from the Crown Pastoral Land Tenure Review for Glenmore Station (released under the Official Information Act), which shows the station extent:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/TenureReview.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2616\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/TenureReview.jpg\" alt=\"\" width=\"525\" height=\"738\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/TenureReview.jpg 525w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/TenureReview-213x300.jpg 213w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p>That gives me a good place to start &#8211; all the data for the app will be somewhere inside this boundary.\u00a0 This being a PDF, it&#8217;s useful as a visual guide but to get started I&#8217;ll need a polygon that explicitly has this boundary for clipping.\u00a0 I could use the PDF as a basemap and digitise in my own boundary, but I suspect the data are available on one of the <a href=\"http:\/\/blogs.lincoln.ac.nz\/gis\/the-data-i-need-arent-on-the-j-drive\/\" target=\"_blank\" rel=\"noopener noreferrer\">online data portals<\/a>.\u00a0 The search begins on <a href=\"http:\/\/koordinates.com\" target=\"_blank\" rel=\"noopener noreferrer\">Koordinates.com<\/a>, where I find a layer of NZ <a href=\"https:\/\/koordinates.com\/from\/data.linz.govt.nz\/layer\/50804\/\" target=\"_blank\" rel=\"noopener noreferrer\">Property Titles<\/a>.\u00a0 Zooming in to the area around Lake Tekapo, I can see the polygon that defines the station boundary.<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Glenmore.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2617\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Glenmore.jpg\" alt=\"\" width=\"1439\" height=\"828\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Glenmore.jpg 1439w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Glenmore-300x173.jpg 300w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Glenmore-1024x589.jpg 1024w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Glenmore-768x442.jpg 768w\" sizes=\"auto, (max-width: 1439px) 100vw, 1439px\" \/><\/a><\/p>\n<p>After cropping the extent and downloading the layer as a shapefile, I&#8217;ve added it to a map in Pro:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/ShapefileOnMap.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2618\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/ShapefileOnMap.jpg\" alt=\"\" width=\"1237\" height=\"705\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/ShapefileOnMap.jpg 1237w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/ShapefileOnMap-300x171.jpg 300w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/ShapefileOnMap-1024x584.jpg 1024w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/ShapefileOnMap-768x438.jpg 768w\" sizes=\"auto, (max-width: 1237px) 100vw, 1237px\" \/><\/a><\/p>\n<p>Next I&#8217;ll just select the Glenmore polygon and export it into my project geodatabase (this eliminates the other property polygons) &#8211; I can then use this boundary to clip out all the other layers I will need for the app:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Boundary.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2619\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Boundary.jpg\" alt=\"\" width=\"1178\" height=\"704\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Boundary.jpg 1178w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Boundary-300x179.jpg 300w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Boundary-1024x612.jpg 1024w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Boundary-768x459.jpg 768w\" sizes=\"auto, (max-width: 1178px) 100vw, 1178px\" \/><\/a><\/p>\n<p>Now I&#8217;m ready to start collating the data.\u00a0 Most of what I need is on the J: drive so I&#8217;ll just need to clip them to the station boundary.\u00a0 The elevation data are a bit problematic &#8211; there are some LiDAR data on the LINZ data service as shown below.\u00a0 I&#8217;m only interested in the areas that are within the station so I&#8217;ve\u00a0cropped the extent, as shown below (reducing the download from 6.8 Gb to 146 Mb):<\/p>\n<p><a href=\"https:\/\/data.linz.govt.nz\/layer\/99231-canterbury-lidar-1m-dem-2016\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2621 size-full\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/DEMCrop.jpg\" alt=\"\" width=\"1440\" height=\"825\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/DEMCrop.jpg 1440w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/DEMCrop-300x172.jpg 300w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/DEMCrop-1024x587.jpg 1024w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/DEMCrop-768x440.jpg 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><\/p>\n<p>When downloaded from LINZ the DEM comes as a\u00a0collection of\u00a0266 TIFF files and associated files.\u00a0<a href=\"http:\/\/blogs.lincoln.ac.nz\/gis\/keeping-your-feet-dry-with-mosaic-datasets\/\" target=\"_blank\" rel=\"noopener noreferrer\"> We&#8217;ve seen this before<\/a> &#8211; when downloading rasters from the online data portals, they are typically broken down into tiles which need to be restitched together into one layer in a mosaic dataset.\u00a0 Not difficult, but a bit time consuming.\u00a0 After mosaicing, we go from\u00a0266 individual DEMs to one single layer:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/mosaic.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2628\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/mosaic.jpg\" alt=\"\" width=\"660\" height=\"493\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/mosaic.jpg 660w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/mosaic-300x224.jpg 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a><\/p>\n<p><em>(Okay, so not a visually stunning image&#8230;the elevations vary between ~913 and ~931 m.a.s.l in this extent so no dramatic variation, but I hope you get the idea.\u00a0 When we do a <a href=\"http:\/\/blogs.lincoln.ac.nz\/gis\/a-shady-topic-hillshade-layers\/\" target=\"_blank\" rel=\"noopener noreferrer\">hillshade <\/a>layer later on we&#8217;ll see a lot more detail, methinks.\u00a0 And, yes, this only covers one small portion of the station but Peter&#8217;s happy with that.)<\/em><\/p>\n<p><strong>Clipping the Data<\/strong><\/p>\n<p>Now we&#8217;re ready to clip all the data.<\/p>\n<p>I could go through and clip each layer one by one, but there will no doubt be a lot of pointing and clicking and waiting around, so I chose to\u00a0do some batch processing for the clipping.\u00a0\u00a0With a mixture of vector and raster layers I&#8217;ll need to run two tools, C<a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/tool-reference\/analysis\/clip.htm\" target=\"_blank\" rel=\"noopener noreferrer\">lip <\/a>and <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/tool-reference\/data-management\/clip.htm\">C<\/a><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/tool-reference\/data-management\/clip.htm\" target=\"_blank\" rel=\"noopener noreferrer\">lip Raster<\/a>.\u00a0 Not many people are aware that several key tools allow you to do batch processing &#8211; both of these do.<\/p>\n<p>To set this up, find the tool of interest either by searching for it or finding it in the right toolbox.\u00a0 In the image below, I&#8217;ve searched on &#8220;Clip&#8221; in the Geoprocessing pane and then right-clicked on the tool in the results:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchClip.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2645\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchClip.jpg\" alt=\"\" width=\"300\" height=\"377\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchClip.jpg 300w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchClip-239x300.jpg 239w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>One of the options in &#8220;Batch&#8221; and in the resulting pane I can specify the clip layer and all the layers to be clipped:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchSetup2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2634\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchSetup2.jpg\" alt=\"\" width=\"258\" height=\"356\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchSetup2.jpg 258w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/BatchSetup2-217x300.jpg 217w\" sizes=\"auto, (max-width: 258px) 100vw, 258px\" \/><\/a><\/p>\n<p>With Pro, any outputs are automatically saved to the default geodatabase (the one ending in .gdb) &#8211; notice the &#8220;Glenmore_%Name%&#8221; in the Output Feature Class window.\u00a0 &#8220;%&#8221; is a wildcard symbol and what it means here is that the clipped output will be named staring with &#8220;Glenmore_&#8221; and then appended with the same name as the input layer.<\/p>\n<p>Same deal for the batch raster clip:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/RasterClip.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2636 alignleft\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/RasterClip.jpg\" alt=\"\" width=\"258\" height=\"513\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/RasterClip.jpg 258w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/RasterClip-151x300.jpg 151w\" sizes=\"auto, (max-width: 258px) 100vw, 258px\" \/><\/a><\/p>\n<p>All the input rasters here<\/p>\n<p>Outputs will have &#8220;Glenmore_&#8221; appended to the input raster name<\/p>\n<p><span style=\"color: #ff0000\"><strong>Important to tick these two so the output extent matches the polygon boundary!<\/strong><\/span><\/p>\n<p>Now that I&#8217;ve got a clipped DEM there&#8217;s one more\u00a0 task &#8211; deriving Slope, Aspect and a Hillshade.\u00a0 I&#8217;ll set up a quick little <a href=\"http:\/\/blogs.lincoln.ac.nz\/gis\/flow-diagrams-that-work\/\" target=\"_blank\" rel=\"noopener noreferrer\">ModelBuilder<\/a> model to do this:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/terrain.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2637\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/terrain.jpg\" alt=\"\" width=\"433\" height=\"332\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/terrain.jpg 433w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/terrain-300x230.jpg 300w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/a><\/p>\n<p>After running this model I think I&#8217;ve got all the layers I need for the app.\u00a0 Interestingly, even though the elevations across the LiDAR extent don&#8217;t vary by much, the hillshade shows us the terrain really nicely:<\/p>\n<p><a href=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Hillshade.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2640\" src=\"https:\/\/d-blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Hillshade.jpg\" alt=\"\" width=\"478\" height=\"611\" srcset=\"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Hillshade.jpg 478w, https:\/\/blogs.lincoln.ac.nz\/gis\/wp-content\/uploads\/sites\/3\/2020\/07\/Hillshade-235x300.jpg 235w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/a><\/p>\n<p>Glacial moraine anyone?\u00a0 As a next step, I&#8217;ll work through symbolising everything and get ready to set these up as web services &#8211; tune in next week for all that.<\/p>\n<p>C<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is part 1 of the process of creating a web map based field data collection app that will run on smartphones for a SOSC301 field trip.\u00a0 In this post we set the specifications for the app and think through the data needed.\u00a0 Along the way we use mosaic datasets, batch processing and a quick [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2615","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/posts\/2615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/comments?post=2615"}],"version-history":[{"count":2,"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/posts\/2615\/revisions"}],"predecessor-version":[{"id":4099,"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/posts\/2615\/revisions\/4099"}],"wp:attachment":[{"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/media?parent=2615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/categories?post=2615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.lincoln.ac.nz\/gis\/wp-json\/wp\/v2\/tags?post=2615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}