Объединение данных: неправильные полигоны в правильную сетку

У меня есть тысячи полигонов, хранящихся в табличном формате (учитывая их 4 угловые координаты), которые представляют небольшие области Земли. Кроме того, каждый полигон имеет значение данных. Файл выглядит, например, так:

lat1,  lat2,  lat3,  lat4,  lon1,   lon2,   lon3,   lon4,   data
57.27, 57.72, 57.68, 58.1,  151.58, 152.06, 150.27, 150.72, 13.45
56.96, 57.41, 57.36, 57.79, 151.24, 151.72, 149.95, 150.39, 56.24
57.33, 57.75, 57.69, 58.1,  150.06, 150.51, 148.82, 149.23, 24.52
56.65, 57.09, 57.05, 57.47, 150.91, 151.38, 149.63, 150.06, 38.24
57.01, 57.44, 57.38, 57.78, 149.74, 150.18, 148.5,  148.91, 84.25
...

Многие из полигонов пересекаются или перекрываются. Теперь я хотел бы создать матрицу * m в диапазоне от -90 ° до 90 ° широты и от -180 ° до 180 ° долготы с шагом, например, 0,25 ° x0,25 ° для хранения средних данных (взвешенных по площади) значение всех полигонов, попадающих в каждый пиксель.

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

В основном регулярная сетка и полигоны выглядят так:

Если вы посмотрите на пиксель 2, вы увидите, что два пикселя находятся внутри этого пикселя. Таким образом, я должен взять среднее значение данных обоих полигонов с учетом их доли площади. Результат должен быть сохранен в обычном пикселе сетки.

Я просмотрел сеть и не нашел удовлетворительного подхода к этому. Поскольку я использую Python / Numpy для повседневной работы, я бы хотел придерживаться этого. Это возможно? Посылкастройный выглядит многообещающе, но я не знаю, с чего начать ... Перенос всего на базу данных postgis - это огромное усилие, и я думаю, на моем пути будет немало препятствий.

Ответы на вопрос(2)

Ваш ответ на вопрос