Python | Как я могу получить значения пикселей из карты геотипов по координатам - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь получить значения пикселей (RGB) с координатами из карты геотифов.

Я скачал растровую карту здесь: https://www.naturalearthdata.com/downloads/10m-raster-data/10m-natural-earth-2/

И я хотел бы получить, например, значение в пикселях этих координат lat: 41.902782, lon: 12.496366 (это должен быть Рим)

Я уже пробовал растерио и gdal, но безуспешно. Загрузка идет с файлом .tfw, но я не смог его включить, поэтому мне стало интересно, были ли координаты в моем скрипте Python точными.

Так что в итоге я мог получить значения rgb каждого квадратного метра в мир Но простой вывод значений rgb для координаты был бы хорошим началом

Я был бы рад каждому ответу:)

1 Ответ

0 голосов
/ 08 февраля 2020
import rasterio

def getCoordinatePixel(map,lon,lat):
    # open map
    dataset = rasterio.open(map)
    # get pixel x+y of the coordinate
    py, px = dataset.index(lon, lat)
    # create 1x1px window of the pixel
    window = rasterio.windows.Window(px - 1//2, py - 1//2, 1, 1)
    # read rgb values of the window
    clip = dataset.read(window=window)
    return(clip[0][0][0],clip[1][0][0],clip[2][0][0])

print(getCoordinatePixel("world.tif",0,0))

этот код дает вам пиксельные значения rgb координаты на карте

теперь мне нужно только вычислить, сколько метров в каждом широте:)

...