Как растрировать фрейм данных pandas с большим количеством точек на пиксель? - PullRequest
0 голосов
/ 19 июня 2020

Я использую rasterio для преобразования гео pandas фрейма данных точек в геотиф растр. Для этого я использую этот код python:

with rasterio.open("somepath/rasterized.tif", 'w+', **meta) as out:
    out.nodata = 0
    out_arr = out.read(1)

    # this is where we create a generator of geom, value pairs to use in rasterizing
    shapes = ((geom, value * 2) for geom, value in zip(gdf.geometry, gdf["PositionConfidence"]))

    burned = features.rasterize(shapes=shapes, fill=0, out=out_arr, transform=out.transform)
    out.write_band(1, burned)
    out.write_band(2, burned)
    out.write_band(3, burned)

    out_arr1 = out.read(1)

Код не только записывает фиксированное значение в растр, но и значение, основанное на точке, которую нужно преобразовать.

Проблема состоит в том, что на растровый пиксель приходится много точек. При использовании вышеуказанного подхода до пикселя записывается только одно значение точки. Я ищу среднее значение всех точек на пиксель, сожженных до данного пикселя.

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 22 июня 2020

У меня появилась идея сделать это:

Сначала сортируем все точки по пикселям в словарь. Затем мы вычисляем необходимое нам значение, в данном случае среднее значение некоторого значения для всех точек в этом пикселе. Теперь мы присваиваем это значение новой точке с координатами пикселя и используем это вместо старых точек.

...