User-friendly interface for Météo-France FA files with xarray integration
A Python package that wraps EPyGrAM with a clean, xarray-like API for handling FA files. Provides easy plotting, tar archive support, and NetCDF conversion.
- Easy plotting with
.plot()methods (like xarray) - Native xarray backend - use
xr.open_dataset()directly on FA files - Tar archive support - open FA files directly from
.tar.gzarchives - Multi-file conversion - combine multiple FA files into one NetCDF
- Simple API - no complex initialization required
- CLI tool for quick operations
Important: This package requires Python 3.11.
# Create a new environment with Python 3.11
conda create -n faxarray_env python=3.11
conda activate faxarray_env
# Install faxarray
pip install git+https://github.com/Debasish-Mahapatra/faxarrayimport xarray as xr
import faxarray # Just import to register the backend
# Open FA file - auto-detects format
ds = xr.open_dataset('pfABOFABOF+0001')
# All xarray operations work
print(ds['SURFTEMPERATURE'].mean())
ds.to_netcdf('output.nc')import faxarray as fx
# Open directly from tar archive
ds = fx.open_tar('pf20130101.tar.gz', '/tmp/extract')
# Use xarray filtering (lazy loading - fast!)
temp = ds['SURFTEMPERATURE'].isel(time=0)
temp.plot()
ds.close() # Cleanup temp filesSee docs/exploring_tar_data.md for full documentation.
import faxarray as fx
# Combine multiple files with de-accumulation
ds = fx.open_mfdataset(
'pf*+*',
variables=['SURFPREC.EAU.CON'], # Limit memory
deaccumulate=['SURFPREC.EAU.CON'],
output_file='output.nc'
)# File information
faxarray info file.fa
faxarray info file.fa --list-vars
# Convert single file
faxarray convert input.fa output.nc
# Convert multiple files with de-accumulation
faxarray convert-multi 'pf*+*' output.nc \
-v SURFPREC.EAU.CON \
-d SURFPREC.EAU.CON| Function | Description |
|---|---|
fx.open_fa(path) |
Open single FA file |
fx.open_tar(tarpath, temp_dir) |
Open FA files from tar archive |
fx.open_mfdataset(pattern, ...) |
Combine multiple FA files |
xr.open_dataset(path) |
xarray backend (auto-registered) |
open_tar:
tarpath- Path to tar archivetemp_dir- Extraction directory (required)variables- List of variables to loadpattern- Glob pattern to filter files
open_mfdataset:
paths- Glob pattern or list of filesvariables- Variables to load (saves memory)deaccumulate- Variables to de-accumulateoutput_file- Stream directly to NetCDF
- Exploring Tar Data - Full guide for tar archives
- Memory Usage - Tips for large datasets
- Python 3.11
- numpy, xarray, netCDF4, matplotlib
- epygram (v2.0.7+, auto-installed)
- h5py, cartopy
MIT