Giter VIP home page Giter VIP logo

dem2basin's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently working on ... country-scale flood modelling from source data all the way to visualization
  • ๐ŸŒฑ Iโ€™m currently learning ... Plotly Dash, OSMnx
  • ๐Ÿ‘ฏ Iโ€™m looking to collaborate on ... global scaling of elevation & flood data workflows, scalable equitable land-use models
  • ๐Ÿ’ฌ Ask me about ... GDAL, PostgreSQL, Geopandas & RasterIO
  • ๐Ÿ“ซ How to reach me: ... send me an email! See [https://github.com/dhardestylewis] for ways to contact me!

dem2basin's People

Contributors

dhardestylewis avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

dem2basin's Issues

Consider the following back-ends for performance

Consider the following back-ends for performance:

In time-expensive functions (see pycallgraph.png), consider replacing Shapely-dependent objects with GDAL/OGR objects
This would also mean using either:

  • NetCDF, or
  • PostgreSQL

for I/O

Include following information in TNRIS Lidar metadata database

  • File name of DEM as found on Stampede2
  • Actual file type of each DEM (.dem,.img,.tif)
  • CRS
  • Geographic CRS
  • EPSG
  • Bounding box
  • Accuracy calculations for reprojections from source CRS to NAD83(2011) / UTM zone 14N & NAD83(2011) Texas Centric Albers Equal Area
  • Polygonizing the rasters
  • File size

Missing catchments

Catch catchments not assigned to any HUC12 by algorithm. An example of such missing catchments is present in this screenshot


Screen Shot 2021-01-19 at 6 42 00 PM

Include timing function

Include timing wrapper function:

def timethis(f):
    start_time = time.time()
    ret = f
    end_time = time.time()
    elapsed_time = end_time - start_time
    return((ret,elapsed_time))

Break up code to speed up each individual import

Break up code to speed up each individual import

Adopt the following organization:

  • General GeoPandas extensions
  • Pandas extensions
  • Function wrappers
  • Misc extensions of other Python libraries
  • Hydro vector processing functions
  • Hydro raster processing functions

Significantly revise get_bounding_boxes_by_project to center around project-level GDF objects

Significantly revise get_bounding_boxes_by_project to center around project-level GDF objects

As soon as possible, revise the following code to operate on project_coverage GeoDataFrames, with a lambda function to find the files.

Also, dynamically compile a list of separate GeoDataFrames for each project, each row within these GDFs would represent each different DEM tile within that project's GDF, use geopandas.GeoDataFrame.to_crs to reproject these all to the same CRS, before concatenating them to a single master coverage file, which is the final output

    dem_tilenames = []
    filetypes = ('.img', '.dem', '.tif', '.jp2')
    for filetype in filetypes:
#        print(filetype)
        for project in projects:
#            print(project)
            for root, dirs, filenames in os.walk(str(project)):
#                print(root,dirs,filenames)
                for filename in filenames:
#                    print(filename)
                    if filename.endswith(filetype):
#                        print(True)
                        dem_tilenames.append(os.path.join(root,filename))

#    print(dem_tilenames)

    dem_tile_bounds = []
    for dem_tilename in dem_tilenames:
        dem_tile_bounds.append((
            dem_tilename,
            rasterio.open(dem_tilename).bounds
        ))

#    print(dem_tile_bounds)

    dem_tiles = gpd.GeoDataFrame(
        dem_tile_bounds,
        columns = ['lidar_file','bounds']
    )

#    print(dem_tiles)

Support for point-cloud to DEMs

Consider adding support for point-cloud to DEMs, but:

  • record timings
  • compare against DEM reprojection and mosaicking technique
  • estimate large-scale node-hours usages

Update Lidar index

Run regular scrape of latest Lidar data using tools developed in tnris-lidardata-update

Draft Jupyter notebooks to demonstrate basic use-cases of library

Basic use-cases include:

  • GeoFlood workflow preparation
  • Non-HUC-oriented workflow preparation
  • HEC-RAS preparation excluding road network / bridge segment aspects
  • 10m
  • 3m
  • 1m
  • Backfill 1m with 3m or 10m
  • QA/QC existing DEMs for common issues including nodata gaps, missing source data, and wrong/bad projections
  • Determine accuracy of resulting products

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.