pyresample.future.resamplers.nearest module
Nearest neighbor resampler.
- class pyresample.future.resamplers.nearest.KDTreeNearestXarrayResampler(source_geo_def, target_geo_def, cache=None)
Bases:
ResamplerResampler using the basic nearest neighbor algorithm.
Resampler for xarray DataArrays using a nearest neighbor algorithm.
- Parameters:
source_geo_def (object) – Geometry definition of source
target_geo_def (object) – Geometry definition of target
- __init__(source_geo_def, target_geo_def, cache=None)
Resampler for xarray DataArrays using a nearest neighbor algorithm.
- Parameters:
source_geo_def (object) – Geometry definition of source
target_geo_def (object) – Geometry definition of target
- compute_data_mask(data)
Generate a mask array where data is invalid.
This is used by
resample()to determine whatmaskto pass toprecompute(). It may be useful for users to use this manually for special cases of wanting to call precompute manually.
- get_sample_from_neighbor_info(data, valid_input_index, index_array, neighbors=1, fill_value=nan)
Get the pixels matching the target area.
This method should work for any dimensionality of the provided data array as long as the geolocation dimensions match in size and name in
data.dims. Where source area definition are AreaDefinition objects the corresponding dimensions in the data should be('y', 'x').This method also attempts to preserve chunk sizes of dask arrays, but does require loading/sharing the fully computed source data before it can actually compute the values to write to the destination array. This can result in large memory usage for large source data arrays, but is a necessary evil until fancier indexing is supported by dask and/or pykdtree.
- Parameters:
data (xarray.DataArray) – Source data pixels to sample
valid_input_index (ArrayLike) – Index array of valid pixels in the input geolocation data.
index_array (ArrayLike) – Index array of nearest neighbors.
neighbors (int) – Number of neighbors to return for each data pixel. Currently only 1 (the default) is supported.
fill_value (float) – Output fill value when no source data is near the target pixel. When omitted, if the input data is an integer array then the maximum value for that integer type is used, but otherwise, NaN is used and can be detected in the result with
res.isnull().
- Returns:
- The resampled array. The dtype of the array will
be the same as the input data. Pixels with no matching data from the input array will be filled (see the fill_value parameter description above).
- Return type:
dask.array.Array
- precompute(mask=None, radius_of_influence=None, epsilon=0)
Generate neighbor indexes using geolocation information and optional data mask.
- Parameters:
mask (ArrayLike, optional) – Boolean array where True represents invalid pixels in the data array to be resampled in the future. This allows the indexes computed by this method and used during resampling to filter out invalid values and produce a result with more overall valid pixels. If provided then pre-computed results will not be cached as it is assumed that the mask will likely change for every input array.
radius_of_influence (float, optional) – Cut off distance in geocentric meters. If not provided this will be estimated based on the source and target geometry definition.
epsilon (float, optional) – Allowed uncertainty in meters. Increasing uncertainty reduces execution time
- resample(data, mask_area=None, fill_value=nan, radius_of_influence=None, epsilon=0)
Resample input
datafrom the source geometry to the target geometry.- Parameters:
data (ArrayLike) – Data to be resampled
mask_area (bool or ArrayLike) – Mask geolocation data where data values are invalid. This should be used when data values may affect what neighbors are considered valid. For complex masking behavior this can also be the mask array to use instead of the resampler computing it on the fly. This is useful for non-xarray DataArrays that don’t have related metadata like “_FillValue”. By default this is None which means a mask will be created automatically for SwathDefinition input. Set to
Falseto disable any masking andTrueto ensure a mask is created. Seeprecompute()for more information.fill_value (int or float) – Output fill value when no source data is near the target pixel. When omitted, if the input data is an integer array then the maximum value for that integer type is used, but otherwise, NaN is used and can be detected in the result with
res.isnull()for DataArray output andnp.isnan(res)for dask and numpy arrays.radius_of_influence (float, optional) – Passed directly to
precompute().epsilon (float, optional) – Passed directly to
precompute().
- Returns:
Array-like object of the same type as
data, resampled to the target geographic geometry.
- property version: str
Get the current version of this class used for hashing and caching.
- pyresample.future.resamplers.nearest.query_no_distance(target_lons, target_lats, valid_output_index, mask=None, valid_input_index=None, neighbours=None, epsilon=None, radius=None, kdtree=None)
Query the kdtree. No distances are returned.
- NOTE: Dask array arguments must always come before other keyword arguments
for da.blockwise arguments to work.