辅导案例-ENCN375-Assignment 1
ENCN375 – Assignment 1 2020 Paper ENCN375 – Sustainable engineering for a changing climate Assessment Assignment 1 (30%) Topic Climate risk assessment Due date September 10, 2020 Suggested start date July 20, 2020 ***You are NOT to contact any external agency or individual for data, comments on, or assistance with this assignment.*** Learning Objectives Apply the risk analysis process Explore interventions and their impacts on New Zealand society Explore approaches for dealing with and managing uncertainty Understand the complexity in climate interventions Understand the urgency of mitigation and the necessity of adaptation Problem Christchurch, like all cities and communities around the world, must prepare for climate change. You have been called in to help. This project is about estimating and discussing the implications of Christchurch’s climate risk to extreme sea level rise. You will complete a risk assessment and write a project report for submission. A true resilience strategy is a significant amount of work. However, given that you will be examining only one climate-related hazard, we expect the scope of your assessment to be somewhat narrow. That being said, you must still consider systems-level impacts and implications on a broader scale. Deliverable You must provide a report, following the ISO 31000 standard, detailing your assessment of Christchurch’s risk for sea level rise, the implications for the city, as well as recommendations for managing this risk. Your report must include the following components: A signed cover page, agreeing to ethical code of conduct A 1-page executive summary of your assessment and important considerations A 1-page press release where you provide a summary in a manner that the public understands A table of contents A page for references referred to in the text (ASCE referencing style) Appendices may be included as required The report must be less than 10 pages in the main body. That is, 10 pages excluding the title, executive summary, press release, table of contents, references, and appendices. You may wish to include a glossary in your report to define (and reference where appropriate) key terms used. Your project report will be informed by the results of your risk assessment. This quantitative aspect is essential, but only represents a small piece of your overall assessment of Christchurch’s management of climate change risks. Using your findings from your risk assessment to inform your thinking, you must provide recommendations as though you are reporting to council, you may assume the audience of this engineering report has reasonable technical knowledge. ENCN375 – Assignment 1 2020 Therefore, you must consider (and could potentially investigate) the following elements in your report: The context and potential hazards The uncertainty in the input information as well as in your assessment results Potential interventions to reduce exposure The ethical and cultural impacts of these interventions How uncertainty should be managed How you would engage the community during this process (unfortunately this isn’t possible in class setting of this size) and how information should be communicated to them Whether these interventions could lead to maladaptation to different hazards or for other groups of people In your appendix, provide your code, an outline of the methods, and a summary of the data. You must provide correct attribution for the data. Risk assessment Your project begins with a basic risk assessment. You have been provided data to use (note that they are modified and are therefore inappropriate for other analysis). These data include the extreme sea level hazard maps (which you may not share with others) and a series of infrastructure datasets (publically available). Census data is also included, but you also have access to this recent census data on the web. Begin your assessment by estimating the people, infrastructure, and property exposed to extreme sea level (refer to this as “exposure”). An important dimension of risk is time. The IPCC has estimated how the sea level will rise over the next century. You must also calculate how the exposure changes over time, and provide a graph for each of the infrastructure and/or demographic impacts you explore. That is, you have been provided a csv with expected SLR and year. Make a figure, for each type of infrastructure, with years (x-axis) and quantity exposed (y-axis). Climate change predictions also come with a significant amount of uncertainty (another key dimension of risk). The IPCC has identified various emission pathways or scenarios (known as the representative concentration pathways, or RCPs). However, even under these RCPs there is uncertainty in the extent of predicted sea level rise. You are also provided a dataset that details the predicted sea level rise in each year for two RCPs as well as the ±33% bounds for these estimates. Assume a normal distribution and use this information to perform a Monte Carlo simulation to estimate uncertainty bounds for your exposure estimates over time. That is, your figures should have exposure on the y-axis, years into the future on the x-axis, and a 90 or 95% confidence bound on each of the lines. In addition to the data provided, you could explore additional variables. For example, the census provides the number of residents, but you could also estimate how different socio-demographic groups are exposed to this hazard. These additional variables may be useful if you build on this assignment in your 2nd assignment. Milestones This project contains a single milestone. You must submit a single-page summary of your risk assessment on Learn by the 10th of August. You can update the risk assessment in the main report after this. You are required to complete this milestone in order to receive a grade for this assignment. ENCN375 – Assignment 1 2020 Submission You must submit your final report as a pdf on Learn with the title “ENCN375_2020_A1_XX.pdf” where XX is your student ID. The first page of this pdf must be the cover page, with a signed agreement to the ethical code of conduct. Your name should not appear on any page in the assignment except the cover page. Instead, your student ID number (not your alphanumeric user id) should be in the footer. The header should read “ENCN375 – Assignment 1”. ENCN375 – Assignment 1 2020 Guidance Resourcefulness As mentioned in class, one of the objectives for this semester is to develop the ability to self-learn. With new skills such as Python and geospatial analysis, when you run into problems, we want you to attempt to fix them yourself before coming to the lecturers or the TA’s. Therefore, when you encounter a problem, be resourceful by using things such as Google, your classmates, or other guides found online or in the library. Once you feel you have exhausted these resources, contact the lecturers or TA’s (preferably via the discussion board) and we’ll be happy to give you a hand. Programming Setting up the environment You will need to install Python packages on your computer to complete this assignment. A helpful way to manage your coding projects (which might use different versions of packages, have different dependencies, or use a different version of Python) is to use environments. First, you must install Python on your machine. We suggest using Anaconda, which is available at the university computers using the software center (at least in the Civil Suite). You can also download it onto your own computer. If you would prefer to use Python without Anaconda, that’s great, you will need to familiarize yourself with virtual environments so you can install the appropriate packages. Once you have installed Anaconda, open the anaconda navigator. In the navigator, you can easily change your environment. We will create a new environment for this project. If you are using a UC computer: instead of the next two paragraphs, you can only use the default environment – not ideal, but sufficient. Therefore just launch “command prompt.” On the left-hand side of the navigator window, select environments. Then at the bottom, select create. Name it “spatial” and select Python and 3.7 as the version. What you’ve just done is create a virtual environment in Python using version 3.7. This virtual environment enables us to install packages in an insulated place so that they don’t interfere with other projects or other processes operating on your computer. Now go back to “Home” on the left hand side. At the top, it should say “Applications on spatial” (change it if it still says “base (root)”). Now install and launch the Powershell Prompt (in Windows) or Terminal (Mac/Linux). You will need to change your environment each time you open Anaconda. Once you have a terminal/powershell/prompt window open, it should say “(spatial)” in the left hand side. This means you are operating within the virtual environment “spatial”. Now that you are inside of your virtual environment, you can install the required Python packages for this project. As you should have been taught in ENCN305, Python has a series of tools that you can use, for example the sqrt function is a module you can use. These tools are grouped together into packages. The sqrt module, for example, is in the math package. If you want to use it you need to import the math package import math then call the package, e.g. math.sqrt(9) For ENCN375 we’ll need some modules from other packages. For example, we need to install pandas (a data science package) and geopandas (the spatial extension of this package). When we want to install a package, we generally Google the package name to make sure we perform the installation ENCN375 – Assignment 1 2020 correctly. For example, when Tom was looking for the correct statement to install geopandas, he searched “conda install geopandas”. The results suggested he enter the following command in the powershell terminal: conda install --channel conda-forge geopandas For this assignment, you will need to figure out how to install other Python packages. You can check packages have installed correctly by typing “python” into your terminal and pressing enter (this enters a python environment), then typing, for example import geopandas If the package is installed, you should not have any errors following this prompt. You can (and should) install additional packages as needed. Setting up the directory The next thing you need is a project directory. This is where your files will be managed. On your OneDrive, Google Drive, or just in a folder on your computer or uni computer, create your ENCN375 folder. Within that, create a folder for this project and name it how you choose. In this folder (directory) you should create subfolders called “src” (for code) and “data” (for data). You will likely create other folders in future. Now, in your terminal, change directory (cd) into your recently created ENCN375 directory for code. That is, in the anaconda terminal, type your equivalent of: cd "G:\My Drive\teaching\ENCN_375\2020\assessment\project\src" Now if you type “python,” you will enter the Python environment, where you’re able to directly enter and run lines of code in the terminal. Writing and testing code In general, you should write code using a text editor. Tom’s preference is atom, which is installed on the UC computers and is free to install at home (instructions on atom are in the PowerPoint linked above). Bec’s preference is sublime or spyder (which is installed automatically with Anaconda). There are many others—find one you like. In your chosen editor, create a “.py” file in your src folder: e.g., “main.py”. Usually, Tom will write code in Atom and test it by copying it into the terminal. When Bec writes code in spyder, there is an incorporated python terminal in the GUI (this is known as an integrated design environment (IDE), so she tests in that terminal. (Again, find an editor that you like). To test code, for example, we might run the start of our scripts in the terminal to check everything is working right. It might look something like this: # import packages import geopandas as gpd import pandas as pd import matplotlib.pyplot as plt # import the hazard map esl = gpd.read_file('data/hazards/extreme_sea_level/esl_aep1_slr0.shp) # ESL because it's extreme sea level If you run this, work out how to plot the esl layer (look at the geopandas online help). Another way to run code is directly from the terminal. Type ENCN375 – Assignment 1 2020 python src.main() This will run the entire script. If you are using functions, then you need to include this code at the bottom: if __name__ == "__main__": main() A major part of writing code is debugging (figuring out why you are getting errors, what they mean, and how to fix them). You will need to do this any time your code is interrupted with an error. If you are stuck debugging, you can add breaks in your code to make the program stop at various points. This is helpful if you want to run your code in “chunks” and figure out which chunk is causing you trouble and why. To do this, you need the package “code.” You can add the following line to where you want a break code.interact(locals=locals()) If you are getting errors in Python you must Google the error before asking us or the TAs. Literally, that’s likely the first thing we will do as well. A good coder is someone that knows the right kind of search terms and keywords. This can be a frustrating experience at first, but learning to code with a project is one of the best ways to learn. Data for the Project Shapefiles A shapefile is a common type of geospatial file format, created by the Environmental Systems Research Institute (ESRI), that describes the geometric location and information of geographic features. However, it is technically a collection of files, all of which you need for spatial analysis. The primary file has the filetype “.shp”, but you cannot just download that file, you also need the .dbf (database) and .shx (machine code version of the .shp) files. Often there are other files associated, such as the .prj (projection file), among others. A mistake lots of people make early in their geospatial analysis days is to delete these other files or only copy the .shp and then wonder why their analysis is not working. You can view shapefiles in ArcGIS Pro or QGIS by simply dragging the .shp into the GIS user interface (UI). You need to figure out how to import shapefiles into python using geopandas. Property value A shapefile with each property parcel is provided (and is also available here). This provides the capital value, land value, and improvement value of each of the properties. Capital is the most likely selling price. Land value is the value of the bare land and land development work. Improvement value is the value of the buildings, paths, fencing etc. and is the difference between capital and land value. You will probably use the capital value in this assessment. Census (socio-demographic data) As you know, the census is a survey of every person in NZ. The individual data are aggregated into areal regions so they can’t be used to personally identify anyone. The smallest of these areas is called Statistical Area 1 or SA1 (until the latest census they were called meshblocks – FYI). I have provided the census data and clipped it to the Christchurch region, however, you may wish to find more information for your later group project, in which case you can find it here: ENCN375 – Assignment 1 2020 https://datafinder.stats.govt.nz/layer/104612-2018-census-individual-part-1-total-new-zealand-by- statistical-area-1/ You can find the variable names in the excel lookup table that StatsNZ provides: data/demographic/sa1-2018-census-individual-part-1-total-nz-lookup-table.csv Extreme Sea Level Extreme sea level refers to the 1% AEP coastal flood, with the addition of some sea level rise. You have access to estimated 1% AEP floods with the addition of up to 300 cm of SLR, in 10 cm increments. This data is provided by NIWA, however they use it for commercial purposes so this cannot be shared (as per the data agreement you need to sign if you wish to use the data). Additionally, I’ve simplified the data so that it is easier for you to run. This would likely make it unsuitable for analysis beyond this project. Analysis A module you will need for this project is “clip” within the geopandas package. Here are some helpful instructions: https://www.earthdatascience.org/courses/use-data-open-source- python/intro-vector-data-python/vector-data-processing/clip-vector-data-in-python-geopandas- shapely/ What you’re aiming to do is clip the infrastructure or demographic layers to the hazard extent. This results in a shapefile of exposed infrastructure and/or areas. The data you have been provided consists of the three types of shapefile data: Points, Polygons, and Polylines. Think carefully about how you will evaluate the exposure to each of these and what is suitable in the case of each infrastructure type. For example, in the case of the demographic layer, the number of residents in the attribute table refers to the residents in the statistical area. However, not everyone within a particular SA1 area may be exposed to the hazard. One approach to manage this is to calculate the percentage area that is exposed and use that fraction of the area’s residents in the exposure summation. Regardless of the approaches you use, you must provide details and (if necessary) justification – as you would for a client. Figures Most figures should be presented using Matplotlib, seaborn, or other python package. However, Excel figures will be tolerated. Maps can be made using matplotlib and geopandas. These can be useful for checking your code is operating as expected. However, the best approach for creating report-ready figures is to use QGIS or ArcGIS Pro. In ArcGIS Pro this is achieved by creating a new “layout”. (Further information here, and a video here). ENCN375 – Assignment 1 2020 ENCN375 Rubric: Risk assessment Student number: Overall score: /50 (30%) Criterion Below expectation Meets expectation Exceeds expectation Score awarded Max. score Context and hazard identification ● Poor understanding of the context and hazards ● Provides an overview of the context and a hazard ● Presents the context and articulates the range and interconnectedness of hazards 5 Risk assessment ● Fails to assess the exposure ● Ignores uncertainty ● Assesses the exposure of people, property, and infrastructure ● Quantitative assessment of uncertainty ● Assesses the exposure of people, property, and infrastructure ● Semi-quantitative evaluation of uncertainty from multiple sources 25 Communication and partnership ● Poorly communicates risk to a public audience ● Outlines a potential consultation process ● Clearly communicates the risk to a public audience ● Describes a potential engagement process ● Clearly and concisely communicates the risk to a public audience ● Discusses a potential partnership process involving participatory design 5 Treatment ● Identifies the strengths and weaknesses of treatment options ● Identifies how uncertainty could be managed ● Articulates and reflects upon the strengths and weaknesses of treatment options ● Explains how uncertainty could be managed ● Articulates and reflects upon the strengths, weaknesses, and tradeoffs of treatment options ● Discusses options for managing uncertainty 10 Kaitiaki Resubmission required ● Appropriate consideration of potential impacts on ethics, biculturalism, and the natural environment ● Integrates a thorough and considered discussion of ethics, biculturalism, and the natural environment throughout 5 Writing ● Many errors in grammar, syntax and/or spelling ● Poor use of language ● Some errors in grammar, syntax, and/or spelling ● Adequate use of language ● Very few errors in grammar, syntax, and/or spelling ● Effective use of language Assessed by ENCN301 Report structure ● Poor structure, not compelling, and/or difficult to follow ● Can be followed and has adequate structure ● Concise, compelling, and the structure flows well throughout Assessed by ENCN301