Skip to content

Commit a73261b

Browse files
committed
Update ecosystem
1 parent 0c1bbe5 commit a73261b

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

doc/ecosystem.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Ecosystem
22

3+
PyGMT provides a Python interface to the Generic Mapping Tools (GMT), which is a command
4+
line program that provides a wide range of tools for manipulating geospatial data and
5+
making publication-quality maps and figures. PyGMT integrates well with the
6+
[scientific Python ecosystem](https://scientific-python.org/), with [NumPy][] for its
7+
fundamental array data structure, [Pandas][] for tabular data I/O and [Xarray][] for
8+
raster grids/images/cubes I/O.
9+
10+
In addition to these core dependencies, PyGMT also rely on several optional packages to
11+
provide additional functionality for users.
12+
313
## PyGMT dependencies
414

515
### Required dependencies
@@ -32,6 +42,12 @@ allows for more intuitive, more concise, and less error-prone user experience.
3242

3343
#### IPython
3444

45+
[IPython][] provides a rich toolkit to help you make the most of using Python
46+
interactively. Its main components are a powerful interactive Python shell and a Jupyter
47+
kernel to work with Python code in Jupyter notebooks and other interactive frontends.
48+
49+
PyGMT rely on IPython to provide a rich interactive experience in Jupyter notebooks.
50+
3551
#### GeoPandas
3652

3753
[geopandas][] is an open source project to make working with geospatial data in Python
@@ -71,11 +87,26 @@ We're working towards removing the dependency of the [rioxarray][] package in
7187

7288
#### PyArrow
7389

90+
[Apache Arrow][] is a development platform for in-memory analytics. It contains a set of
91+
technologies that enable big data systems to process and move data fast. It specifies a
92+
standardized language-independent columnar memory format for flat and hierarchical data,
93+
organized for efficient analytic operations on modern hardware. The Arrow Python bindings
94+
(also named "PyArrow") have first-class integration with NumPy, pandas, and built-in
95+
Python objects. They are based on the C++ implementation of Arrow.
96+
97+
```{note}
98+
If you have PyArrow installed, PyGMT does have some initial support for {class}`pandas.Series
99+
and {class}`pandas.DataFrame` objects with Apache Arrow-backed arrays. Specifically, only
100+
uint/int/float and date32/date64 dtypes are supported for now. Support for string Arrow
101+
dtypes is still a work in progress. For more details, see
102+
[issue #2800](https://github.com/GenericMappingTools/pygmt/issues/2800).
103+
```
104+
74105
## PyGMT ecosystem
75106

76107
*This page was adapted from [GeoPandas's Ecosystem](https://geopandas.org/en/latest/community/ecosystem.html) page.*
77108

78-
109+
[apache arrow]: https://arrow.apache.org/
79110
[contextily]: https://contextily.readthedocs.io/
80111
[geopandas]: https://geopandas.org/
81112
[matplotlib]: https://matplotlib.org/

0 commit comments

Comments
 (0)