`SwathDef.aggregate` bugs and enhancements
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia leggendo i punti di ingresso SwathDefinition.aggregate e AreaDef.aggregate, quindi riproduci gli esempi NumPy e DataArray non suddivisi in chunk dell’issue. Confronta il comportamento esistente di downsampling con l’approccio di upsampling proposto e con l’issue #28. Il lavoro è completato quando le operazioni SwathDefinition richieste funzionano per gli input indicati e corrispondono al comportamento documentato di AreaDef.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem description
SwathDef.aggregate currently works only if SwathDefinition is defined by passing lons/lats xr.DataArray with lons and lats dimensions and dask arrays.
Code Sample
import numpy as np
import dask.array as da
import xarray as xr
from pyresample.geometry import SwathDefinition
lons = np.arange(-179.75, 179.75 + 0.5, 0.5)
lats = np.arange(-89.75, 0.5, 0.5)
lons, lats = np.meshgrid(lons, lats)
# BUG: This does not work. It expects an xr.DataArray
swath_def = SwathDefinition(lons=lons, lats=lats)
swath_def.aggregate(x=2, y=1) # Downsample by factor of 2 along x
# BUG: This does not work. It expects a chunked dask array.
lons_da = xr.DataArray(lons, dims=("lats","lons"))
lats_da = xr.DataArray(lats, dims=("lats","lons"))
swath_def = SwathDefinition(lons=lons_da, lats=lats_da)
swath_def.aggregate(x=2, y=1) # Downsample by factor of 2 along x
# This works to coarse the data
lons = da.from_array(lons)
lats = da.from_array(lats)
lons_da = xr.DataArray(lons, dims=("lats","lons"))
lats_da = xr.DataArray(lats, dims=("lats","lons"))
swath_def = SwathDefinition(lons=lons_da, lats=lats_da)
swath_def.aggregate(x=2, y=1) # Downsample by factor of 2 along x
Limitations & Consistency
AreaDef.aggregate enables to also upsampling (downscaling) the area by providing x, y dimensions < 1
swath_def.aggregate(x=1/2, y=1/2) # Split each pixel in 4 pixels
In contrast, SwathDef.aggregate is able to just coarse the grid by averaging geocentric x, y, z coordinates, as dask.array coarsen accepts only accepts only x, y integers >= 1.
swath_def.aggregate(x=1/2, y=1)
swath_def.aggregate(x=1/2, y=1)
Suggested improvements
- Enable
swath_def.aggregateto work also with lons/lats defined in numpy arrays - Add method
area_def.upsample(straighforward) - Add method
swath_def.upsample - Switch name from
aggregatetodownsample?
This would address also issue https://github.com/pytroll/pyresample/issues/28
Implementation idea for swath_def.upsample
- Conversion of lons/lats to geocentric x,y,z
- Infer current "pixel" corners in x,y,z
- Define new pixel centroids in x,y,z
- Backconversion to lats/lons
- Lingua principale
- Python
- Stelle
- 388
- Fork
- 102
- Merge medio
- 5g 17h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pytroll/pyresample
-
Geometry `__eq__` and `__hash__` violate Python's hash/equality contractForse di nuovo libera @pnuu l’ha presa 45 giorni fa e non c’è nessuna pull request aperta. Apertabug Priority-Medium
pytroll/pyresample#745 · 1 commento · 3 assegnatari ·
-
Improve resampler x/y coordinate metadataForse di nuovo libera @djhoese l’ha presa 63 giorni fa e non c’è nessuna pull request aperta. Apertabug
pytroll/pyresample#739 · 1 assegnatario ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
pytroll/pyresample#698 · 1 commento ·
-
`AreaDefinition.get_area_slices` doesn't work for cropped geostationary areas like SEVIRI RSSAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
pytroll/pyresample#694 · 5 commenti ·
-
gradient_search comb effectForse di nuovo libera @mraspaud l’ha presa 384 giorni fa e non c’è nessuna pull request aperta. Aperta
pytroll/pyresample#682 · 7 commenti · 1 assegnatario ·
Tutte le issue di pytroll/pyresample
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ansys/pyansys-common-mcp#213 ·
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
freedomofpress/dangerzone#1594 ·
I maintainer di solito rispondono entro 3 giorni
-
priority:P1 status:in-review type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
randomparity/kdive#3317 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:ci
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
mesonbuild/meson#16281 ·
I maintainer di solito rispondono entro 1 giorno