A library for common scientific model transforms
Project description
mixmasta
A library for common scientific model transforms. This library enables fast and intuitive transforms including:
- Converting a
geotiff
to acsv
- Converting a
NetCDF
to acsv
- Geocoding
csv
data that contains latitude and longitude
Setup
Ensure you have a working installation of GDAL
You also need to ensure that numpy
is installed prior to mixmasta
installation. This is an artifact of GDAL, which will build incorrectly if numpy
is not already configured:
pip install numpy==1.20.1
pip install mixmasta
Note: if you had a prior installation of GDAL you may need to run
pip install mixmasta --no-cache-dir
in a clean environment.
You must install the GADM2 data with:
mixmasta download
Usage
Examples can be found in the input
directory.
Convert a geotiff to a dataframe with:
from mixmasta import mixmasta as mix
df = mix.raster2df('chirps-v2.0.2021.01.3.tif', feature_name='rainfall', band=1)
Note that you should specify the data band of the geotiff to process if it is multi-band. You may also specify the name of the feature column to produce. You may optionally specify a date
if the geotiff has an associated date. For example:
Convert a NetCDF to a dataframe with:
from mixmasta import mixmasta as mix
df = mix.netcdf2df('tos_O1_2001-2002.nc')
Geocode a dataframe:
from mixmasta import mixmasta as mix
# First, load in the geotiff as a dataframe
df = mix.raster2df('chirps-v2.0.2021.01.3.tif', feature_name='rainfall', band=1)
# next, we can geocode the dataframe to the admin-level desired (`admin2` or `admin3`)
# by specifying the names of the x and y columns
# in this case, we will geocode to admin2 where x,y are are 'longitude' and 'latitude', respectively.
df_g = mix.geocode("admin2", df, x='longitude', y='latitude')
Running with CLI
After cloning the repository and changing to the mixmasta
directory, you can run mixmasta via the command line.
Set-up:
While you can point mixmasta
to any file you would like to transform, the examples below assume your file is in the inputs
folder; the transformed .csv
file will be written to the outputs
folder.
- Transform geotiff to geocoded csv:
python3 mixmasta/cli.py -xform geotiff -input_file chirps-v2.0.2021.01.3.tif -output_file geotiffTEST.csv \
-geo admin2 -feature_name rainfall -band=1 -date='5/4/2010' -x longitude -y latitude
- Transform geotiff to csv:
python3 mixmasta/cli.py -xform geotiff -input_file maxhop1.tif -output_file maxhopOUT.csv \
-geo admin2 -feature_name probabilty -band=1 -x longitude -y latitude
- Transform netcdf to geocoded csv:
python3 mixmasta/cli.py -xform netcdf -input_file tos_O1_2001-2002.nc -output_file netcdf.csv \
-geo admin2 -x lon -y lat
- Transform netcdf to csv:
python3 mixmasta/cli.py -xform netcdf -input_file tos_O1_2001-2002.nc -output_file netcdf.csv
-geocode an existing csv file:
python3 mixmasta/cli.py -xform geocode -input_file no_geo.csv -geo admin3 -output_file geoed_no_geo.csv \
-x longitude -y latitude
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.1.0 (2021-02-24)
- First release on PyPI.
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
Hashes for mixmasta-0.3.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea50a6f6b98a1fe2dc7c03002e3d7c7004c7b7e99b44d9650b5b922046dfa2ea |
|
MD5 | 517e9a613d567cbdeea08da8898d861b |
|
BLAKE2b-256 | 8336fa6206f918e51d0bf5fa6bc67ec4d5b6ca47b06e2b5c88835c8fa9fcd765 |