When using the resample_nearest function in pyresample for interpolation, it sometimes produces NaN values.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Inizia eseguendo il reproducer fornito con i dati NumPy indicati e chiamate ripetute a resample_nearest. Leggi l’entry point di resample_nearest e il percorso di ricampionamento rilevante dell’albero kd di pyresample per determinare perché un canale possa diventare interamente NaN nonostante la presenza di dati sorgente nelle vicinanze. Il lavoro è completato quando le esecuzioni ripetute producono risultati deterministici senza l’output imprevisto completamente all-NaN, con un test di regressione se la struttura di test esistente del progetto lo supporta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When I use the following code to interpolate the data, I find that the results occasionally contain NaN values after multiple runs.
import numpy as np
from pyresample.geometry import SwathDefinition, AreaDefinition
from pyresample.kd_tree import resample_nearest
import os
def resample_wgs84_to_grid(lat2d, lon2d, data2d,
lons_1d, lats_1d,
radius_of_influence=50000,
fill_value=np.nan):
np.random.seed(42)
src_swath = SwathDefinition(lons=np.asarray(lon2d),
lats=np.asarray(lat2d))
proj_dict = {'proj': 'longlat', 'datum': 'WGS84'}
area_extent = (lons_1d[0], lats_1d[0],
lons_1d[-1], lats_1d[-1])
dst_area = AreaDefinition(
'dst_grid', 'WGS84 regular', proj_dict,
proj_dict,
width=lons_1d.size,
height=lats_1d.size,
area_extent=area_extent
)
data_resampled = resample_nearest(
src_swath, np.asarray(data2d),
dst_area,
radius_of_influence=radius_of_influence,
fill_value=fill_value,nprocs=1
)
lon2d_dst, lat2d_dst = np.meshgrid(lons_1d, lats_1d)
return data_resampled, lon2d_dst, lat2d_dst
fy4_data = np.load(r'H:\Yan\DATA\冰雹云\FY4\FY4B\AGRI\L1\FDI\DISK\4000M\2023\20230323\FY4B-_AGRI--_N_DISK_1330E_L1-_FDI-_MULT_NOM_20230323164500_20230323165959_4000M_V0001.npz')
ir = fy4_data['ir']
lat_f = fy4_data['lat']
lon_f = fy4_data['lon']
DeterministicInterpolator
target_lons = np.linspace(110,120,256)
target_lats = np.linspace(20,30,256)
for i in range(ir.shape[0]):
d = copy.deepcopy(ir)
grid_product, grid_x, grid_y = resample_wgs84_to_grid(
lat_f.astype(np.float64), lon_f.astype(np.float64), d[i].astype(np.float64),
lons_1d=target_lons.astype(np.float64), # 目标经度轴
lats_1d=target_lats.astype(np.float64), # 目标纬度轴
radius_of_influence=15000
)
print(np.nanmin(grid_product))
The expected result under normal operation should be
217.77999877929688
199.92999267578125
210.5399932861328
211.10000610351562
167.19000244140625
214.86000061035156
214.22999572753906
212.9199981689453
213.42999267578125
However, after repeated runs, a value of NaN may randomly appear in a certain channel, resulting in the following output:
217.77999877929688
nan
G:\py_project\radar_code\dor_2_nc\123.py:19: RuntimeWarning: All-NaN slice encountered
print(np.nanmin(grid_product))
210.5399932861328
211.10000610351562
167.19000244140625
214.86000061035156
214.22999572753906
212.9199981689453
213.42999267578125
- Lingua principale
- Python
- Stelle
- 388
- Fork
- 103
- 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 46 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 65 giorni fa e non c’è nessuna pull request aperta. Apertabug
pytroll/pyresample#739 · 1 assegnatario ·
-
`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 385 giorni fa e non c’è nessuna pull request aperta. Aperta
pytroll/pyresample#682 · 7 commenti · 1 assegnatario ·
-
bilinear reference brokenForse di nuovo libera @pnuu l’ha presa 447 giorni fa e non c’è nessuna pull request aperta. Aperta
pytroll/pyresample#671 · 1 commento · 1 assegnatario ·
Tutte le issue di pytroll/pyresample
Issue simili
-
resource-submission validation-passed
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
hesreallyhim/awesome-claude-code#3214 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
room-commons replace accepts an empty old string and silently prepends the new text to the pageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
doobidoo/mcp-memory-service#1650 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ml-explore/mlx-lm#2002 ·
I maintainer di solito rispondono entro 2 giorni