Разделите географический регион на сетки и найдите координаты центроида для каждой сетки. - PullRequest
0 голосов
/ 06 января 2020

У меня есть географический регион со следующими координатами (широта, долгота) ограничительной рамки:

bottomLeft = (51.242265, 12.234573)
bottomRight = (51.242265, 12.538757)
topLeft = (51.446423, 12.234573)
topRight = (51.446423, 12.538757)

Это прямоугольная angular область 23 км x 21 км. Я хочу разделить это географическое пространство на прямоугольные angular сетки, например, 0,25 кв. Км (0,5 км * 0,5 км), и найти координаты широты / долготы каждого центроида каждой сетки. Я получил следующий код из ранее сложенного вопроса:

import shapely.geometry
import pyproj

# https://stackoverflow.com/questions/40342355/how-can-i-generate-a-regular-geographic-grid-using-python
# Set up projections
p_ll = pyproj.Proj(init='epsg:4326') #4326
p_mt = pyproj.Proj(init='epsg:3857') # espg:3857 metric; same as EPSG:900913

# Create corners of rectangle to be transformed to a grid
nw = shapely.geometry.Point((12.234573, 51.242265))  #actually SW
print(nw)
se = shapely.geometry.Point((12.538757, 51.446423)) #actually NE

stepsize = 500 # 0,5 km grid step size

# Project corners to target projection
s = pyproj.transform(p_ll, p_mt, nw.x, nw.y) # Transform NW point to 3857
e = pyproj.transform(p_ll, p_mt, se.x, se.y) # .. same for SE
print(s)
print(e)
# Iterate over 2D area
gridpoints = []
x = s[0]
while x < e[0]:
    y = s[1]
    while y < e[1]:
        p = shapely.geometry.Point(pyproj.transform(p_mt, p_ll, x, y))
        gridpoints.append(p)
        y += stepsize
    x += stepsize

# with open('testout.csv', 'wb') as of:
#     of.write('lon;lat\n')
for p in gridpoints:
    print(str(p.x)+"," +str(p.y))
    # of.write('{:f};{:f}\n'.format(p.x, p.y))

Источник: Как создать регулярную географическую сетку c с использованием python? У меня проблема со следующим шагом: после того, как я получил пары координат (точки сетки в исходном коде), как я могу управлять вычислением центроидов для каждой сетки? Не математически, это легко. Я запутался со всеми 4 парами широта / долгота для каждой сетки - как я могу получить их систематически для каждой сетки? Пожалуйста, совет

...