[*] Измерения дождевого датчика с наземных станций. < /li>
< /ol>
< /li>
Метод слияния: Ked (Kriging с внешним дрейфом). < /p>
< /li>
Проблема:
В большинстве случаев результаты слияния выглядят разумными.
Однако в определенное время, особенно когда станция наблюдает за локализованным, сильным количеством осадков, создавая большое расхождение со стороны спутникового уровня, - в результате KED демонстрируется «перегородка». аномально высокий, намного превышающий максимальное значение из любого из исходных входных источников. 16.4
Но пик сплайденного результата KED достигает 44,9
Огни дождя_comparison:
Мои вопросы:
Это «переиздание» между ними, особенно в отношении основных видов (особенно во время выпускников (и в отношении основных видов (особенно и с большими выпускниками (и в основном (и воле в сущности), особенно при решении с большими локальными выпускниками (и в основных видах. (спутник)? надежность результатов.
Код: Выделить всё
import numpy as np
from pykrige.uk import UniversalKriging
def ked_fusion(sat_data, sat_lat, sat_lon, gauge_values, station_coords,
variogram_model="spherical", variogram_parameters=None):
# Prepare station data
gauge_points = np.array(station_coords)
gauge_values = np.array(gauge_values) / 3600.0 # Convert mm/hr to mm/s
# Filter out invalid stations
valid_mask = ~np.isnan(gauge_values)
gauge_values = gauge_values[valid_mask]
gauge_points = gauge_points[valid_mask]
# Handle case with no valid stations
if gauge_values.size == 0:
return np.zeros_like(sat_data)
# Set default variogram parameters if not provided
if variogram_parameters is None:
variogram_parameters = {"sill": 0.1, "range": 1.0, "nugget": 1e-6}
# Perform KED fusion
uk = UniversalKriging(
x=gauge_points[:, 0], # Station longitudes
y=gauge_points[:, 1], # Station latitudes
z=gauge_values, # Station observations
variogram_model=variogram_model,
variogram_parameters=variogram_parameters,
drift_terms=["external_Z"], # External drift term
external_drift=sat_data, # Satellite data as external drift
external_drift_x=sat_lon[0, :], # Grid longitude vector
external_drift_y=sat_lat[:, 0], # Grid latitude vector
pseudo_inv=True, # Use pseudo-inverse for stability
exact_values=False # Allow non-exact matches
)
# Generate fused grid
z, _ = uk.execute("grid", sat_lon[0, :], sat_lat[:, 0])
return np.where(z < 0, 0, z) # Clip negative values to zero
Подробнее здесь: https://stackoverflow.com/questions/796 ... gnificantl