|
6 | 6 |
|
7 | 7 | #### NumPy
|
8 | 8 |
|
| 9 | +[NumPy][] is the fundamental package for scientific computing in Python. It is a Python |
| 10 | +library that provides a multidimensional array object, various derived objects (such as |
| 11 | +masked arrays and matrices), and an assortment of routines for fast operations on arrays, |
| 12 | +including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete |
| 13 | +Fourier transforms, basic linear algebra, basic statistical operations, random simulation |
| 14 | +and much more. |
| 15 | + |
9 | 16 | #### Pandas
|
10 | 17 |
|
11 |
| -#### Xarray |
| 18 | +[pandas][] is a Python package providing fast, flexible, and expressive data structures |
| 19 | +designed to make working with "relational" or "labeled" data both easy and intuitive. |
| 20 | +It aims to be the fundamental high-level building block for doing practical, real-world |
| 21 | +data analysis in Python. Additionally, it has the broader goal of becoming the most |
| 22 | +powerful and flexible open source data analysis/manipulation tool available in any |
| 23 | +language. It is already well on its way toward this goal. |
12 | 24 |
|
13 |
| -#### packaging |
| 25 | +#### Xarray |
14 | 26 |
|
15 |
| -#### netCDF4 |
| 27 | +[Xarray][] is an open source project and Python package that introduces labels in the |
| 28 | +form of dimensions, coordinates, and attributes on top of raw NumPy-like arrays, which |
| 29 | +allows for more intuitive, more concise, and less error-prone user experience. |
16 | 30 |
|
17 | 31 | ### Optional dependencies
|
18 | 32 |
|
19 | 33 | #### IPython
|
20 | 34 |
|
21 | 35 | #### GeoPandas
|
22 | 36 |
|
23 |
| -[GeoPandas](https://geopandas.org/) is an open source project to make working with |
24 |
| -geospatial data in Python easier. GeoPandas extends the datatypes used by |
25 |
| -[pandas](https://pandas.pydata.org/) to allow spatial operations on geometric types. |
26 |
| -Geometric operations are performed by [shapely](https://shapely.readthedocs.io/). |
27 |
| -Geopandas further depends on [pyogrio](https://pyogrio.readthedocs.io/en/) for file |
28 |
| -access and [matplotlib](https://matplotlib.org/) for plotting. |
| 37 | +[geopandas][] is an open source project to make working with geospatial data in Python |
| 38 | +easier. GeoPandas extends the datatypes used by [pandas][] to allow spatial operations |
| 39 | +on geometric types. Geometric operations are performed by [shapely][]. Geopandas further |
| 40 | +depends on [pyogrio][] for file access and [matplotlib][] for plotting. |
29 | 41 |
|
30 | 42 | PyGMT doesn't directly rely on GeoPandas, but provides support of GeoPandas's data
|
31 | 43 | structure, {class}`geopandas.GeoDataFrame` and {class}`geopandas.GeoSeries`, which can
|
32 | 44 | be directly used in data processing and plotting functions/methods of PyGMT.
|
33 | 45 |
|
34 | 46 | #### Contextily
|
35 | 47 |
|
36 |
| -[contextily](https://contextily.readthedocs.io/) is a small Python package to retrieve |
37 |
| -tile maps from the internet. It can add those tiles as basemap to matplotlib figures or |
38 |
| -write tile maps to disk into geospatial raster files. Bounding boxes can be passed in |
39 |
| -both WGS84 (EPSG:4326) and Spheric Mercator (EPSG:3857). |
| 48 | +[contextily][] is a small Python package to retrieve tile maps from the internet. It can |
| 49 | +add those tiles as basemap to matplotlib figures or write tile maps to disk into |
| 50 | +geospatial raster files. Bounding boxes can be passed in both WGS84 (EPSG:4326) and |
| 51 | +Spheric Mercator (EPSG:3857). |
40 | 52 |
|
41 | 53 | In PyGMT, {func}`pygmt.datasets.load_tile_map` and {class}`pygmt.Figure.tilemap` rely
|
42 | 54 | on it.
|
43 | 55 |
|
44 | 56 | #### RioXarray
|
45 | 57 |
|
| 58 | +[rioxarray][] is a geospatial [xarray][] extension powered by rasterio. Built on top of |
| 59 | +[rasterio][], it enables seamless reading, writing, and manipulation of multi-dimensional |
| 60 | +arrays with geospatial attributes such as coordinate reference systems (CRS) and spatial extent |
| 61 | +(bounds). |
| 62 | + |
| 63 | +Currently, PyGMT relies on [rioxarray][] to to saving multi-band rasters to temporary files |
| 64 | +in GeoTIFF format, to support processing and plotting 3-D :class:`xarray.DataArray` |
| 65 | +images. |
| 66 | + |
| 67 | +```{note} |
| 68 | +We're working towards removing the dependency of the [rioxarray][] package in |
| 69 | +[PR #3468](https://github.com/GenericMappingTools/pygmt/pull/3468). |
| 70 | +``` |
| 71 | + |
46 | 72 | #### PyArrow
|
47 | 73 |
|
48 | 74 | ## PyGMT ecosystem
|
49 | 75 |
|
50 | 76 | *This page was adapted from [GeoPandas's Ecosystem](https://geopandas.org/en/latest/community/ecosystem.html) page.*
|
| 77 | + |
| 78 | + |
| 79 | +[contextily]: https://contextily.readthedocs.io/ |
| 80 | +[geopandas]: https://geopandas.org/ |
| 81 | +[matplotlib]: https://matplotlib.org/ |
| 82 | +[pandas]: https://pandas.pydata.org/ |
| 83 | +[pyarrow]: https://arrow.apache.org/docs/python/ |
| 84 | +[pyogrio]: https://pyogrio.readthedocs.io/ |
| 85 | +[rioxarray]: https://corteva.github.io/rioxarray/ |
| 86 | +[shapely]: https://shapely.readthedocs.io/ |
| 87 | +[xarray]: https://xarray.pydata.org/ |
0 commit comments