Documentation
¶
Overview ¶
Package xarray fournit des tableaux N-dimensionnels étiquetés en Go, inspirés de la bibliothèque Python xarray.
L'architecture reprend celle de xarray :
- Variable : conteneur bas niveau (données plates + dimensions nommées) ;
- DataArray : Variable + coordonnées étiquetées + nom (indexation par label) ;
- Dataset : collection de DataArrays partageant des dimensions et coordonnées.
Les tableaux sont génériques sur un type numérique (contrainte Number) et disposés en mémoire selon l'ordre C (row-major).
Index ¶
- func DecodeCFTime(values []float64, units string) ([]float64, error)
- func EpochCoord(times []time.Time) []float64
- func EpochSeconds(t time.Time) float64
- func ExtractTime(epochCoord []float64, c TimeComponent) []float64
- func GeoCoords(t Affine, width, height int) (xs, ys []float64, err error)
- func PyramidLevels(dir string) ([]pyramidLevel, error)
- func Reproject(src []float64, srcW, srcH int, srcT Affine, srcCRS string, dstT Affine, ...) ([]float64, error)
- func ReprojectFromGeos(src []float64, srcW, srcH int, srcT Affine, geos Geostationary, dstT Affine, ...) ([]float64, error)
- func ReprojectNearest(src []float64, srcW, srcH int, srcT Affine, srcCRS string, dstT Affine, ...) ([]float64, error)
- func ResampleSwathNearest(data, lon, lat []float64, dstT Affine, dstW, dstH int) (grid []float64, counts []int, err error)
- func ResampleSwathNearestRadius(data, lon, lat []float64, dstT Affine, dstW, dstH, radiusCells int) ([]float64, error)
- func SeasonName(s int) string
- func TimeFromEpoch(sec float64) time.Time
- func TransformXY(fromCRS, toCRS string, x, y float64) (float64, float64, error)
- func WebMercatorForward(lon, lat float64) (x, y float64)
- func WebMercatorInverse(x, y float64) (lon, lat float64)
- func WriteDataArrayZarr(dir string, da *DataArray[float64], chunks []int, comp ZarrCompression) error
- func WriteDataArrayZarrV3(dir string, da *DataArray[float64], chunks []int, comp ZarrCompression) error
- func WriteDatasetZarr(dir string, ds *Dataset[float64], comp ZarrCompression) error
- func WriteDatasetZarrChunked(dir string, ds *Dataset[float64], chunks map[string]int, comp ZarrCompression) error
- func WriteDatasetZarrV3(dir string, ds *Dataset[float64], comp ZarrCompression) error
- func WriteDatasetZarrV3Chunked(dir string, ds *Dataset[float64], chunks map[string]int, comp ZarrCompression) error
- func WritePyramidZarr(dir string, da *DataArray[float64], yDim, xDim string, nlevels, factor int, ...) error
- func WriteRawF64(path string, data []float64) error
- type Affine
- type ChunkSource
- type DataArray
- func Concat[T Number](arrays []*DataArray[T], dim string) (*DataArray[T], error)
- func Dot[T Number](a, b *DataArray[T], dim string) (*DataArray[T], error)
- func InterpBilinear(da *DataArray[float64], xDim, yDim string, x, y float64) (*DataArray[float64], error)
- func NewDataArray[T Number](dims []string, shape []int, data []T, coords map[string][]T, name string) (*DataArray[T], error)
- func ReadDataArrayCSV[T Number](r io.Reader) (*DataArray[T], error)
- func ReadDataArrayJSON[T Number](r io.Reader) (*DataArray[T], error)
- func ReadDataArrayNetCDF[T Number](r io.Reader) (*DataArray[T], error)
- func ReadDataArrayZarr(dir string) (*DataArray[float64], error)
- func ReprojectDataArray(da *DataArray[float64], srcT Affine, srcCRS string, dstT Affine, ...) (*DataArray[float64], error)
- func Stack[T Number](arrays []*DataArray[T], newDim string, labels []T) (*DataArray[T], error)
- func SwathToDataArray(data, lon, lat []float64, dstT Affine, dstW, dstH int, name, yDim, xDim string) (*DataArray[float64], error)
- func (da *DataArray[T]) Abs() *DataArray[T]
- func (da *DataArray[T]) Add(other *DataArray[T]) (*DataArray[T], error)
- func (da *DataArray[T]) AddJoin(other *DataArray[T], join JoinType, fill T) (*DataArray[T], error)
- func (da *DataArray[T]) AddScalar(s T) *DataArray[T]
- func (da *DataArray[T]) Apply(fn func(T) T) *DataArray[T]
- func (da *DataArray[T]) ArgMaxAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) ArgMinAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) BFill(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) Ceil() *DataArray[T]
- func (da *DataArray[T]) Clip(lo, hi T) *DataArray[T]
- func (da *DataArray[T]) Coarsen(dim string, factor int) (*Resample[T], error)
- func (da *DataArray[T]) Coord(dim string) ([]T, error)
- func (da *DataArray[T]) Cos() *DataArray[T]
- func (da *DataArray[T]) Count() int
- func (da *DataArray[T]) CountAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) CountNA() int
- func (da *DataArray[T]) Cumprod(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) Cumsum(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) Data() []T
- func (da *DataArray[T]) Diff(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) Dims() []string
- func (da *DataArray[T]) Div(other *DataArray[T]) (*DataArray[T], error)
- func (da *DataArray[T]) DivJoin(other *DataArray[T], join JoinType, fill T) (*DataArray[T], error)
- func (da *DataArray[T]) DropNA(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) Exp() *DataArray[T]
- func (da *DataArray[T]) ExpandDims(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) FFill(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) FillNA(value T) *DataArray[T]
- func (da *DataArray[T]) Floor() *DataArray[T]
- func (da *DataArray[T]) Georeference(gr GeoRef, xDim, yDim string) (*DataArray[T], error)
- func (da *DataArray[T]) GroupBy(dim string) (*GroupBy[T], error)
- func (da *DataArray[T]) GroupByBins(dim string, edges []T) (*Resample[T], error)
- func (da *DataArray[T]) HasDim(dim string) bool
- func (da *DataArray[T]) IdxMaxAxis(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) IdxMinAxis(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) InterpolateNA(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) IsNull() *DataArray[T]
- func (da *DataArray[T]) Isel(dim string, index int) (*DataArray[T], error)
- func (da *DataArray[T]) Log() *DataArray[T]
- func (da *DataArray[T]) MarshalJSON() ([]byte, error)
- func (da *DataArray[T]) Max() T
- func (da *DataArray[T]) MaxAxis(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) MaxAxisSkipNA(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) MaxSkipNA() T
- func (da *DataArray[T]) Maximum(other *DataArray[T]) (*DataArray[T], error)
- func (da *DataArray[T]) Mean() float64
- func (da *DataArray[T]) MeanAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) MeanAxisSkipNA(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) MeanSkipNA() float64
- func (da *DataArray[T]) Median() float64
- func (da *DataArray[T]) MedianAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) Min() T
- func (da *DataArray[T]) MinAxis(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) MinAxisSkipNA(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) MinSkipNA() T
- func (da *DataArray[T]) Minimum(other *DataArray[T]) (*DataArray[T], error)
- func (da *DataArray[T]) Mul(other *DataArray[T]) (*DataArray[T], error)
- func (da *DataArray[T]) MulJoin(other *DataArray[T], join JoinType, fill T) (*DataArray[T], error)
- func (da *DataArray[T]) MulScalar(s T) *DataArray[T]
- func (da *DataArray[T]) Name() string
- func (da *DataArray[T]) Ndim() int
- func (da *DataArray[T]) NotNull() *DataArray[T]
- func (da *DataArray[T]) Pow(p float64) *DataArray[T]
- func (da *DataArray[T]) Quantile(q float64) float64
- func (da *DataArray[T]) QuantileAxis(dim string, q float64) (*DataArray[float64], error)
- func (da *DataArray[T]) Rename(name string) *DataArray[T]
- func (da *DataArray[T]) RenameDim(old, newName string) (*DataArray[T], error)
- func (da *DataArray[T]) Resample(dim string, freq T) (*Resample[T], error)
- func (da *DataArray[T]) Rolling(dim string, window int) (*Rolling[T], error)
- func (da *DataArray[T]) Round() *DataArray[T]
- func (da *DataArray[T]) Sel(dim string, label T) (*DataArray[T], error)
- func (da *DataArray[T]) SelMany(dim string, labels []T) (*DataArray[T], error)
- func (da *DataArray[T]) SelNearest(dim string, label T) (*DataArray[T], error)
- func (da *DataArray[T]) SelNearestKeep(dim string, label T) (*DataArray[T], error)
- func (da *DataArray[T]) SelNearestMany(dim string, labels []T) (*DataArray[T], error)
- func (da *DataArray[T]) SelRange(dim string, lo, hi T) (*DataArray[T], error)
- func (da *DataArray[T]) SelStr(dim string, label string) (*DataArray[T], error)
- func (da *DataArray[T]) SelStrMany(dim string, labels []string) (*DataArray[T], error)
- func (da *DataArray[T]) Shape() []int
- func (da *DataArray[T]) Sign() *DataArray[T]
- func (da *DataArray[T]) Sin() *DataArray[T]
- func (da *DataArray[T]) Size() int
- func (da *DataArray[T]) Sqrt() *DataArray[T]
- func (da *DataArray[T]) Squeeze(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) Std() float64
- func (da *DataArray[T]) StdAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) StrCoord(dim string) ([]string, error)
- func (da *DataArray[T]) String() string
- func (da *DataArray[T]) Sub(other *DataArray[T]) (*DataArray[T], error)
- func (da *DataArray[T]) SubJoin(other *DataArray[T], join JoinType, fill T) (*DataArray[T], error)
- func (da *DataArray[T]) Sum() T
- func (da *DataArray[T]) SumAxis(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) SumAxisSkipNA(dim string) (*DataArray[T], error)
- func (da *DataArray[T]) SumSkipNA() T
- func (da *DataArray[T]) Tanh() *DataArray[T]
- func (da *DataArray[T]) Transpose(newDims ...string) (*DataArray[T], error)
- func (da *DataArray[T]) UnmarshalJSON(b []byte) error
- func (da *DataArray[T]) Var() float64
- func (da *DataArray[T]) VarAxis(dim string) (*DataArray[float64], error)
- func (da *DataArray[T]) Variable() *Variable[T]
- func (da *DataArray[T]) Where(mask *DataArray[T], other T) (*DataArray[T], error)
- func (da *DataArray[T]) WhereFunc(keep func(T) bool, other T) *DataArray[T]
- func (da *DataArray[T]) WithStrCoord(dim string, labels []string) (*DataArray[T], error)
- func (da *DataArray[T]) WriteCSV(w io.Writer) error
- func (da *DataArray[T]) WriteJSON(w io.Writer) error
- func (da *DataArray[T]) WriteNetCDF(w io.Writer) error
- type Dataset
- func DecodeCF(ds *Dataset[float64]) (*Dataset[float64], error)
- func DecodeTime(ds *Dataset[float64], dim string) (*Dataset[float64], error)
- func NewDataset[T Number](vars map[string]*DataArray[T]) (*Dataset[T], error)
- func OpenNetCDFFile(path string, conv NetCDFConverter) (*Dataset[float64], error)
- func ReadDatasetJSON[T Number](r io.Reader) (*Dataset[T], error)
- func ReadDatasetNetCDF[T Number](rd io.Reader) (*Dataset[T], error)
- func ReadDatasetZarr(dir string) (*Dataset[float64], error)
- func ReadPyramidLevel(dir string, level int) (*Dataset[float64], error)
- func (ds *Dataset[T]) Add(other *Dataset[T]) (*Dataset[T], error)
- func (ds *Dataset[T]) AddScalar(s T) (*Dataset[T], error)
- func (ds *Dataset[T]) Coarsen(dim string, factor int) (*DatasetGroupBy[T], error)
- func (ds *Dataset[T]) Coord(dim string) ([]T, error)
- func (ds *Dataset[T]) Cumsum(dim string) (*Dataset[T], error)
- func (ds *Dataset[T]) Dims() map[string]int
- func (ds *Dataset[T]) Div(other *Dataset[T]) (*Dataset[T], error)
- func (ds *Dataset[T]) DropVars(names ...string) (*Dataset[T], error)
- func (ds *Dataset[T]) FillNA(value T) (*Dataset[T], error)
- func (ds *Dataset[T]) GeoRefFromCF(name string) (GeoRef, bool)
- func (ds *Dataset[T]) Get(name string) (*DataArray[T], error)
- func (ds *Dataset[T]) GroupBy(dim string) (*DatasetGroupBy[T], error)
- func (ds *Dataset[T]) GroupByBins(dim string, edges []T) (*DatasetGroupBy[T], error)
- func (ds *Dataset[T]) GroupByTime(dim string, c TimeComponent) (*DatasetGroupBy[T], error)
- func (ds *Dataset[T]) Isel(dim string, index int) (*Dataset[T], error)
- func (ds *Dataset[T]) MaxAxis(dim string) (*Dataset[T], error)
- func (ds *Dataset[T]) MeanAxis(dim string) (*Dataset[float64], error)
- func (ds *Dataset[T]) MedianAxis(dim string) (*Dataset[float64], error)
- func (ds *Dataset[T]) Merge(other *Dataset[T]) (*Dataset[T], error)
- func (ds *Dataset[T]) MinAxis(dim string) (*Dataset[T], error)
- func (ds *Dataset[T]) Mul(other *Dataset[T]) (*Dataset[T], error)
- func (ds *Dataset[T]) MulScalar(s T) (*Dataset[T], error)
- func (ds *Dataset[T]) Resample(dim string, freq T) (*DatasetGroupBy[T], error)
- func (ds *Dataset[T]) ResampleCalendar(dim string, p Period) (*DatasetGroupBy[T], error)
- func (ds *Dataset[T]) Rolling(dim string, window int) (*DatasetRolling[T], error)
- func (ds *Dataset[T]) Sel(dim string, label T) (*Dataset[T], error)
- func (ds *Dataset[T]) StdAxis(dim string) (*Dataset[float64], error)
- func (ds *Dataset[T]) String() string
- func (ds *Dataset[T]) Sub(other *Dataset[T]) (*Dataset[T], error)
- func (ds *Dataset[T]) SumAxis(dim string) (*Dataset[T], error)
- func (ds *Dataset[T]) VarAxis(dim string) (*Dataset[float64], error)
- func (ds *Dataset[T]) VarNames() []string
- func (ds *Dataset[T]) WithVar(name string, da *DataArray[T]) (*Dataset[T], error)
- func (ds *Dataset[T]) WriteJSON(w io.Writer) error
- func (ds *Dataset[T]) WriteNetCDF(w io.Writer) error
- type DatasetGroupBy
- type DatasetRolling
- type GeoRef
- type Geostationary
- type GribMessage
- type GroupBy
- type JoinType
- type LazyArray
- func (l *LazyArray) Add(other *LazyArray) (*LazyArray, error)
- func (l *LazyArray) AddScalar(s float64) *LazyArray
- func (l *LazyArray) Compute() (*DataArray[float64], error)
- func (l *LazyArray) Div(other *LazyArray) (*LazyArray, error)
- func (l *LazyArray) Map(fn func(float64) float64) *LazyArray
- func (l *LazyArray) Max() (float64, error)
- func (l *LazyArray) MaxAxis(dim string) (*DataArray[float64], error)
- func (l *LazyArray) Mean() (float64, error)
- func (l *LazyArray) MeanAxis(dim string) (*DataArray[float64], error)
- func (l *LazyArray) Min() (float64, error)
- func (l *LazyArray) MinAxis(dim string) (*DataArray[float64], error)
- func (l *LazyArray) Mul(other *LazyArray) (*LazyArray, error)
- func (l *LazyArray) MulScalar(s float64) *LazyArray
- func (l *LazyArray) NumChunks() int
- func (l *LazyArray) Sub(other *LazyArray) (*LazyArray, error)
- func (l *LazyArray) Sum() (float64, error)
- func (l *LazyArray) SumAxis(dim string) (*DataArray[float64], error)
- type NetCDFConverter
- type NetCDFFormat
- type Number
- type Period
- type Resample
- type Resampling
- type Rolling
- type TimeComponent
- type Variable
- func (v *Variable[T]) At(idx ...int) (T, error)
- func (v *Variable[T]) Attrs() map[string]string
- func (v *Variable[T]) Data() []T
- func (v *Variable[T]) Dims() []string
- func (v *Variable[T]) Isel(dim string, index int) (*Variable[T], error)
- func (v *Variable[T]) Ndim() int
- func (v *Variable[T]) SetAttr(key, value string)
- func (v *Variable[T]) Shape() []int
- func (v *Variable[T]) Size() int
- func (v *Variable[T]) String() string
- func (v *Variable[T]) Transpose(newDims ...string) (*Variable[T], error)
- type ZarrComp
- type ZarrCompression
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeCFTime ¶
DecodeCFTime convertit des valeurs temporelles CF (« <unité> since <date> ») en secondes depuis l'epoch Unix. Unités reconnues : seconds, minutes, hours, days (et abréviations usuelles).
func EpochCoord ¶
EpochCoord convertit une suite d'instants en coordonnée (secondes epoch), prête à être passée comme coordonnée d'un DataArray[float64].
func EpochSeconds ¶
EpochSeconds convertit un instant en secondes depuis l'epoch Unix (UTC).
func ExtractTime ¶
func ExtractTime(epochCoord []float64, c TimeComponent) []float64
ExtractTime renvoie la composante c de chaque instant (coordonnée en secondes epoch). Pratique pour construire une coordonnée dérivée (ex. le mois).
func GeoCoords ¶
GeoCoords renvoie les coordonnées monde des CENTRES de pixels le long des axes x (par colonne) et y (par ligne), pour une grille axis-aligned (B = D = 0). Renvoie une erreur si la transformation comporte une rotation (B ou D ≠ 0), cas où x et y ne sont pas séparables en axes 1D.
func PyramidLevels ¶
PyramidLevels lit la métadonnée « multiscales » d'une pyramide et renvoie la liste des niveaux (chemin + facteur).
func Reproject ¶
func Reproject(src []float64, srcW, srcH int, srcT Affine, srcCRS string, dstT Affine, dstW, dstH int, dstCRS string, method Resampling) ([]float64, error)
Reproject reprojette une grille source vers une grille cible selon la méthode de rééchantillonnage choisie. La transformation de coordonnées s'appuie sur TransformXY (CRS EPSG gérés). Pour une projection non-EPSG (géostationnaire), voir ReprojectFromGeos / reprojectWith.
func ReprojectFromGeos ¶
func ReprojectFromGeos(src []float64, srcW, srcH int, srcT Affine, geos Geostationary, dstT Affine, dstW, dstH int, method Resampling) ([]float64, error)
ReprojectFromGeos reprojette une grille en projection géostationnaire (affine srcT donnant les coordonnées du plan satellite en mètres) vers une grille lon/lat (dstT en degrés, EPSG:4326). Cas des scènes MTG/Meteosat FCI.
func ReprojectNearest ¶
func ReprojectNearest(src []float64, srcW, srcH int, srcT Affine, srcCRS string, dstT Affine, dstW, dstH int, dstCRS string) ([]float64, error)
ReprojectNearest reprojette une grille source (srcW×srcH, géotransformation srcT, CRS srcCRS) vers une grille cible (dstW×dstH, géotransformation dstT, CRS dstCRS) par plus proche voisin. src et le résultat sont en ordre C (ligne par ligne), indexés [row*width + col].
func ResampleSwathNearest ¶
func ResampleSwathNearest(data, lon, lat []float64, dstT Affine, dstW, dstH int) (grid []float64, counts []int, err error)
ResampleSwathNearest projette les valeurs data, géolocalisées par lon/lat (de même longueur), sur la grille cible définie par la géotransformation dstT (degrés, lon/lat) et dstW×dstH. Renvoie les valeurs grillées (ordre C) et le nombre de pixels sources tombés dans chaque cellule.
func ResampleSwathNearestRadius ¶
func ResampleSwathNearestRadius(data, lon, lat []float64, dstT Affine, dstW, dstH, radiusCells int) ([]float64, error)
ResampleSwathNearestRadius rééchantillonne une fauchée par plus proche voisin avec un rayon de recherche : pour chaque cellule cible, on retient la valeur du pixel source le plus proche (distance en lon/lat) trouvé dans une fenêtre de ±radiusCells cellules ; aucune → NaN. Contrairement au binning simple, cela COMBLE les cellules vides quand la grille cible est plus fine que la fauchée (équivalent au radius_of_influence de pyresample, exprimé ici en cellules).
func SeasonName ¶
SeasonName renvoie le nom court d'une saison météorologique (0..3).
func TimeFromEpoch ¶
TimeFromEpoch reconstruit un instant (UTC) à partir de secondes epoch.
func TransformXY ¶
TransformXY transforme un couple de coordonnées de fromCRS vers toCRS, en passant par le géographique WGS84 (lon/lat) comme pivot. CRS pris en charge : EPSG:4326 (lon/lat), EPSG:3857 (Web Mercator), UTM WGS84 (EPSG:326zz/327zz). Toute autre paire → erreur explicite (PROJ requis).
Convention x/y : en 4326, x = longitude, y = latitude (degrés) ; en projeté, (x, y) en mètres.
func WebMercatorForward ¶
WebMercatorForward projette (lon, lat) en degrés (EPSG:4326) vers (x, y) en mètres (EPSG:3857).
func WebMercatorInverse ¶
WebMercatorInverse projette (x, y) en mètres (EPSG:3857) vers (lon, lat) en degrés (EPSG:4326).
func WriteDataArrayZarr ¶
func WriteDataArrayZarr(dir string, da *DataArray[float64], chunks []int, comp ZarrCompression) error
WriteDataArrayZarr écrit un DataArray[float64] dans le répertoire dir au format Zarr v2. chunks donne la taille de chunk par dimension (même longueur que la forme). comp choisit la compression des chunks.
func WriteDataArrayZarrV3 ¶
func WriteDataArrayZarrV3(dir string, da *DataArray[float64], chunks []int, comp ZarrCompression) error
WriteDataArrayZarrV3 écrit un DataArray au format Zarr v3 dans dir.
func WriteDatasetZarr ¶
func WriteDatasetZarr(dir string, ds *Dataset[float64], comp ZarrCompression) error
WriteDatasetZarr écrit un Dataset[float64] comme groupe Zarr v2 dans dir. Chaque array est stocké en un seul chunk (taille = forme). comp choisit la compression.
func WriteDatasetZarrChunked ¶
func WriteDatasetZarrChunked(dir string, ds *Dataset[float64], chunks map[string]int, comp ZarrCompression) error
WriteDatasetZarrChunked écrit un Dataset[float64] en Zarr v2 avec un découpage configurable : chunks associe un nom de dimension à une taille de chunk (façon ds.chunk({...}) de xarray). Les dimensions absentes ne sont pas découpées. Permet des accès partiels efficaces sur de grands tableaux.
func WriteDatasetZarrV3 ¶
func WriteDatasetZarrV3(dir string, ds *Dataset[float64], comp ZarrCompression) error
WriteDatasetZarrV3 écrit un Dataset comme groupe Zarr v3 (un array par coordonnée et par variable, chacun en un seul chunk).
func WriteDatasetZarrV3Chunked ¶
func WriteDatasetZarrV3Chunked(dir string, ds *Dataset[float64], chunks map[string]int, comp ZarrCompression) error
WriteDatasetZarrV3Chunked écrit un Dataset en Zarr v3 avec un découpage configurable (chunks : dimension → taille de chunk, façon ds.chunk({...})).
func WritePyramidZarr ¶
func WritePyramidZarr(dir string, da *DataArray[float64], yDim, xDim string, nlevels, factor int, comp ZarrCompression) error
WritePyramidZarr écrit une pyramide multi-échelles d'un raster 2D (dimensions [yDim, xDim]). nlevels niveaux sont produits (≥1) ; chaque niveau suivant est une réduction par moyenne de blocs factor×factor (factor ≥ 2) sur y puis x. Les niveaux sont des groupes Zarr « 0 »…« nlevels-1 » sous dir.
func WriteRawF64 ¶
WriteRawF64 écrit des données float64 dans un fichier binaire (little-endian, ordre C), lisible par ChunkFile.
Types ¶
type Affine ¶
type Affine struct {
A, B, C, D, E, F float64
}
Affine est une transformation affine 2D (6 coefficients, convention affine/GDAL).
func FromGDAL ¶
FromGDAL construit une Affine à partir d'un GeoTransform GDAL [x0, dx, rx, y0, ry, dy] (ordre GDAL : origine, pas, rotations).
func ParseGDALGeoTransform ¶
ParseGDALGeoTransform lit une chaîne GeoTransform GDAL « x0 dx rx y0 ry dy » (telle qu'écrite par GDAL/rioxarray dans l'attribut GeoTransform) en Affine.
func (Affine) Apply ¶
Apply transforme des coordonnées pixel (col, row) en coordonnées monde (x, y).
type ChunkSource ¶
type ChunkSource interface {
Dims() []string
Shape() []int
Coords() map[string][]float64
NumChunks() int
ChunkRows(i int) (start, end int) // plage de lignes (axe 0) du chunk i
ChunkData(i int) ([]float64, error)
}
ChunkSource fournit les données d'un tableau, bloc par bloc, le long de l'axe 0.
type DataArray ¶
type DataArray[T Number] struct { // contains filtered or unexported fields }
DataArray est un tableau N-dimensionnel étiqueté : une Variable enrichie de coordonnées associées à ses dimensions et d'un nom optionnel.
Les coordonnées permettent l'indexation par label (Sel) en plus de l'indexation par position (Isel).
func Concat ¶
Concat concatène plusieurs DataArrays le long d'une dimension existante dim. Tous les tableaux doivent avoir les mêmes dimensions (noms et ordre) et les mêmes tailles sur toutes les dimensions autres que dim. La coordonnée de dim résultante est la concaténation des coordonnées correspondantes (si toutes présentes) ; les autres coordonnées proviennent du premier tableau.
func Dot ¶
Dot contracte deux DataArrays sur une dimension commune dim (produit tensoriel), à la manière de `xr.dot(a, b, dims=dim)`. Le résultat porte les dimensions restantes de a puis celles de b ; on somme sur dim :
c[i, j] = Σ_k a[i, k] · b[k, j]
Pour ce MVP, dim doit être la seule dimension commune à a et b.
func InterpBilinear ¶
func InterpBilinear(da *DataArray[float64], xDim, yDim string, x, y float64) (*DataArray[float64], error)
InterpBilinear renvoie le DataArray réduit sur xDim/yDim par interpolation bilinéaire à la position (x, y). Erreur si le point est hors de la grille.
func NewDataArray ¶
func NewDataArray[T Number](dims []string, shape []int, data []T, coords map[string][]T, name string) (*DataArray[T], error)
NewDataArray construit un DataArray.
- dims/shape/data définissent la Variable sous-jacente (cf. NewVariable) ;
- coords associe optionnellement à certaines dimensions un vecteur d'étiquettes de même longueur que la dimension ;
- name est le nom (optionnel) du tableau.
func ReadDataArrayCSV ¶
ReadDataArrayCSV lit un DataArray depuis un flux CSV au format tidy. La dernière colonne est la valeur ; les précédentes sont les dimensions.
func ReadDataArrayJSON ¶
ReadDataArrayJSON lit un DataArray depuis un flux JSON.
func ReadDataArrayNetCDF ¶
ReadDataArrayNetCDF lit un DataArray depuis un dataset netCDF ne contenant qu'une seule variable de données.
func ReadDataArrayZarr ¶
ReadDataArrayZarr lit un DataArray[float64] depuis un store Zarr v2 (dir).
func ReprojectDataArray ¶
func ReprojectDataArray(da *DataArray[float64], srcT Affine, srcCRS string, dstT Affine, dstW, dstH int, dstCRS string, yDim, xDim string, method Resampling) (*DataArray[float64], error)
ReprojectDataArray reprojette un DataArray 2D géoréférencé (dimensions [yDim, xDim], géotransformation srcT, CRS srcCRS) vers une grille cible définie par dstT, dstW×dstH et dstCRS. Le résultat porte les coordonnées monde de la grille cible et le CRS cible (attribut "crs").
func Stack ¶
Stack empile plusieurs DataArrays de forme identique le long d'une NOUVELLE dimension newDim placée en tête, dont la coordonnée est labels (une étiquette par tableau).
func SwathToDataArray ¶
func SwathToDataArray(data, lon, lat []float64, dstT Affine, dstW, dstH int, name, yDim, xDim string) (*DataArray[float64], error)
SwathToDataArray rééchantillonne une fauchée en un DataArray[float64] géoréférencé sur la grille cible (dimensions [yDim, xDim]), directement subsettable (SubsetBBox, Query…). name est le nom de la variable produite.
func (*DataArray[T]) Add ¶
Add renvoie da + other (avec alignement et broadcasting).
Optimisation : pour le cas fréquent « float64, mêmes dimensions après alignement », on utilise un noyau direct (addFloat64) sans closure. Le chemin générique passe par une closure func(T,T) T non inlinée (un appel par élément) ; l'éviter accélère l'opération d'un ordre de grandeur sur les grands tableaux (voir docs/BENCHMARKS.md).
func (*DataArray[T]) AddJoin ¶
AddJoin renvoie da + other avec la stratégie de jointure et le remplissage donnés.
func (*DataArray[T]) ArgMaxAxis ¶
ArgMaxAxis renvoie, le long de dim, l'indice (float64) du maximum.
func (*DataArray[T]) ArgMinAxis ¶
ArgMinAxis renvoie, le long de dim, l'indice (float64) du minimum.
func (*DataArray[T]) BFill ¶
BFill propage la prochaine valeur non-NaN vers l'arrière, le long de dim (backward fill). Les NaN en fin restent NaN.
func (*DataArray[T]) Coarsen ¶
Coarsen construit un downsampling par blocs de taille factor le long de dim.
func (*DataArray[T]) CountAxis ¶
CountAxis renvoie, le long de dim, le nombre de valeurs présentes (non-NaN).
func (*DataArray[T]) Data ¶
func (da *DataArray[T]) Data() []T
Data renvoie une copie des données plates (ordre C).
func (*DataArray[T]) Diff ¶
Diff renvoie les différences successives le long de dim : out[k] = in[k+1] - in[k]. La dimension est réduite de 1 (la coordonnée conserve les positions 1..n-1, comme xarray).
func (*DataArray[T]) DropNA ¶
DropNA supprime, le long de dim, les positions dont la tranche contient au moins un NaN (how = "any", comme le défaut de xarray).
func (*DataArray[T]) ExpandDims ¶
ExpandDims insère une nouvelle dimension de taille 1 en tête (sans coordonnée). Les données ne changent pas.
func (*DataArray[T]) FFill ¶
FFill propage la dernière valeur non-NaN vers l'avant, le long de dim (forward fill). Les NaN en tête (avant toute valeur valide) restent NaN.
func (*DataArray[T]) Georeference ¶
Georeference renvoie une copie du DataArray 2D avec des coordonnées monde (centres de pixels) attachées à xDim et yDim, et le CRS stocké dans l'attribut "crs" de la variable. da doit avoir exactement les dimensions [yDim, xDim].
func (*DataArray[T]) GroupBy ¶
GroupBy construit un regroupement le long de dim, en s'appuyant sur la coordonnée de dim. La dimension résultante conserve le nom dim mais ne porte plus que les étiquettes uniques.
func (*DataArray[T]) GroupByBins ¶
GroupByBins construit un regroupement par intervalles arbitraires sur dim.
func (*DataArray[T]) IdxMaxAxis ¶
IdxMaxAxis renvoie, le long de dim, l'étiquette de coordonnée correspondant au maximum (équivalent de `idxmax` de xarray).
func (*DataArray[T]) IdxMinAxis ¶
IdxMinAxis renvoie, le long de dim, l'étiquette de coordonnée correspondant au minimum (équivalent de `idxmin` de xarray). La dimension doit avoir une coordonnée.
func (*DataArray[T]) InterpolateNA ¶
InterpolateNA remplit les valeurs manquantes (NaN) le long de dim par interpolation linéaire entre les valeurs valides encadrantes. L'interpolation se fait selon la coordonnée de dim si elle existe, sinon selon la position. Les NaN de bord (avant la première ou après la dernière valeur valide) sont conservés.
func (*DataArray[T]) Isel ¶
Isel sélectionne par position entière le long d'une dimension. La dimension est supprimée du résultat, ainsi que sa coordonnée éventuelle.
func (*DataArray[T]) MarshalJSON ¶
MarshalJSON sérialise le DataArray.
func (*DataArray[T]) Max ¶
func (da *DataArray[T]) Max() T
Max renvoie le maximum de tous les éléments. Zéro-valeur de T si vide.
func (*DataArray[T]) MaxAxisSkipNA ¶
MaxAxisSkipNA réduit dim par maximum en ignorant les NaN.
func (*DataArray[T]) MaxSkipNA ¶
func (da *DataArray[T]) MaxSkipNA() T
MaxSkipNA renvoie le maximum des éléments non-NaN.
func (*DataArray[T]) Maximum ¶
Maximum renvoie le maximum élément par élément entre da et other (avec alignement et broadcasting).
func (*DataArray[T]) MeanAxisSkipNA ¶
MeanAxisSkipNA réduit dim par moyenne (float64) en ignorant les NaN.
func (*DataArray[T]) MeanSkipNA ¶
MeanSkipNA renvoie la moyenne des éléments non-NaN (NaN si aucun).
func (*DataArray[T]) MedianAxis ¶
MedianAxis réduit dim par médiane (float64).
func (*DataArray[T]) Min ¶
func (da *DataArray[T]) Min() T
Min renvoie le minimum de tous les éléments. Zéro-valeur de T si vide.
func (*DataArray[T]) MinAxisSkipNA ¶
MinAxisSkipNA réduit dim par minimum en ignorant les NaN.
func (*DataArray[T]) MinSkipNA ¶
func (da *DataArray[T]) MinSkipNA() T
MinSkipNA renvoie le minimum des éléments non-NaN.
func (*DataArray[T]) NotNull ¶
NotNull renvoie un masque : 1 là où la valeur est présente, 0 si NaN.
func (*DataArray[T]) QuantileAxis ¶
QuantileAxis réduit dim par quantile q (float64).
func (*DataArray[T]) Rolling ¶
Rolling construit une fenêtre glissante de taille window le long de dim.
func (*DataArray[T]) Sel ¶
Sel sélectionne par label le long d'une dimension : l'étiquette est recherchée dans la coordonnée de la dimension, puis Isel est appliqué à sa position.
func (*DataArray[T]) SelMany ¶
SelMany conserve, le long de dim, les positions correspondant exactement aux étiquettes fournies (dans l'ordre donné). La dimension est conservée.
func (*DataArray[T]) SelNearest ¶
SelNearest sélectionne, le long de dim, la position dont l'étiquette est la plus proche de label (la dimension est réduite, comme Sel/Isel).
func (*DataArray[T]) SelNearestKeep ¶
SelNearestKeep sélectionne la position la plus proche de label le long de dim en CONSERVANT la dimension (taille 1). Équivalent de xarray sel(dim=[label], method="nearest"). Utile pour les exports (CoverageJSON, EDR) qui exigent des axes explicites.
func (*DataArray[T]) SelNearestMany ¶
SelNearestMany sélectionne, le long de dim, la position la plus proche pour chacune des étiquettes fournies (dans l'ordre), en CONSERVANT la dimension. Équivalent de xarray sel(dim=[l1, l2, ...], method="nearest"), là où SelNearest (label scalaire) réduit la dimension comme sel(dim=l).
func (*DataArray[T]) SelRange ¶
SelRange conserve, le long de dim, les positions dont l'étiquette est dans l'intervalle [lo, hi] (bornes incluses). La dimension est conservée.
func (*DataArray[T]) SelStr ¶
SelStr sélectionne par étiquette textuelle le long de dim (la dimension est réduite, comme Sel).
func (*DataArray[T]) SelStrMany ¶
SelStrMany conserve les positions correspondant aux étiquettes textuelles fournies (dimension conservée, ordre respecté).
func (*DataArray[T]) Squeeze ¶
Squeeze supprime la dimension dim si elle est de taille 1 (ainsi que sa coordonnée). Les données ne changent pas.
func (*DataArray[T]) Sum ¶
func (da *DataArray[T]) Sum() T
Sum renvoie la somme de tous les éléments.
func (*DataArray[T]) SumAxisSkipNA ¶
SumAxisSkipNA réduit dim par somme en ignorant les NaN.
func (*DataArray[T]) SumSkipNA ¶
func (da *DataArray[T]) SumSkipNA() T
SumSkipNA renvoie la somme des éléments non-NaN.
func (*DataArray[T]) Transpose ¶
Transpose réordonne les dimensions du DataArray selon newDims (permutation).
func (*DataArray[T]) UnmarshalJSON ¶
UnmarshalJSON désérialise un DataArray (avec validation via NewDataArray).
func (*DataArray[T]) Where ¶
Where renvoie une copie où les éléments dont le masque vaut 0 sont remplacés par other (le masque est un DataArray de même forme, non-zéro = conserver).
func (*DataArray[T]) WhereFunc ¶
WhereFunc renvoie une copie où chaque élément ne satisfaisant pas keep est remplacé par other. C'est le masquage conditionnel de base (équivalent de `da.where(cond, other)` de xarray, la condition étant un prédicat élément par élément).
func (*DataArray[T]) WithStrCoord ¶
WithStrCoord renvoie une copie du tableau avec une coordonnée textuelle sur la dimension dim (labels de longueur égale à la taille de dim).
func (*DataArray[T]) WriteCSV ¶
WriteCSV écrit le DataArray au format tidy : une colonne par dimension puis la valeur ; l'en-tête donne les noms des dimensions et de la variable.
type Dataset ¶
type Dataset[T Number] struct { // contains filtered or unexported fields }
Dataset est une collection de DataArrays (les « variables de données ») partageant un système commun de dimensions et de coordonnées.
func DecodeCF ¶
DecodeCF applique le décodage du packing CF à toutes les variables d'un Dataset[float64] : valeur = brut × scale_factor + add_offset, et les valeurs égales à _FillValue / missing_value deviennent NaN. Les attributs consommés sont retirés (la variable est désormais « décodée »).
func DecodeTime ¶
DecodeTime décode la coordonnée temporelle dim d'un Dataset selon son attribut « units » CF (« <unité> since <date> ») et la remplace par des secondes depuis l'epoch Unix. Sans attribut units exploitable, le Dataset est renvoyé inchangé.
func NewDataset ¶
NewDataset construit un Dataset à partir d'un ensemble de variables nommées, en vérifiant la cohérence des dimensions et des coordonnées.
func OpenNetCDFFile ¶
func OpenNetCDFFile(path string, conv NetCDFConverter) (*Dataset[float64], error)
OpenNetCDFFile ouvre un fichier netCDF quel que soit son format.
- CDF-1 : lu directement.
- HDF5/CDF-2/CDF-5 : converti en CDF-1 via conv (fichier temporaire) puis lu.
Si conv est nil, un convertisseur est recherché dans le PATH. Le décodage CF (packing, temps) n'est PAS appliqué ici : appelez DecodeCF/DecodeTime ensuite, comme pour ReadDatasetNetCDF.
func ReadDatasetJSON ¶
ReadDatasetJSON lit un Dataset depuis un flux JSON. Les coordonnées partagées sont réinjectées dans chaque variable selon ses dimensions.
func ReadDatasetNetCDF ¶
ReadDatasetNetCDF lit un Dataset depuis un flux netCDF classique (sous-ensemble). Les valeurs stockées sont converties vers le type T demandé.
func ReadDatasetZarr ¶
ReadDatasetZarr lit un Dataset[float64] depuis un groupe Zarr v2 (dir). Les arrays 1D nommés comme une dimension sont interprétés comme des coordonnées ; les autres comme des variables de données.
func ReadPyramidLevel ¶
ReadPyramidLevel lit un niveau donné d'une pyramide écrite par WritePyramidZarr (niveau 0 = pleine résolution). Renvoie le Dataset de ce niveau.
func (*Dataset[T]) Coarsen ¶
func (ds *Dataset[T]) Coarsen(dim string, factor int) (*DatasetGroupBy[T], error)
Coarsen construit un downsampling par blocs sur un Dataset (propagé aux variables portant la dimension).
func (*Dataset[T]) Cumsum ¶
Cumsum applique la somme cumulée le long de dim à chaque variable la portant (les autres sont conservées).
func (*Dataset[T]) FillNA ¶
FillNA renvoie une copie du dataset où les NaN de chaque variable sont remplacés par value.
func (*Dataset[T]) GeoRefFromCF ¶
GeoRefFromCF extrait le géoréférencement d'une variable de données à partir des métadonnées CF (convention rioxarray/GDAL) : l'attribut `grid_mapping` de la variable nomme une variable de CRS portant `crs_wkt`/`spatial_ref` (identifiant du CRS) et `GeoTransform` (géotransformation GDAL). Renvoie le GeoRef et true si une géotransformation exploitable a été trouvée.
func (*Dataset[T]) GroupBy ¶
func (ds *Dataset[T]) GroupBy(dim string) (*DatasetGroupBy[T], error)
GroupBy construit un regroupement du Dataset le long de dim, via la coordonnée partagée de dim.
func (*Dataset[T]) GroupByBins ¶
func (ds *Dataset[T]) GroupByBins(dim string, edges []T) (*DatasetGroupBy[T], error)
GroupByBins construit un regroupement par intervalles arbitraires sur un Dataset (propagé aux variables portant la dimension).
func (*Dataset[T]) GroupByTime ¶
func (ds *Dataset[T]) GroupByTime(dim string, c TimeComponent) (*DatasetGroupBy[T], error)
GroupByTime regroupe par composante temporelle (mois, saison, …) — climatologie.
func (*Dataset[T]) Isel ¶
Isel sélectionne par position le long de dim et propage l'opération à toutes les variables portant cette dimension (les autres restent inchangées).
func (*Dataset[T]) MedianAxis ¶
MedianAxis réduit dim par médiane (float64).
func (*Dataset[T]) Merge ¶
Merge fusionne deux datasets. En cas de variable homonyme, celle de other l'emporte.
func (*Dataset[T]) Resample ¶
func (ds *Dataset[T]) Resample(dim string, freq T) (*DatasetGroupBy[T], error)
Resample regroupe par intervalles réguliers (largeur freq) d'une coordonnée numérique. Renvoie un DatasetGroupBy (agrégations Sum/Mean/Min/Max).
func (*Dataset[T]) ResampleCalendar ¶
func (ds *Dataset[T]) ResampleCalendar(dim string, p Period) (*DatasetGroupBy[T], error)
ResampleCalendar regroupe par période calendaire (coordonnée en secondes epoch).
func (*Dataset[T]) Rolling ¶
func (ds *Dataset[T]) Rolling(dim string, window int) (*DatasetRolling[T], error)
Rolling construit une fenêtre glissante de taille window le long de dim sur le Dataset.
func (*Dataset[T]) SumAxis ¶
SumAxis réduit la dimension dim par somme sur toutes les variables concernées.
func (*Dataset[T]) VarAxis ¶
VarAxis réduit dim par variance (float64) sur toutes les variables concernées.
func (*Dataset[T]) WithVar ¶
WithVar renvoie une copie du dataset augmentée (ou remplacée) de la variable name.
type DatasetGroupBy ¶
type DatasetGroupBy[T Number] struct { // contains filtered or unexported fields }
DatasetGroupBy représente un regroupement d'un Dataset le long d'une dimension, par les valeurs (répétées) de la coordonnée partagée de cette dimension. L'agrégation est propagée à toutes les variables portant la dimension ; les autres sont conservées (converties au type de sortie si nécessaire).
func (*DatasetGroupBy[T]) Groups ¶
func (g *DatasetGroupBy[T]) Groups() int
Groups renvoie le nombre de groupes.
func (*DatasetGroupBy[T]) Max ¶
func (g *DatasetGroupBy[T]) Max() (*Dataset[T], error)
Max agrège chaque groupe par maximum.
func (*DatasetGroupBy[T]) Mean ¶
func (g *DatasetGroupBy[T]) Mean() (*Dataset[float64], error)
Mean agrège chaque groupe par moyenne (résultat en float64).
func (*DatasetGroupBy[T]) Min ¶
func (g *DatasetGroupBy[T]) Min() (*Dataset[T], error)
Min agrège chaque groupe par minimum.
func (*DatasetGroupBy[T]) Sum ¶
func (g *DatasetGroupBy[T]) Sum() (*Dataset[T], error)
Sum agrège chaque groupe par somme.
type DatasetRolling ¶
type DatasetRolling[T Number] struct { // contains filtered or unexported fields }
DatasetRolling propage une fenêtre glissante à toutes les variables d'un Dataset portant la dimension visée.
func (*DatasetRolling[T]) Max ¶
func (r *DatasetRolling[T]) Max() (*Dataset[float64], error)
Max : maximum mobile.
func (*DatasetRolling[T]) Mean ¶
func (r *DatasetRolling[T]) Mean() (*Dataset[float64], error)
Mean : moyenne mobile sur le Dataset.
type Geostationary ¶
type Geostationary struct {
Lon0, Height, A, B float64
}
Geostationary décrit une projection géostationnaire.
- Lon0 : longitude sub-satellite (degrés)
- Height : hauteur de perspective au-dessus de l'ellipsoïde (m)
- A, B : demi-grand et demi-petit axes de l'ellipsoïde (m)
func MTGGeos ¶
func MTGGeos() Geostationary
MTGGeos renvoie la projection géostationnaire de MTG-I (sub-satellite 0°, ellipsoïde WGS84, hauteur de perspective 35 785 831 m).
type GribMessage ¶
type GribMessage struct {
Ni, Nj int
La1, Lo1 float64 // premier point (degrés)
Di, Dj float64 // incréments (degrés)
JScansPositive bool // false = du nord vers le sud (cas courant)
Values []float64
}
GribMessage est un message GRIB2 décodé : les valeurs sur une grille lat/lon.
func ReadGrib ¶
func ReadGrib(r io.Reader) ([]*GribMessage, error)
ReadGrib lit tous les messages GRIB2 (grille lat/lon, simple packing) d'un flux.
func (*GribMessage) ToDataArray ¶
func (m *GribMessage) ToDataArray(name string) (*DataArray[float64], error)
ToDataArray convertit le message en DataArray[float64] de dimensions (latitude, longitude), avec les coordonnées correspondantes.
type GroupBy ¶
type GroupBy[T Number] struct { // contains filtered or unexported fields }
GroupBy représente un regroupement d'un DataArray le long d'une dimension, par les valeurs (éventuellement répétées) de la coordonnée de cette dimension.
Exemple : une dimension « temps » dont la coordonnée vaut [1, 1, 2, 2] (des numéros de mois répétés) peut être regroupée par mois, chaque groupe étant ensuite agrégé (somme, moyenne…).
func (*GroupBy[T]) Labels ¶
func (g *GroupBy[T]) Labels() []T
Labels renvoie les étiquettes de groupe (uniques, triées).
type JoinType ¶
type JoinType int
JoinType désigne la stratégie d'alignement des coordonnées avant une opération binaire entre deux DataArrays.
const ( // JoinInner ne conserve que les étiquettes communes (jointure interne). JoinInner JoinType = iota // JoinOuter conserve l'union des étiquettes ; les valeurs manquantes sont // remplies par la valeur de remplissage fournie. JoinOuter // JoinLeft conserve les étiquettes de l'opérande gauche. JoinLeft // JoinRight conserve les étiquettes de l'opérande droit. JoinRight )
type LazyArray ¶
type LazyArray struct {
// contains filtered or unexported fields
}
LazyArray représente un calcul différé sur une ChunkSource.
func Chunk ¶
Chunk crée un LazyArray adossé à un DataArray en mémoire, découpé en blocs de chunkSize lignes (le long de l'axe 0).
func ChunkFile ¶
func ChunkFile(path string, dims []string, shape []int, coords map[string][]float64, chunkSize int) (*LazyArray, error)
ChunkFile crée un LazyArray adossé à un fichier binaire de float64 (ordre C), découpé en blocs de chunkSize lignes le long de l'axe 0. Les données ne sont jamais chargées entièrement en mémoire (hors-mémoire / out-of-core).
func ChunkZarr ¶
ChunkZarr crée un LazyArray hors-mémoire adossé à un store Zarr v2 (tableau 1D ou 2D, dtype <f8). Les chunks sont lus à la demande. chunkSize est le nombre de lignes (axe 0) par bloc lazy.
func (*LazyArray) Compute ¶
Compute matérialise le résultat en DataArray[float64] (exécution parallèle par chunk).
type NetCDFConverter ¶
NetCDFConverter réécrit le fichier src en CDF-1 classique dans dst.
func FindNetCDFConverter ¶
func FindNetCDFConverter() (NetCDFConverter, string, error)
FindNetCDFConverter détecte un convertisseur externe disponible dans le PATH (`nccopy` fourni par netCDF, ou `cdo`) et renvoie la fonction associée, son nom, ou une erreur si aucun n'est trouvé.
type NetCDFFormat ¶
type NetCDFFormat int
NetCDFFormat identifie le format d'un fichier d'après ses octets de signature.
const ( FormatUnknown NetCDFFormat = iota FormatCDF1 // CDF\x01 — lisible directement FormatCDF2 // CDF\x02 — 64-bit offset FormatCDF5 // CDF\x05 — 64-bit data FormatHDF5 // \x89HDF — NetCDF-4 / HDF5 )
func SniffNetCDFFormat ¶
func SniffNetCDFFormat(path string) (NetCDFFormat, error)
SniffNetCDFFormat lit les premiers octets d'un fichier et déduit son format.
func (NetCDFFormat) String ¶
func (f NetCDFFormat) String() string
type Number ¶
type Number interface {
~int | ~int8 | ~int16 | ~int32 | ~int64 |
~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 |
~float32 | ~float64
}
Number est la contrainte des types numériques supportés par les tableaux. Elle couvre les entiers signés/non signés et les flottants.
type Resample ¶
type Resample[T Number] struct { // contains filtered or unexported fields }
Resample regroupe les valeurs le long d'une dimension par intervalles réguliers de sa coordonnée (de largeur freq), à la manière de xarray.DataArray.resample.
Comme notre modèle ne gère pas encore le temps, le rééchantillonnage se fait sur une coordonnée numérique : le bin d'une étiquette l est floor((l - origine) / freq), l'origine étant la plus petite étiquette. La dimension est réduite aux bins (non vides), dont la coordonnée devient la borne gauche.
func GroupByTime ¶
GroupByTime regroupe le long de dim par composante temporelle (la coordonnée de dim étant en secondes epoch). Par exemple, grouper par CompMonth réunit tous les mois de janvier ensemble (climatologie mensuelle), quelle que soit l'année. Renvoie un Resample (agrégations Sum/Mean/Min/Max) dont les étiquettes sont les valeurs de composante (1..12 pour les mois, etc.).
func ResampleCalendar ¶
ResampleCalendar regroupe le long de dim par période calendaire (heure, jour, mois, année), la coordonnée de dim étant interprétée comme des secondes epoch. Renvoie un Resample dont les étiquettes sont les débuts de période (epoch).
type Resampling ¶
type Resampling int
Resampling désigne la méthode d'interpolation au rééchantillonnage.
const ( Nearest Resampling = iota // plus proche voisin Bilinear // interpolation bilinéaire (données continues) Cubic // convolution cubique (noyau de Keys, a=-0.5) )
type Rolling ¶
type Rolling[T Number] struct { // contains filtered or unexported fields }
Rolling représente une fenêtre glissante le long d'une dimension, à la manière de xarray.DataArray.rolling. La fenêtre est « trailing » : la valeur à l'indice i agrège les éléments [i-window+1 … i]. Les positions dont la fenêtre est incomplète (i < window-1) valent NaN.
Les agrégations renvoient un DataArray[float64] de MÊME forme (les NaN de bord imposent le type flottant, comme dans xarray).
type TimeComponent ¶
type TimeComponent int
TimeComponent désigne une composante calendaire extraite d'un instant.
const ( CompYear TimeComponent = iota CompMonth CompDay CompHour CompMinute CompWeekday // 0 = dimanche … 6 = samedi CompDayOfYear // 1..366 CompSeason // 0 = DJF (hiver), 1 = MAM, 2 = JJA, 3 = SON )
type Variable ¶
type Variable[T Number] struct { // contains filtered or unexported fields }
Variable est un tableau N-dimensionnel dont les axes portent un nom. C'est la brique de base sur laquelle DataArray et Dataset sont construits.
Les données sont stockées à plat en ordre C (row-major) : le dernier axe varie le plus vite.
func NewVariable ¶
NewVariable construit une Variable à partir de noms de dimensions, d'une forme (shape) et de données plates en ordre C.
Contraintes vérifiées :
- len(dims) == len(shape) ;
- les noms de dimensions sont non vides et uniques ;
- les tailles sont positives ou nulles ;
- len(data) == produit des tailles.
func (*Variable[T]) Data ¶
func (v *Variable[T]) Data() []T
Data renvoie une copie des données plates (ordre C).
func (*Variable[T]) Isel ¶
Isel (integer select) sélectionne une position entière sur une dimension et renvoie une nouvelle Variable dont cette dimension est supprimée.
type ZarrComp ¶
type ZarrComp = ZarrCompression
ZarrComp est un alias interne pour la lisibilité des helpers.
type ZarrCompression ¶
type ZarrCompression int
ZarrCompression désigne le compresseur utilisé pour les chunks.
const ( ZarrNone ZarrCompression = iota // aucune compression ZarrZlib // zlib (numcodecs "zlib") ZarrZstd // zstd (numcodecs "zstd") )
Source Files
¶
- bins.go
- cf.go
- coarsen.go
- concat.go
- dataarray.go
- dataset.go
- dataset_arith.go
- dataset_groupby.go
- dataset_more.go
- dataset_rolling.go
- dataset_time.go
- dot.go
- geoaffine.go
- geocrs.go
- geoproj.go
- geos.go
- geowarp.go
- grib.go
- groupby.go
- groupby_bins.go
- idx.go
- interp.go
- io.go
- lazy.go
- lazy_binary.go
- lazy_file.go
- lazy_reduce.go
- lazy_zarr.go
- missing.go
- netcdf.go
- netcdf_convert.go
- null.go
- numeric.go
- ops_dataarray.go
- ops_float64.go
- ops_join.go
- ops_variable.go
- reduce_more.go
- reduce_stats.go
- resample.go
- restructure.go
- rolling.go
- sel.go
- simd.go
- simd_amd64.go
- skipna.go
- strcoord.go
- swath.go
- time.go
- time_group.go
- ufunc.go
- ufunc2.go
- variable.go
- where.go
- zarr.go
- zarr_blosc.go
- zarr_dataset.go
- zarr_pyramid.go
- zarr_v3.go
- zarr_v3_write.go
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
benchexpr
command
Commande benchexpr : mesure une expression composée multi-tableaux mean(a * b) sur deux stores Zarr, lus paresseusement (out-of-core).
|
Commande benchexpr : mesure une expression composée multi-tableaux mean(a * b) sur deux stores Zarr, lus paresseusement (out-of-core). |
|
benchzarr
command
Commande benchzarr : mesure le temps de calcul de la moyenne d'un tableau Zarr lu paresseusement (out-of-core) par le moteur lazy.
|
Commande benchzarr : mesure le temps de calcul de la moyenne d'un tableau Zarr lu paresseusement (out-of-core) par le moteur lazy. |
|
genzarr
command
Commande genzarr : écrit un store Zarr v2 de démonstration, pour vérifier l'interopérabilité avec zarr-python.
|
Commande genzarr : écrit un store Zarr v2 de démonstration, pour vérifier l'interopérabilité avec zarr-python. |
|
genzarrds
command
Commande genzarrds : écrit un Dataset comme groupe Zarr v2 (démo interop).
|
Commande genzarrds : écrit un Dataset comme groupe Zarr v2 (démo interop). |
|
ndvi
command
Démo runnable : calcul d'un NDVI géoréférencé de bout en bout avec xarray-go.
|
Démo runnable : calcul d'un NDVI géoréférencé de bout en bout avec xarray-go. |
|
readgrib
command
Commande readgrib : lit un GRIB2 (regular_ll, simple packing) et affiche la grille et quelques valeurs (pour valider contre ecCodes).
|
Commande readgrib : lit un GRIB2 (regular_ll, simple packing) et affiche la grille et quelques valeurs (pour valider contre ecCodes). |
|
readgrib-ec
command
Commande readgrib-ec : lit un GRIB via le backend ecCodes (tout template).
|
Commande readgrib-ec : lit un GRIB via le backend ecCodes (tout template). |
|
readzarr
command
Commande readzarr : lit un store Zarr v2 et affiche forme et données.
|
Commande readzarr : lit un store Zarr v2 et affiche forme et données. |
|
reproject
command
Démo runnable : reprojection d'un raster géoréférencé (WGS84 lon/lat → Web Mercator EPSG:3857) avec interpolation bilinéaire, de bout en bout.
|
Démo runnable : reprojection d'un raster géoréférencé (WGS84 lon/lat → Web Mercator EPSG:3857) avec interpolation bilinéaire, de bout en bout. |
|
experimental
|
|
|
cgokernel
Package cgokernel est une DÉMONSTRATION isolée : appeler un noyau C vectorisé depuis Go via cgo, pour répondre à la question « peut-on réutiliser du C (comme celui de NumPy) ? ».
|
Package cgokernel est une DÉMONSTRATION isolée : appeler un noyau C vectorisé depuis Go via cgo, pour répondre à la question « peut-on réutiliser du C (comme celui de NumPy) ? ». |
|
eccodesgrib
Ce fichier fournit un remplacement pur-Go quand le backend ecCodes n'est pas compilé (absence du tag `eccodes`).
|
Ce fichier fournit un remplacement pur-Go quand le backend ecCodes n'est pas compilé (absence du tag `eccodes`). |
|
Package geoapi fournit des briques pour servir des données xarray-go à la manière d'un serveur OGC API (type pygeoapi) : export CoverageJSON, sous-échantillonnage géospatial, etc.
|
Package geoapi fournit des briques pour servir des données xarray-go à la manière d'un serveur OGC API (type pygeoapi) : export CoverageJSON, sous-échantillonnage géospatial, etc. |
|
Package ml fournit quelques algorithmes de machine learning classiques construits sur le moteur ndarray.
|
Package ml fournit quelques algorithmes de machine learning classiques construits sur le moteur ndarray. |
|
Package ndarray fournit un tableau dense N-dimensionnel de float64, façon « mini-NumPy », destiné à servir de moteur de calcul.
|
Package ndarray fournit un tableau dense N-dimensionnel de float64, façon « mini-NumPy », destiné à servir de moteur de calcul. |