When using the resample_nearest function in pyresample for interpolation, it sometimes produces NaN values.
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
Línea de trabajo
Empieza ejecutando el reproductor proporcionado con los datos de NumPy indicados y llamadas repetidas a resample_nearest. Lee el punto de entrada de resample_nearest y la ruta de remuestreo relevante del árbol kd de pyresample para determinar por qué un canal puede convertirse completamente en NaN a pesar de que haya datos de origen cercanos. Se considera terminado cuando las ejecuciones repetidas producen resultados deterministas sin la salida inesperada completamente all-NaN, con una prueba de regresión si la estructura de pruebas existente del proyecto lo permite.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 388
- Forks
- 102
- Merge medio
- 5 d 17 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de pytroll/pyresample
-
Geometry `__eq__` and `__hash__` violate Python's hash/equality contractQuizá libre de nuevo @pnuu la tomó hace 45 días y no hay ningún pull request abierto. Abiertobug Priority-Medium
pytroll/pyresample#745 · 1 comentario · 3 asignados ·
-
Improve resampler x/y coordinate metadataQuizá libre de nuevo @djhoese la tomó hace 64 días y no hay ningún pull request abierto. Abiertobug
pytroll/pyresample#739 · 1 asignado ·
-
`AreaDefinition.get_area_slices` doesn't work for cropped geostationary areas like SEVIRI RSSAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
pytroll/pyresample#694 · 5 comentarios ·
-
gradient_search comb effectQuizá libre de nuevo @mraspaud la tomó hace 384 días y no hay ningún pull request abierto. Abierto
pytroll/pyresample#682 · 7 comentarios · 1 asignado ·
-
bilinear reference brokenQuizá libre de nuevo @pnuu la tomó hace 447 días y no hay ningún pull request abierto. Abierto
pytroll/pyresample#671 · 1 comentario · 1 asignado ·
Todos los issues de pytroll/pyresample
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
volcengine/OpenViking#6445 ·
Los mantenedores suelen responder en 1 día
-
BUG:Edit Album strips spaces from the password so albums with a leading/trailing space in the password can't be editedPosiblemente ocupada @ManyaJain111 la tomó hoy. Abiertobug enhancement possible-duplicate
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
AOSSIE-Org/PictoPy#1637 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
deepspeedai/DeepSpeed#8884 ·
Los mantenedores suelen responder en 3 días
-
Flaky: test_advisor_live_calibrates_an_unmeasured_circuit ranks engines by a 1.8ms sleep marginAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
flagos-ai/FlagQuantum#718 ·
Los mantenedores suelen responder en 1 día
-
bug CI-failure high priority
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
vllm-project/afd-plugin#483 ·
Los mantenedores suelen responder en 1 día