Skip to main content

Creating conservation planning datasets intuitively by playing with parameters and getting instant visualized feedback

Project description

ConGen: Creating conservation planning datasets intuitively by playing with parameters and getting instant visualized feedback

Requirements

For python library requirements, see pyproject.toml. Additionally, the following system libraries and development headers are required:

  • basic build tools (gcc, make etc.)
  • gdal for building the Python GDAL module

TODOs

  • Fix WardClusteredPointLayer
  • CLI Interface
  • Benchmark different conservation planning software
  • Improve UI / UX
    • Onboarding / Instructions
    • Project creation wizard with predefined templates?
    • Project template files
    • Tooltips for parameters

Archievements

  • Object-oriented design
    • All layer types are implemented as classes that inherit from common layer types, overriding common methods if needed
  • wxPython GUI with Model-View-Controller Design
    • LayerListCtrl controller class manages both a wxPython list control and the underlying data structure
    • List view and underlying data structure are always in sync
    • On parameter change: Corresponding value in underlying data structure gets automatically updated, list view and rendering are automatically refreshed
  • Custom implementation for parameters
    • Wrapping a single value (e.g. int, bool, string) with metadata (default, min, max values, parameter name and description, etc.)
    • Stored in a list for each layer type to distinguish parameters from other layer instance variables
    • Each layer type requires different parameters, extends the parameter list from inherited classes
    • Automatically render appropriate parameter controls for each layer type based on parameter list
    • Future: automatically render columns in layer list based on parameter list
    • Caching: Specify which parameters invalidate the calculated cache, only re-calculate layer data if relevant parameters change, don't recalculate for parameters that can be applied to existing data -> minifies computational overhead, especially for applications with many layers
    • Python magic so parameters of each layer can still be accessed via layer.parameterName despite being a) stored in a list variable instead of being class instance members themselves b) classes that wrap the actual value with additional metadata

Material

Ecology

Procedural map generation

Perlin Noise

Python Libraries

Not exhaustive

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ConGen-0.0.5.tar.gz (88.7 kB view hashes)

Uploaded Source

Built Distribution

ConGen-0.0.5-py3-none-any.whl (110.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page