Video demo of the application: https://www.screencast.com/t/fSYkI2u1

Inspiration

Climate change is a burning topic and most of the focus is on natural disasters, rising sea levels, and drinking water scarcity. However, desertification has been overlooked. We heard about California drought, fire as well as the current Australian fire, but these directly correlate with desertification.

What it does

Desertification refers to land degradation caused by climate change and human activity in arid, semi-arid, and dry sub-humid areas. The aim of this application is to map desertification-sensitive areas.  A total of 11 indices that affect desertification processes were identified and analyzed using a geographic information system. The Mediterranean desertification and land use approach (MEDALUS), which has been widely used in the Mediterranean regions due to its simplicity, flexibility and rapid implementation strategy, was applied.

The Mediterranean desertification and land use (MEDALUS) approach identifies environmentally sensitive areas (ESAs) through the Environmentally Sensitive Area Index (ESAI). The ESAI is implemented by considering several variables, i.e. physical (soil quality), environmental (vegetation quality), climatic (climate quality), and social (management quality) indicators. This index can be used to obtain an in-depth understanding of the parameters causing desertification threats at a certain locations. This approach is simple, robust, widely applicable, acceptable to new indicators and parameters and can be adjusted to several scale levels.

How we built it

We built the the application using React, Node, Express, The ArcGIS JavaScript API, and a variety of other modules including MobX, Reactstrap, Formik, and the esri-loader. The data analysis was done using ArcGIS Pro and ArcPy. The Node/Express server also runs an arcpy script to clip a feature by county and create a GeoJSON for the application.

Challenges we ran into

The first challenge was the spaces in the name of Counties. We used the Regular Expression module to take care of this.

Another challenge was to calculate the fields in a Feature Class. We ended up using the UpdateCursor instead of Calculate Field tool.

The next challenge was to make sure a new folder and geodatabase are created each time the script is run. We used the delete management tool.

Another challenge was to add the Year in the name of outputs to keep them distinct. We used arcpy.describe to figure this out.

Another challenge was to figure out to increment a month in the date field to get around a time slider issue. We used the timedelta function in the datetime module to get around this.

Also, we could find lot of open source data to view and study but not to download and use it for our analysis. The raster data are on 30m and higher value grid which reduce the data quality for analysis. As open sources data downloaded from different source, hence we have data inconsistency with respect to grid or pixel size and year of data.

Running an arcpy script from a node backend was also a challenge.

Accomplishments that we're proud of

We are proud of building a full stack web application in a single weekend.

What we learned

We learn about desertification and it’s methodology to analyze it.

What's next for Team MEDALUS

We will work on a prediction model like regression to determine future desertification.

Share this project:
×

Updates

posted an update

The first challenge was the spaces in the name of Counties. We used the Regular Expression module to take care of this.

Another challenge was to calculate the fields in a Feature Class. We ended up using the UpdateCursor instead of Calculate Field tool.

The next challenge was to make sure a new folder and geodatabase are created each time the script is run. We used the delete management tool.

Another challenge was to add the Year in the name of outputs to keep them distinct. We used arcpy.describe to figure this out.

Another challenge was to figure out to increment a month in the date field to get around a time slider issue. We used the timedelta function in the datetime folder to get around this.

Log in or sign up for Devpost to join the conversation.