Showing posts with label GIS5100. Show all posts
Showing posts with label GIS5100. Show all posts

Friday, August 12, 2022

Applications in GIS - M6 Suitability Analysis

Suitability analysis for development in the Applegate. More suitable areas are ranked higher (green), and less suitable areas are ranked lower (red).

In the first section of this lab, we learned the principles of combining several reclassified rasters with the Cost Distance, Cost Path, and Corridor tools to determine suitability and least-cost paths. 

For this development scenario we were given rasters for landcover, elevation, and soil types as well as shapefiles for roads and rivers, then asked to help a developer determine sites for potential development based on suitability. The hypothetical developer preferred certain soil types that were good for building and wanted to be close to roads but further from rivers and wetlands, as well as avoid construction on steep slopes. 

The first step was using the Euclidean distance tool to create rasters of the rivers and roads where cell values would be representative of the distance to those features. This would allow them to be reclassified later with areas further from rivers ranked higher, and far from road access ranked low. I also used the Slope tool on the elevation digital elevation model, so that cells in the new elevation-related raster were representative of the land slope, rather than height. 

With 5 comparable rasters, I ran the Reclassify tool on each with a scale of 1-5, ranking desirable factors like grassland landcover high and undesirable factors like sandy soil low. Once all the rasters were reclassified I used the Weighted Overlay tool to combine them, first with all suitability rasters having an equal weighting, then again with slope having a higher weighting and distance to roads and streams having less weighting. This makes some sense for development, as the trade-offs of being closer to a river or further from main roads are more easily addressed than the trade-offs for trying to build on steep slopes. 

With the weighting adjusted more land was available as suitable for development, particularly land in the valley area, closer to rivers and streams. 

Applications in GIS - M6 Corridor Analysis

 

Final corridor analysis map from this lab determined with several habitat inputs.

In this lab students were asked to take on the role of park rangers and determine the corridors likely to be utilized by black bears moving between two sections of the Coronado National Forest. We were provided with layers for landcover and elevation, as well as shapefiles of the roads and forest boundaries. 

For my analysis I first checked that all raster datasets were in meters, then used the Euclidean Distance tool to convert the roads shapefile to a raster where cell values were distance to the road. From here I had three comparable rasters for analysis. 

I used the Reclassify tool on the roads, elevation, and landcover rasters to convert their values to ranks from 1-10 on how attractive the cell would be to black bears. Cells close to roads were ranked low, while in landcover any cell values that indicated forest and vegetation ranked high and human development ranked low. Since the assignment indicated black bears prefer mid-elevations, elevation values between 1200 and 2000 meters were ranked high and elevation values below and far above that ranked lower. 

With these three rasters all reclassified, I could now combine them with the Weighted Overlay tool. This tool combines raster values based on an optional weighting, and in this case landcover was weighted higher than elevation and road proximity. The resulting raster had cells containing values 1 to 9, with 1 being least suitable bear habitat and values closer to 10 being most suitable bear habitat.

Suitability raster, green values are those more suitable for black bears.

Unfortunately the Corridor tool uses a cost surface, not a suitability surface, so the sutability raster had to be "inverted" to a cost raster, using the Minus tool. By subtracting the raster from 10, all low ranking places became high cost cells, and previously suitable cells now displayed as low cost. 

Cost raster, inverted from the suitability rankings, darker red areas are higher cost, the forest shapefiles are drawn in light green. 

To conduct a corridor analysis between the two forest areas, I used the Cost Distance tool with this new cost surface raster, once with the northern Coronado section as the source, and once with the southern Coronado section as the source. This resulted in two rasters that displayed the cost over distance emanating from each forest section. Backlink was not important for this corridor analysis, so it was not included. I combined both of these cost distance rasters into one by running the Corridor tool, which automatically determines the least-cost corridor based on two cost rasters. 

Corridor raster displaying the least-cost corridors between the two forest shapefiles.

I explored the corridor raster and found the minimum cost value, then multiplied that value by 1.03, 1.05, and 1.10 and compared results before finally selecting the 5% corridor as my final wildlife corridor. This seemed the best balance between connectivity and space allocation, and I adjusted the symbology accordingly. 


Friday, August 5, 2022

Applications in GIS - M5 Damage Assessment

 One of the most important steps in natural disaster response is the damage assessment; this analysis allows responders to scale the resources needed to assist and is the first step in getting a return from insurance and rebuilding aid allocated. 

The track of hurricane Sandy as it approached New Jersey, the icon color signifies storm intensity with red being Category 2 and green being Post-Tropical

When Hurricane Sandy hit the east coast of the US in October 2012, it came with high winds and a 9-foot storm surge that was augmented with waves and high tide in coastal areas. The assessment that followed was completed by FEMA contracting agencies, USGS, NOAA, and third parties. In this lab, we simulated a scenario, acting as one of those analysts to determine structural damage in the wake of hurricane Sandy storm surge. 

Mosaic files with imagery showing the New Jersey coast both before and after the storm

After creating hurricane track maps for context and developing a civilian self-reporting damage assessment in Survey 123, I loaded pre and post storm rasters into ArcPro as mosaic datasets, and used Swipe and Flicker mode to toggle between them. 

For the analysis, it was important to have constrained values - this means there were a limited number of acceptable values in the damage assessment, and helps standardize the way the damage is classified. To do this, I created the four domains Inundation, Structure Damage, Wind Damage, and Structure Type. The two damage domains were floats and had codes of 0 = No damage, 1 = Affected, 2 = Minor Damage, 3 = Major Damage, 4 = Destroyed. Inundation was a binary 0  = No, 1 = yes option, and Structure Type included the four values Residential, Government, Industrial, and Unknown. 

With these Attribute Domains created, I added a feature class to the Map with the same Damage, Inundation, and Structure Type fields. Once the layer was added, I was able to set the domains as the constrained attribute domains I had created in the Data Design dialogue. This successfully created a point feature class where the attributes could be selected from among the damage classes I created. 

The constrained fields that allow limited selection of attributes during structural assessment

At this point, by zooming into the mosaic imagery and examining property parcels, I used the Create Feature ability to add points to each structure; selecting as they were added whether that structure appeared to have structural damage, wind damage, or inundation, and classifying the structure type as the point was placed. This analysis was somewhat challenging; determining whether a building suffered minor or major damage based only on aerial imagery felt like a very subjective analysis. Additional data like vegetation surveys and elevation overlay would have helped make this more comprehensive.

Results of the damage assessment, with symbology indicating the degree of damage.

With a full set of categorized points providing structural damage assessment, I then added a polyline feature class and delineated the coastline. This allowed further analysis with the Buffer tool for how far different impacted structures were from the coastline. 

Overall, structures closer to the coast were more likely to be destroyed or have major damage, while structures further from the coast had a greater diversity of storm impacts.  


Tuesday, August 2, 2022

Applications in GIS - M4 Coastal Flooding

 For our fourth lab in this course we examined coastal flooding from tropical events utilizing digital elevation models. These models for sites in New Jersey and South Florida were provided, and we used spatial and three dimensional analysis to determine areas most impacted, initial damage, and make predictions for flooded areas. 

For the New Jersey site, we used LiDAR datasets from before and after the impact of Hurricane Sandy. A theme of this module was converting LiDAR data into rasters and polygons. Tools like LAS Datast to TIN, TIN to Raster changed the three dimensional dataset into a two dimensional raster with elevation values, and by using Raster Calculator between the pre-hurricane and post-hurricane raster layers I created a new raster that just displayed change. By selecting an appropriate color ramp, rasters like this can be used to highlight the differences in elevation between two datasets over a period of time. 

A raster with negative elevation change in red and positive elevation change in dark blue. Areas in red indicate where there used to be buildings and sand that no longer exist.

One of the last assignments in the New Jersey area was to take a raster with coastal area imagery and reclassify it with the Reclassify tool to display only the areas that would theoretically be affected by a two meter storm surge. To do this I reclassified with natural breaks and set an upper limit of 2, this meant the raster now showed only areas with an elevation between -37 and 2 meters. I used the Raster to Polygon tool to make a multipart polygon feature class from this shape, and calculated geometry with this shapes area and the area of a Cape May County Clip to determine the percentage of Cape May County would have been impacted by a 2 meter storm surge. 

While Florida and New Jersey sit at different latitudes, both states have a large amount of low, non-draining land, and are at risk for storm surge from squalls and hurricanes. Moving to a dataset from South Florida I used digital elevation models from LiDAR and USGS to perform a flood prediction analysis. 

The DEM raster files had to be saved to the local computer, and for easier comparison I converted the LiDAR dataset to meters instead of feet with the Times tool and a constant value of 0.3048. From there I used the Reclassify tool to create rasters with values that had an upper limit of 1, displaying the areas only with an elevation of 1 meter or less. This did return every area that was below 1 meter, which was unhelpful for displaying storm surge since comes in from the coast and doesn't reach unconnected lakes or low areas. I ran the Region Group tool for both, then Extract by Attributes for each layer to return rasters that represented just the flooded connected area as moving in from the coast. I ran Raster to Polygon and got a feature classes with flood predictions from USGS data and LiDAR data. 

Just looking at the basic polygons, it was clear they covered different amounts of land. 

To look at the number of structures affected by each layer combined the LiDAR and USGS data with a buildings footprint using Spatial Join, this added fields to the building layer based on whether or not that building was within the flood prediction polygon. After using Select By Attributes to tabulate the number of different building types intersected by the LiDAR and USGS-based flood predictions, it became clear that there were large differences between the number of buildings in these prediction maps. Because I already had a layer with buildings and both polygons, I changed the symbology of my map to display which structures were covered by each USGS and LiDAR flood prediction. 

Differences in properties covered by floodmaps based on the USGS and LiDAR datasets. The USGS dataset includes far more structures than the LiDAR dataset. 

We were encouraged to use overlays to calculate the number of omissions and commissions (additions) between the USGS and the LiDAR layer, and calculate a percent error given that the LiDAR was known to be more accurate. I feel confident I would be able to calculate this with overlays, however when I attempted this - even as it was written in the assignment - my ArcPro application ran for several hours each time without a result, and had to be force terminated. In order to get around this limitation, I populated new fields in the combined table using Calculate and If Else statements with buildings that were included by USGS but excluded by LiDAR, and vice versa. I then used Select By Attributes on these new fields to get the number of omissions and commissions, then Calculated the percentage error for each. 

Using the "long way" to calculate the number of omissions and commissions when my ArcPro started stalling on longer Python logic entries.

Overall, the LiDAR map is more conservative than the USGS map, indicating fewer areas at risk of a 1 meter storm surge.   

Wednesday, July 20, 2022

Applications in GIS - M3 Visibility Analysis

In week 3 of this course we explored the basics of 3D visualization in ArcPro, how to share and organize that data, and how to conduct Viewshed and Line Of Sight analysis (LOS). 
These can be vital processes, as 3D display often helps communicate ideas and visualizations more clearly than 2D display, and viewshed and line of sight can both assist when determining what is visible or accessible to targets. In a real world application this analysis could be used to check radio wave transmission, camera or radar coverage, and manage visual access to resources like mountain views or emergency assistance kiosks. 

In 3D Visualization we learned different types and methods of assigning three dimensional symbology, including things like picture fill, procedural fill, and rule packages to create more detailed and unique symbols. 

Embarcadero Park and downtown San Diego rendered in a 3D Scene with customized symbology.

As part of the 3D Sharing class we authored a three dimensional scene that gave me the opportunity to apply some of the basics learned in 3D Visualization. This meant extruding 2D polygons based on their height for buildings, and then correcting where the buildings "sat" with the Layer 3D To Feature Class tool. This correction made several buildings in elevated terrain suddenly become visible, because they had previously been drawing "under" the elevated ground of the hill. Trees had been included as points, so I added z values with the Add Surface Information tool based on height, then used the Feature To 3D By Attribute tool to make trees a 3D feature based on their new z-axis. In order to get the trees to display properly, they had to be removed and then re-added as a preset layer, with appropriate symbology. 

3D map of part of Portland Oregon, with extruded trees and buildings. This was created for sharing and is also available online on My Content Page.

In order to Publish the buildings in the scene (the only multipatch layer) I used the Create Object 3D Scene Layer Content tool and made a shareable .slpk file of the buildings layer. I attempted to move the package file directly to my ArcOnline account from Google Drive, but the .slpk file type is not one of the four filetypes that can be uploaded directly from Google. Instead I downloaded the package and uploaded it from my device. I followed the instructions for properly labelling and describing my building layer as an Item on My Content page, then published it and opened it in SceneViewer where I used Capture Slides and Daylight tools to view the 3D buildings in different lighting and saved the views as slides. 

During the Viewshed Analysis we were given a scenario with light sources at two possible heights, and used the Viewshed Analysis tool to see how much of a hypothetical campground terrain would be illuminated by the lights. 

Viewshed Analysis rasters displaying how the four lights cover the campground at heights of 3 meters (left) and 10 meters (right). The lightest shade represents coverage by only one light, while the darkest shade represents coverage by four lights.

Since the hypothetical campground was requesting that at least half the space be covered by 3 or more lights, I used the Greater Than raster function with a Raster2 value of 2 to highlight just the areas illuminated by 3 or more lights in each of the two light height scenarios. Based on the coverage from these rasters, it was clear that the lights would need to be at a height of 10 meters (OFFSETA = 10) for at least half of the campground to be covered. 

Boolean rasters generated from the Greater Than tool that display the area covered by at least three lights when the lights are mounted at 3 meters (left) and when the lights are mounted at 10 meters (right). The 10 meter lights illuminate at least half of the campground.

The Line of Sight analysis centered around the use and parameters of the Line of Sight tool. We were provided with a three dimensional model of a section of Philadelphia, complete with buildings, observation points, and a parade route line. I used the Construct Sight Lines tool to create lines between the observation points and the parade route, then input those lines into the Line of Sight tool (with buildings as inputs for obstructions) to get a line feature class that was color coded based on whether the parade was visible or not along that line of sight. 

However, because humans don't have eagle eye vision, I needed to limit the lines to only those that were equal or less than 1,100 ft long. This is the commonly accepted value for clear day visibility. To do this, I calculated and added the length of the lines as an attribute to the feature class with the Add Z tool, and then used Select By Attribute and Delete tool with the expression TarISVis = 0 OR where Length3D is greater than 1100. This selected and removed lines that either could not see the parade route, or required more than 1,100 ft of visibility. 

Lines of sight from the elevated observation points that would be able to see the parade route (red) in downtown Philadelphia on a clear day. 

In the second part of the Line of Sight lesson, we explored a module that would also complete these steps, but for visibility of 600 ft, which may happen on a foggy or rainy day. 

A view of the module, which would run the LOS analysis for the dataset with changes to the expression that will remove lines with a length greater than 600 ft. 

The module with reduced visibility returned a map with fewer lines of sight than when the LOS analysis was conducted for a clear day.

Fewer viable lines of sight when the visibility is reduced to just 600ft. 

 




Sunday, July 17, 2022

Applications in GIS - M2 Forestry and LiDAR

 

LiDAR imagery of the Big Meadows Area in the Shenandoah National Park, VA. This three dimensional view is through using a Scene as the basemap in ArcPro.

In week 2 of Applications in GIS we looked at LiDAR imagery and used a series of tools within ArcPro Spatial Analyst and ArcPro 3D Analyst programs to digest the data into maps that displayed elevation, vegetation cover, vegetation height, and tree canopy density. This module was an exercise in manipulating three-dimensional data into different feature types, including points and rasters, and helped emphasize the myriad of information that can be gained from a good LiDAR .las file.

 One of the first tasks in our lab after downloading and extracting the las file into ArcPro was to create a basic digital elevation model (DEM) by filtering to display only ground points and generating a raster using the LAS Dataset to Raster tool. For this tool we used natural neighbor to fill voids and a sampling value of 6 with cell size as the sampling type. Our second task was to create a digital surface model (DSM) by filtering only the non-ground points and using the tool to create a raster again with the same settings. The result of this left us with two comparable rasters, one displaying ground topography and another displaying points that were non-ground topography (ostensibly, trees). 

With these two rasters we used the Minus tool to get the difference between 'tree surface elevation' (DSM) and the 'ground elevation' (DEM) which left us with tree height over the area. 

Full-console view of the digital surface model (DSM) derived from the LiDAR data; a raster displaying the elevation on non-ground points in the .las file.  

The next objective was to calculate vegetation biomass density, but first we needed to change the .las 3D shape into multipoint datasets again distinguishing the ground from vegetation. This was accomplished by running the LAS to Multipoint tool with average point spacing from the .las file, and Class Code as 2 for the ground and 1 for the vegetation. [These class codes are determined from the .las metadata]. We converted the multipoint files with Point to Raster, and set the cell size to 3 times the point spacing of the .las file. Basic data cleanup with the IS NULL and Con tools helped fill in empty values in the rasters. Then we used the Plus, Float, and Divide tools to calculate a raster that contained the tree canopy density based on the number of vegetation points and ground points in the cell. 

Final objectives from this lab; a calculated raster displaying canopy density and another displaying canopy height, here represented with a histogram. Both of these could be valuable tools for forestry management.

These products were both fairly quick calculations in ArcPro from the LiDAR data to determine tree height and canopy density through the surveyed area, and they clearly displayed areas with human structures, healthy forest, and disturbed or sparse areas. These maps would be highly useful to a land manager or forester since they quickly highlight the vegetation resources in a consistent manner throughout the survey area.  

Sunday, July 10, 2022

Applications in GIS - M1 Crime Analysis


For our first lab in Applications in GIS we explored different methods of hotspot analysis through the lens of crime analysis in Washington DC and Chicago. 
I enjoyed the amount of background available in this module; the examples and articles made it easier to tie in statistics-heavy concepts with the hotspot map imagery we see frequently for crime, school standards, and even Covid-19 impacts.
Grid-Overlay Hotspot Analysis

Kernel Density Hotspot Analysis
Local Moran's I Hotspot Analysis

In creating the grid overlay analysis, we were given a pre-made 1/2 mile cell grid clipped to the City of Chicago boundary. This gave a basis for the analysis, and by using a spatial join to add a point shapefile of all 2017 homicides, students could create an additional field called Join_Count where the number of joins would be the number of homicides within that cell in 2017. I exported a new shapefile from that dataset containing only the cells with homicides greater than zero, and then followed the recommendation for a top 20% analysis. This was done by finding the top 20% most frequent homicide cells in 2017, and then exporting those cells into another shapefile. The shapefile was still a collection of squares, so I used the Dissolve tool to merge them together as a single polygon representing the top 20% homicide locations in 2017. This type of analysis may be most helpful for establishing high priority areas within a city grid.

The Kernel Density analysis relied primarily on the Kernel Density tool, for which students could input the homicides 2017 point shapefile, and receive a raster showing the different "kernels" of dense and frequent homicides in 2017. I manipulated the symbology on this raster -which comes with a wide gradient range- to have only two breaks in values. One break included everything from zero to three times the mean, the other break included everything from three times the mean to the maximum. From there I used the Reclassify tool to get the values into bins of either "1" or "2" and the Raster to Polygon tool to get the resulting raster into a polygon shapefile with areas as either of those bins as values. I exported only the "2" values into a separate shapefile, and this represented the areas of Chicago that had homicides in 2017 three times higher than the average. 

The final type of hotspot analysis in this lab was a Local Moran's I analysis, where we were asked to use census data to determine the rate of homicides per household. The first step was to use spatial join and combine the 2017 homicide point shapefile with a shapefile containing census data and census tracts. Like the grid overlay, this created a Join_Count field where the number of joins was the number of homicides that had happened in that census tract in 2017. Using this Join_Count number and the number of total households form the census data, I created a new field that displayed the number of homicides per 1000 households. This was then the field that I input into the Cluster and Outlier Analysis (Anselin Local Moran's I) tool to return a shapefile, from which I exported the "High Highs" that showed census tracts with the most frequent and most clustered homicides in 2017. Like the grid overlay, these High-High tracts were still individual bordered shapes, so I combined them with the Dissolve tool to display the areas in 2017 Chicago that had frequent and clustered homicides. 

Overall I greatly enjoyed this assignment, and it was a great reminder what can be accomplished by manipulating the fields in a shapefile. 

GIS Portfolio

 As a final assignment at the end of my time with University of West Florida, I have built a GIS portfolio StoryMap. The final product is em...