A Python library for recovering the seascape around a set of geographical points, based on Xarray.
Project description
XScape
A Python library for recovering the seascape around a set of geographical points, based on Xarray.
Why XScape?
XScape can help you whenever you want to add environmental information to georeferenced events. The information may come from satellites, numerical models, or any field represented on a latitude/longitude grid.
The library was originally developed as part of the PPR Océan & Climat, a research project funded by the French government.
Installation
Installing XScape is as simple as running:
pip install xscape
You may also install the library directly by cloning the repository.
Once you have it on your own machine, go into the XScape directory and run poetry install.
The whole process can be done in three commands:
git clone https://github.com/Articoking/XScape.git
cd XScape
poetry install
If you want to contribute to the library, follow the specific installation instructions in the documentation.
Basic usage
To use XScape, you only need two things:
- A list of points in a pandas DataFrame with
latandlonas columns. - An Xarray DataArray containing the "background" variable in a regular latitude/longitude grid.
Let's start by generating some points in the South Atlantic Ocean
import xarray as xr
import xscape as xscp
n_points = 10
points = xscp.generate_points(
n_points,
lon_range = (-50, 20),
lat_range = (-60, 0)
)
In this example, we'll use XScape functions to get Sea Surface Temperature data from GLORYS. To do that, we need to first define the size of the seascape we want to get around each point, in this case 1°. XScape uses this information to avoid requesting an area much larger than that covered by the points.
seascape_size = 1 # degrees
glorys_var = xscp.get_glorys_var(
points,
seascape_size,
'thetao', # Temperature variable name
start_datetime = "2000-01-01",
end_datetime = "2000-12-31",
)
glorys_var = glorys_var.isel(time=0, depth=0) # See note below
NOTE: XScape currently has no way of obtaining seascapes with time or depth as dimensions, but that will be added in the future. For now, only 2D horizontal maps can be used to create seascapes.
Finally, we create our "XScape DataArray" using the create_xscp_da() function:
xscp_da = xscp.create_xscp_da(
points,
seascape_size,
glorys_var
)
This is a regular Xarray DataArray object with a special format that makes working with seascapes quite simple. For example, you can easily select the seascape that corresponds to the first point in your list:
first_point = points.iloc[0]
seascape = xscp_da.xscp.ss_sel(first_point)
For more information on the format of XScape DataArrays refer to the dedicated documentation page.
Related works
If XScape does not fit your needs, consider taking a look at geoenrich.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xscape-0.2.0.tar.gz.
File metadata
- Download URL: xscape-0.2.0.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.11.0-25-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed9ba1045da8a467bcba4e70e567ec30354f848736351f37afb7288c85fc607d
|
|
| MD5 |
ecd2fab7049aef3920a6a7d7ca172f8e
|
|
| BLAKE2b-256 |
3ed5d1f1df81b3c1b2a2d70b33660440196b3da30671d4f2d08189a4420e311d
|
File details
Details for the file xscape-0.2.0-py3-none-any.whl.
File metadata
- Download URL: xscape-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.11.0-25-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4d0f497205411e7f472a901ae30d8e1ec599204060ed0d03606078659797be2
|
|
| MD5 |
9c0c47df535aa52cd939016eda07374b
|
|
| BLAKE2b-256 |
c582cc7bd59e1f45a78f3dc69b6e6dddc3b71ad6eccf770efb544e4829b344cc
|