-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenvironment.yml
94 lines (84 loc) · 4.53 KB
/
environment.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: hydrography
channels:
- conda-forge
- nodefaults # Speeds solving env, by limiting the number of options
dependencies:
- python=3.11 # geoarrow-pyarrow not supported for 3.12 as of May 17, 2024
# Geospatial libs for vector data
- scipy
- geopandas >=0.14.1 # supports GeoParquet 1.0.0
- gdal >=3.9 # Note: 3.9 officially supports geoarrow, but rasterio 1.3.x does not as of May 22, 2024
# rasterio 1.4 should support gdal 3.9
- pyogrio >=0.8 # Vectorized vector I/O using GDAL/OGR, speeds up GeoPandas!
# PostGIS supported. See https://pyogrio.readthedocs.io/en/latest/supported_formats.html
# and full list of drivers: https://gdal.org/drivers/vector/index.html
- pyarrow >=16
# - geoarrow-pyarrow # high-performance geoarrow dtype for geometry, integrated with lonboard
# pip installing latest development versions of geoarrow-python, below
# to take advatage of pyogrio >=0.8 that supports gdal >=3.9
- geojson
- topojson # enables topology aware simplification that avoids gaps in adjacent polygons
# See https://github.com/geopandas/geopandas/issues/1387#issue-602764318
- simplification # faster simplification algorithms via Rust backend
- python-calamine # fast i/o for all Excel & Open Doc spreadsheets, built with Rust
# supported by pandas >=2.2 `pd.read_excel("path_to_file.xlsb", engine="calamine")`
- openpyxl # read/write Excel 2010+ files (.xlsx & .xlsm)
# For MacOS
# - qgis # FoDesktop GIS within the same env and dependancies
- libgdal-arrow-parquet # required for GeoParquet in QGIS on Mac
# https://medium.com/radiant-earth-insights/the-geoparquet-ecosystem-at-1-0-0-96dee8ce9201
# https://github.com/qgis/QGIS-Mac-Packager/issues/156
# Remote Access
- fsspec
- s3fs # Access to Amazon S3 filesystem
# Hydro Data Tools
- networkx # For building graphs for watershed network analysis
# - pynhd # HyRiver: provides access to NHD+ V2 data through NLDI and WaterData web services
# removing to avoid rasterio installation, which presently forces gdal<3.9
# - pygeohydro # HyRiver: for accessing hydrology data through web services,
# # including WBD for HUC bounaries
# Database connections for exporting to PostGIS, which we may be covered by pyogrio
# - psycopg2
# - sqlalchemy
# Visualization
- geoviews
- datashader
- panel >=0.14 # Major update for dashboarding
- cmasher # Adds function to subset colormaps, including from HoloViz's colorcet
# - selenium # for HoloViz/bokeh.io image export functions
- lonboard # fast geospatial vector visualization, built on geoarrow
# - contextily # retrieve tile maps from the internet. Installs RasterIO.
# Interactivity via Jupyter Notebooks
- jupyterlab
- nodejs # required for many extensions
- ipympl # jupyter-matplotlib, https://github.com/matplotlib/ipympl
- ipywidgets # Interactive HTML widgets for Jupyter
- jupyter_bokeh # Renders Holviz / Bokeh objects in Jupyter
- pyviz_comms # bidirectional communication between Python & JavaScript for Jupyter
# Dev tools: Language Server Protocol (LSP) (Optional), for:
# code navigation + hover suggestions + linters + autocompletion + rename
- python-lsp-server # LSP extension for Python (pylsp), including:
# Rope for Completions and renaming
# Pyflakes linter to detect various errors
# McCabe linter for complexity checking
# pycodestyle linter for style checking
# pydocstyle linter for docstring style checking (disabled by default)
# autopep8 for code formatting
# YAPF for code formatting (preferred over autopep8)
# flake8 for error checking (disabled by default)
# pylint for code linting (disabled by default)
- pylsp-mypy # MyPy type checking for Python >=3.7.
- jupyterlab-lsp # Provides both server extension and lab extension
# Environment and package management
- conda
- conda-build
- conda-libmamba-solver
# PIP install requirements only if it is not possible with conda
# https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#using-pip-in-an-environment
- pip
- pip:
# latest development versions of geoarrow-python
# https://github.com/geoarrow/geoarrow-python?tab=readme-ov-file#installation
- git+https://github.com/geoarrow/geoarrow-python.git#egg=geoarrow-pyarrow&subdirectory=geoarrow-pyarrow
- git+https://github.com/geoarrow/geoarrow-python.git#egg=geoarrow-pandas&subdirectory=geoarrow-pandas
- git+https://github.com/geoarrow/geoarrow-python.git#egg=geoarrow-types&subdirectory=geoarrow-types