Metadata-Version: 2.1
Name: hologridgen
Version: 1.0.1
Summary: UNKNOWN
Home-page: https://github.com/pygridgen/hologridgen
Author: jlstevens
Author-email: jstevens@anaconda.com
License: CC0
Project-URL: Bug Tracker, https://github.com/pygridgen/hologridgen/issues
Project-URL: Source Code, https://github.com/pygridgen/hologridgen
Platform: Windows
Platform: Mac OS X
Platform: Linux
Classifier: License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries
Provides: hologridgen
Requires-Python: >=3.5
Requires-Dist: param (>=1.10.0)
Requires-Dist: panel (>=0.10.0)
Requires-Dist: pygridgen (>0.2)
Requires-Dist: geopandas (>=0.8.1)
Requires-Dist: holoviews (>=1.13.5)

# hologridgen

Interactive tool for the generation of orthonormal grids using
[pygridgen](https://github.com/pygridgen/pygridgen) and the
[HoloViz](holoviz.org) tool suite for use within [Jupyter
notebooks](https://jupyter.org/) or deployable with
[Panel](panel.pyviz.org).

## Installation

Until hologridgen is made available on conda-forge you can install it as
follows in a Python 3.7 conda environment:

```
conda install -c jlstevens -c conda-forge hologridgen
```

If you need a new, blank Python 3.7 conda environment, you can create it
and activate it using:

```
conda create -n hologridgen python=3.7
conda activate hologridgen
```


## Core features

* Add, move and delete nodes. First node indicated with a special marker (triangle by default)

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/add-mode-delete.gif"></img>

* Toggle node polarity (beta) with the Tap Tool. Generate Mesh button indicates when mesh generation is possible. Hide button to hide current grid/mesh.

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/polarity-toggle.gif"></img>

* Easy insertion of new nodes into edges selected with the Tap Tool (which can then be easily moved):

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/edge_insertion.gif"></img>

* Pythonic access of boundary as it is drawn and the grid once it is generated:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/pythonic-access.gif"></img>

* Easy adjustment of node size and edge width via the GUI. Easy regeneration with different x- and y-resolutions:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/node-edge-size.gif"></img>

* Easy selection between a predefined set of tile sources in the background:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/tilesources.gif"></img>

* Easy use of a custom element (e.g a different tile source) as the background:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/custom_background.gif"></img>

* Download boundary as GeoJSON:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/geojson_download.gif"></img>

* Capture serializable editor state and restore from it (can also be restored from a geopandas boundary DataFrame):

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/save_restore_state.gif"></img>

* Set a focus function and update mesh accordingly:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/focus_edit.gif"></img>

* Highly customizable styling of boundary, nodes and start marker:

<img width=400 src="https://github.com/pygridgen/hologridgen/blob/master/images/customizable_style.gif"></img>

* Can be served as a Panel dashboard using the `serveable()` method.


