Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate flood map by return period from a given reporting point locations #101

Open
lucernae opened this issue Dec 6, 2019 · 7 comments
Assignees

Comments

@lucernae
Copy link
Collaborator

lucernae commented Dec 6, 2019

Based on these recommendation documents:

https://github.com/kartoza/fbf-project/blob/develop/Datasets/Reports/Visit%20Indo%20InaSAFE%203-8%20nov%20AHA.docx

Hassan provided some sample curve.

Screen Shot 2019-12-06 at 14 45 10

We should be able to generate specific flood map return period using this curve.
These is what I imagine the steps would be.

  1. Select return period (we probably need to generate 10 or 20 year return period)
  2. from the curve, find water elevation w.r.t to river bank. We will have height (m)
  3. Choose specific a reporting point in the map. This point is the location that usually reports water elevation. At the moment, we probably just pick random points in the big river around Karawang.
  4. Load DEM dataset for the area, or datasets that have elevation/height.
  5. The point will have height, we use this as pivot for height 0 in river.
  6. We should be able to get relative height. For example, if the flood elevation wrt riverbank is 3 m, all the area under 3 m relative height from this point can be marked as flood. Put the pixel with relative height information (this would be the relative flood height).
@lucernae
Copy link
Collaborator Author

lucernae commented Dec 6, 2019

Possible hydro reporting points:

http://tech4water.com/map

@lucernae
Copy link
Collaborator Author

lucernae commented Dec 6, 2019

Sample generated flood with the classification

https://github.com/kartoza/fbf-project/tree/develop/Datasets/Flood/flood_classes

@gubuntu
Copy link

gubuntu commented Dec 6, 2019

shouldn't we just be choosing an historical flood map that matches the reported level, not generating a new one?

@AndreLester AndreLester self-assigned this Dec 6, 2019
@AndreLester
Copy link

Steps needed to create a flood level:

  1. Receive the point in the XY format and the return period in years.
  2. Calculate the flood depth from the return period with the formula above. flood_depth = 1.1435*ln(return_period) - 0.1385
  3. Determine the closest river line from the river centerline data.
  4. Generate big cross-section lines on the river which preferably do not cross. (challenging)
  5. Retrieve the DEM(SRTM) data for the cross-sections.
  6. Determine the river bed depth of each cross-section. (Elevation where the cross-section and the river centerline cross)
  7. Add an elevation to each cross-section. riverbed elevation + flood_depth
  8. Generate an elevation grid from the cross-sections (Gridding)
  9. Subtract the SRTM DEM from the cross-section elevation grid (values less than zero -> no value)
  10. Vectorize the resulting grid

It might be easier for me to code in Python than to create a QGIS workflow. I don't know the impact of this on the deployment.

@lucernae
Copy link
Collaborator Author

lucernae commented Dec 6, 2019

@gubuntu

shouldn't we just be choosing an historical flood map that matches the reported level, not generating a new one?

We don't have any historical flood now. We generate this for demo purposes only to populate the database with corresponding flood map with matching return period.

@lucernae
Copy link
Collaborator Author

lucernae commented Dec 6, 2019

@AndreLester do whatever the quickest one, but it has to be reproducible (so we can generate for different locations/return period).
We can migrate it to QGIS workflow later.

@AndreLester
Copy link

Dependencies so far:

  1. fiona
  2. rtree
  3. shapely

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants