Как разделить файл формы по вертикали в Python? - PullRequest
0 голосов
/ 07 января 2019

У меня есть шейп-файл, и я хотел бы разбить форму на "n" вертикальных полос. Есть ли чистый метод python, чтобы сделать это и сохранить выходные данные в виде файла формы для каждой вертикальной полосы? У меня есть шейп-файл из США, и я хотел бы разбить многоугольник на несколько вертикальных полос.

import geopandas as gpd

gdf = gpd.read_file('cb_2017_us_nation_20m/cb_2017_us_nation_20m.shp')

AFFGEOID    GEOID   NAME    geometry
0100000US   US  United States   (POLYGON ((-136.563223 58.035052, -136.538708 ...

img

Основываясь на изображении выше (извините за плохое качество), я бы хотел разделить многоугольник на "n" субполигональных фигур.

Я пробовал несколько программ для ГИС, но не смог найти никакого решения. Любой чистый метод Python для достижения этой цели?

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 07 января 2019
  1. Используйте проекцию в метрах (в отличие от широты, проекции lng)
  2. Создание фрейма геоданных, где каждая строка представляет собой «вертикальный прямоугольник»
  3. Получите пересечение каждой строки в вашем кадре геоданных прямоугольников с исходным файлом формы

Чтобы сделать прямоугольники стройными:

from shapely.geometry import Polygon

Тогда каждый прямоугольник будет состоять из четырех точек, которые вы можете получить из общего экстента вашего шейп-файла и разделив общий экстент в «x» на количество прямоугольников, которое вы хотите (вы захотите использовать цикл for для построения каждого прямоугольника)

...