Git Product home page Git Product logo

afwizard's People

Contributors

dokempf avatar gwydionjon avatar lkeegan avatar pre-commit-ci[bot] avatar readthedocs-assistant avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

afwizard's Issues

OPALS not working in Docker (JupyterHub) setting

The required shared libraries are not found. This is most likely due to the minimal set of installed packages within the container. Solution: Find the correct set of packages and install them in Dockerfile.

Expose visualization options in filter tuning app

Currently, the visualization used in the filter tuning app cannot be configured, but really should be. This should probably be realized by a separate visualization schema which can directly be plugged into WidgetForm.

Implement `PDAL` filter backend

This adds the PDAL backend to adaptivefiltering. Necessary substeps:

  • Inherit PDALFilter class from Filter and implement pipeline execution for that class
  • Write schema with all ground point filtering algorithms from PDAL

OOP design planning

Basic planning of the OOP design for the project. Documentation is found in the project management repository.

Geo coordinates to show

When showing maps, one might go for the usual EPSG:4326 in the beginning, but different systems may be helpful if we get into small areas which show large deviation.

Maybe, that Michael can judge whether he needed such functionality for his filtering, and @lrg-bhoefle should be able to comment on this as well. -- I will check for problems with EPSG:4326 when I start with Jupyter notebooks and data sets from South Japan.

Slopemap not working for Thingstätte data set

I tried to visualize the slope map of the thingstaette data set, but I get the following error (regardless of resolution).

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-25-f9116e2e4536> in <module>
----> 1 ds.show_slope(resolution=2.0, classification=adaptivefiltering.asprs["ground"])

/opt/conda/lib/python3.9/site-packages/adaptivefiltering/dataset.py in show_slope(self, resolution, classification)
    128 
    129         dataset = PDALInMemoryDataSet.convert(self)
--> 130         return dataset.show_slope(resolution=resolution)
    131 
    132     def save(self, filename, compress=False, overwrite=False):

/opt/conda/lib/python3.9/site-packages/adaptivefiltering/pdal.py in show_slope(self, resolution, classification)
    254 
    255         with tempfile.NamedTemporaryFile() as tmp_file:
--> 256             self.save_mesh(
    257                 str(tmp_file.name),
    258                 resolution=resolution,

/opt/conda/lib/python3.9/site-packages/adaptivefiltering/pdal.py in save_mesh(self, filename, resolution, classification)
    180         if os.path.splitext(filename)[1] == ".tif":
    181             filename = os.path.splitext(filename)[0]
--> 182         execute_pdal_pipeline(
    183             dataset=self,
    184             config=[

/opt/conda/lib/python3.9/site-packages/adaptivefiltering/pdal.py in execute_pdal_pipeline(dataset, config)
     60     # Define and execute the pipeline
     61     pipeline = pdal.Pipeline(json.dumps(config), arrays=arrays)
---> 62     _ = pipeline.execute()
     63 
     64     # We are currently only handling situations with one output array

/opt/conda/lib/python3.9/site-packages/pdal/pipeline.py in execute(self)
     38 
     39     def execute(self):
---> 40         return self.p.execute()
     41 
     42     def validate(self):

libpdalpython.pyx in pdal.libpdalpython.PyPipeline.execute()

RuntimeError: writers.gdal: Grid width out of range.

ipyleaflet map missing map data on zoom

When using the pkgebk_all.las dataset one can not zoom in all the way without ipyleaflet switching from a satellite image to an error messag. This may be happening in different remote locations as well.

Example_of_ipyLeaflet_Map_error

Fixes to WidgetForm array controls are not in main

Array controls are to the right instead of below again. Also, they do not work. I fixed this in the past, but the fixes are not in main - not sure what happened, properly some wrong merge conflict resolution.

Fix CodeCov integration once they recognize the new repository

CodeCov struggles with the renaming of the project and does not show the new project. Hopefully, after some days they will rebuild their caches and find the new repository. After that, we should add the new CODECOV_TOKEN as a secret and the CI should run again.

Study feasibility of lasground backend

Michael would love to see an additional backend based on lastools lasground[_new] tools. If this integrates well with our current design, we could add it.

Missing PDAL configuration parameters

This is a list of parameters that were omitted for technical reasons:

  • classbits argument of filters.smrf: There was an upstream bug about the default value (PDAL/PDAL#3068) - the documented default does not work for our current PDAL version. Skipping for now.
  • The ignore parameter of filters.{smrf,pmf,csf}: No good default value can be provided which creates a problem if constructing from widget data. I guess that support needs to be implemented as a new feature of WidgetForm that allows to drop empty strings.

Introduce "meta-filters"

Currently, a filter is defined by its configuration value and conforms to a fixed schema. However, it would be beneficial to also be able to define "meta filters" or "filter templates" that allow variability for certain configuration parameters by e.g. specifyng a range for a continuous parameter or a selection for a discrete parameter. Any variable configuration values in such filter template would be fixed to a certain value by the end user at a later stage (at which point it would again be a filter in the current sense). We should investigate how such functionality can be integrated into the current design without sacrificing the simplicity of the current approach.

Make reprojection of data sets an explicit operation

Currently, we are dealing with projection-related issues by unconditionally reprojecting input data. This approach turned out to be more invasive than expected (see e.g. #67). Instead, it would fit much more into the general philosophy to have reprojection be an explicit, user controlled transformation:

dataset = adaptivefiltering.reproject(dataset, referencesystem="EPSG:4326")

Those parts of adaptivefiltering that rely on a certain projection could then throw an actionable error if a projection is required. After implementing #71, the default map of ipyleaflet could also be changed to something that is always present like hillshade. @GwydionJon Your input on this is appreciated.

Use nbsphinx to include Jupyter notebooks in the Sphinx documentation

The following aspects still need to be done to finalize #12

  • Remove weird prompt lines
  • Adapt section headers in Jupyter notebooks to fit into the Sphinx style
  • Make sure that the menu properly recognizes
  • Check RTD build
  • Mark cells for exclusion in nbsphinx where necessary

The latter is achieved with

"metadata": {
    "nbsphinx": "hidden"
   }

Widgets with 100% width produce erroneous horizontal scroll bar

We are fitting widgets into layout containers a lot by specifying width='100%' to make them fit exactly. However, many of these still produce a horizontal scrollbar. I consider this a bug of ipywidgets which should be researched and potentially reported upstream.

Remove Git LFS data

The GitHub quota are quite restrictive. For this reason, the repository currently cannot be pulled.

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.