Географическое несоответствие сегментации - PullRequest
0 голосов
/ 18 июня 2019

Я делаю проект , в котором нам нужно сегментировать геопространственные данные. Набор данных включает в себя Индекс пожарной погоды (FWI) - систему классификации пожарной опасности - для всего мира с 1980-х до 2018 года. Мы хотим сегментировать данные в соответствии с NUTS (или GADM), чтобы иметь возможность прогнозировать и исследовать возможные закономерности с течением времени.

В нашем распоряжении:

  • набор данных FWI (разрешение: 0,7 градуса ~ 80x80 км)
  • файлы форм NUTS (и GADM)

Наша методология была следующей:

  1. импорт файлов фигур с геопандами
  2. импорт набора данных FWI с помощью xarray
  3. растеризация шейп-файлов ( адаптированный код )
  4. получить данные FWI, сегментированные NUTS / GADM

Было выявлено несколько проблем:

  • не все области в интересующей области были сегментированы правильно
  • между точками NUTS / GADM и FWI имеется смещение

Используются следующие функции:

def transform_from_latlon(lat, lon):
    lat = np.asarray(lat)
    lon = np.asarray(lon)
    trans = Affine.translation(lon[0], lat[0])
    scale = Affine.scale(lon[1] - lon[0], lat[1] - lat[0])
    return  trans * scale

def rasterize(shapes, coords, latitude='lat', longitude='lon',
              fill=np.nan, **kwargs):
    """Rasterize a list of (geometry, fill_value) tuples onto the given
    xray coordinates. This only works for 1d latitude and longitude
    arrays.
    """
    transform = transform_from_latlon(coords[latitude], coords[longitude])

    out_shape = (len(coords[latitude]), len(coords[longitude]))
    #requires the features library from rasterio
    raster = features.rasterize(shapes, out_shape=out_shape,
                                fill=fill, transform=transform, all_touched=True, dtype=float, **kwargs)
    spatial_coords = {latitude: coords[latitude], longitude: coords[longitude]}
    return xr.DataArray(raster, coords=spatial_coords, dims=(latitude, longitude))

Описанный процесс сегментации приводит к следующему рисунку.

Segmentation result.

Как видно, существует смещение между сегментированными данными и фактическими областями карты. Более того, есть некоторые острова, которые даже не захвачены сегментацией.

...