Tuesday, June 20, 2017

Geoprocessing using ModelBuilder and Python

This weeks lab involved using model builder to create a tool that clips a soils layer to a specific study area, selects the areas deemed 'Not suitable farmland' in the soils_clip.shp, and then uses the erase tool to remove them from the final product. The selection was completed by using an SQL statement within the selection tool step in the model that was built.

After successfully creating the model was then exported into a script and the script was modified so that it could run as a stand alone script, without ArcMap being open. This was done by opening the script in PythonWin and completing the file paths for the inputs the tool used. In addition, file extensions (.shp) were added to all of the inputs as well. ArcMap does not specify these things when creating a tool using model builder and it is important to note this because when sharing a tool with others it is important that it works properly across users.

Finally the script was added into a newly created toolbox in ArcMap and used to create the output above. The map layer shows soils of a study area that are suitable for farming. After it was ensured that the script worked as a tool, the toolbox was shared into UWF's dropbox for the assignment by combining the toolbox and the script into one single zipped folder.

This week I have become a lot more comfortable using ModelBuilder and I have also learned the use of exporting models into Python code as this can give you a good idea of what certain areas of script are supposed to look like.

Sunday, June 18, 2017

Natural Disaster Response using ArcGIS - Hurricane Sandy, Ocober 2012

In October 2012 Hurricane Sandy tore through the Caribbean, North Atlantic, and North Eastern United States. As it moved North the Hurricane brought destruction through high wind speeds and extreme storm surge. The storm broke ground on the border of Delaware and New Jersey. After the storm it was necessary to asses the damage in order to properly serve those who were affected by the natural disaster. This was done by FEMA through the use of aerial photography and ArcGIS. The first map above demonstrates the wind storms path as it grew and moved through the Caribbean and towards the United States. In addition, labels show the wind speed and barometric pressure which shows how the storm gained momentum before it made landfall.

The next map allows the reader to compare before and after aerial images of a street in Ocean City, New Jersey where the hurricane struck land. Point Symbols are used to show the severity of damage to each parcel of property. This required me to create a new feature class and add attributes using the editor toolbar. After attributes were added to the points fields were given a coded Domain Type. This allowed for parcel damage to be coded on a 0-4 scale which allowed for quick classification and reduces user error.

Fast response and damage asessment can save lives and help progression towards rebuilding. This lab demonstrated an interesting way to organize relief efforts and quickly view damage. With the help of GIS, FEMA and other organizations can do a lot more and it is good to experience what a project might be like for someone who has a career in Natural Disaster Response.

Wednesday, June 14, 2017

Debugging and Error Handling

Script 1:

Script 2:

Script 3

Debugging is an important skill when learning to code because errors will always arise. Above are the results of some code I debugged this week. The purpose of the codes was to print some feature of the attributes of different shapefiles. This involved distinguishing between syntax errors, exceptions, and logic errors. Additionally I learned some different debugging methods. These debugging methods included: selectively commenting out code, the use of print statements, and use of the PythonWin Debugger. Of these I found that the debugger is very useful but can also be difficult to use at first. I had the most success by inserting print statements and commenting out code from the bottom up.

After debugging each block of code above, a try-except statement was added to the thirds script. This allowed the script to run even when there are errors present. This is important because if the script were called as a tool in ArcMap and results in a runtime error, a printed error message would not appear. When using try-except statements a customized error message can be added, preferably one that helps the user troubleshoot the problem.

Predictive Analysis Brings Food Closer to Madagascar

The International Food Policy Research Institute has labeled Madagascar as one of the worst countries for citizens receiving the food and nutrition they need to lead a healthy life. In addition the World Bank has deemed 80% of the country's population as poor or extremely poor. In order to help Madagascar the United States Agency for International Development (USAID) Office of Food for Peace announced in 2014 that they would be bringing on a new food security project for Madagascar, labeling the project "Fararano" which means harvest season in the local language.

Project Fararano aims to help new and expecting mothers and their infants receive the proper amount of food and nutrition within their first 1,000 days of life. The first 1,000 days of life are an important developmental time for infants because if they do not receive the proper nutrition they may suffer mental or physical illnesses as well as stunted growth.

When the project first broke ground USAID noticed that only about 75% of participants were coming to collect food. After interviewing several mothers it was explained to officials that often times the participants had to walk great distances through rough, muddy terrain or cross rivers to receive aid. It was soon realized that this was a geographical problem and that new or expecting mothers may not be able to travel great distances to reach the food distribution warehouses.

To solve the problem USAID partnered with ESRI and through the use of predictive analysis attempted to solve the problem. By using digital elevation models, rivers and flood shapefiles combined with the locations of participants homes, new locations for the distribution warehouses were determined. After relocating the warehouses to the most ideal locations assigned by ESRI's GIS team the percentage of participants coming to get their food raised from the original 75% to 95% To me this is a very meaningful and interesting example of what GIS can be used ffor and I myself aspire to use my GIS skills to do something like this one day.

Here is the link to the full article if you are interested.


Sunday, June 11, 2017

Radiation and Tsunami Evacuation Zones for Fukushima, Japan in response to the 2011 Tsunami

For module 3 of Applications in GIS I have made an Emergency Evacuation Map of Fukushima, Japan for when the 2011 Tsunami hit. In addition to the danger from the Tsunami a Nuclear Reactor overheated at the Fukushima II Nuclear Power Plant, raising the need to evacuate surrounding areas exponentially. In the event of natural disasters it is important for first responders to know what areas are in need of assistance most and what is the most effective way to get there.

This map demonstrates areas that are effected by nuclear radiation at the levels of 3, 7, 15, 30, 40, and 50 Miles using a multiple ring buffer. This information is accompanied by a table that corresponds to the distances in the buffer showing how many people are at risk and what the consequences will be if they are not evacuated.  Also, there is an inset map that is zoomed in on the Fukushima coastline which as three classes of "Run up Zones." Run up from Tsunamis is considered the water that pushes onto shore often causing catastrophic damage to communities.

While making this map I used ArcMaps Model Builder for the first time. This was an interesting experience because I enjoy the idea of writing a program without having to code. Although it is good practice to understand Python code and how to write programs, the model builder can be a quick and useful way to write a program.

Wednesday, June 7, 2017

Introduction to Python Part 2

For this weeks lab I learned about conditional statements and loops. Conditional statements such as if, else, or elif are considered branches in coding where if a condition is True the indented block of code will be executed while if the condition is False the conditional code will be overlooked. While and  for are considered loops. this means that a code will iterate until a statement is True or until the it has gone through the entire list.

After completing this lab I can say that I have had a lot of problems with my code and that I have become very frustrated at times but that it has led to my learning.

Sunday, June 4, 2017

Planning For Natural Disasters: Lahars

The purpose of this lab was to analyze areas of high risk surrounding Mt. Hood, Oregon. In the event of a volcanic eruption areas of lower elevation are at risk to lahar flows. It is important for emergency response prevention and planning to understand which areas will be affected first and to what degree. In addition to highlighting areas of lahar flow, the emergency areas are colored according to population level.

The map was created first by using DEM files of the study area. The elevation models combined with the hydrology tool set were then used to create a stream layer. This layer accounted for elevation, flow direction, and flow accumulation. Once the stream layer was created buffer analysis (0.5 miles) was performed to determine which group blocks and schools were at risk to lahar flows.

I enjoyed creating this map and gaining a new understanding of how digital elevation models can be used. I particularly enjoyed using the hydrology tool set and thought it was interesting how much information could be obtained from two simple DEM's.