Методы преобразования CSV/ВВП в шейп-файл на Python: Geopandas, Fiona, PyShp

Чтобы преобразовать данные CSV или GDP в шейп-файл на Python, вы можете использовать несколько методов. Вот несколько популярных подходов:

  1. Geopandas: Geopandas — это библиотека Python, созданная на основе pandas и упрощающая работу с геопространственными данными, включая файлы CSV и GDP. Вы можете использовать функцию read_file()для чтения данных CSV или GDP, а затем использовать функцию to_file(), чтобы сохранить их как шейп-файл.

    import geopandas as gpd
    # Read CSV/GDP file
    data = gpd.read_file('your_file.csv')  # or 'your_file.gdp'
    # Convert to shapefile
    data.to_file('output.shp', driver='ESRI Shapefile')
  2. Fiona: Fiona — это еще один пакет Python, который предоставляет простой интерфейс для чтения и записи форматов геопространственных данных, включая шейп-файлы. Вы можете использовать Fiona вместе с файлом CSV или GDP, чтобы преобразовать его в шейп-файл.

    import fiona
    import pandas as pd
    # Read CSV/GDP file
    data = pd.read_csv('your_file.csv')  # or 'your_file.gdp'
    # Convert to shapefile
    schema = {'geometry': 'Point', 'properties': {'id': 'int'}}
    with fiona.open('output.shp', 'w', 'ESRI Shapefile', schema) as output:
       for index, row in data.iterrows():
           point = {'type': 'Point', 'coordinates': (row['longitude'], row['latitude'])}
           output.write({'geometry': point, 'properties': {'id': row['id']}})
  3. PyShp: PyShp — это чистая библиотека Python для чтения и записи шейп-файлов. Вы можете использовать его для преобразования данных CSV или GDP в шейп-файл, создав необходимые компоненты шейп-файла и заполнив их данными.

    import shapefile
    import csv
    # Read CSV/GDP file
    data = []
    with open('your_file.csv') as csvfile:  # or 'your_file.gdp'
       reader = csv.DictReader(csvfile)
       for row in reader:
           data.append(row)
    # Convert to shapefile
    w = shapefile.Writer('output.shp', shapeType=shapefile.POINT)
    w.field('id', 'N')
    for row in data:
       w.point(float(row['longitude']), float(row['latitude']))
       w.record(int(row['id']))
    w.close()

Это всего лишь несколько способов преобразования файлов CSV или GDP в шейп-файлы на Python. Обязательно адаптируйте код в соответствии с вашими конкретными требованиями и форматом данных.