Проверьте, находится ли географическая точка в пределах многоугольника, добавьте объект в фрейм данных - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь отобразить список географических координат широты / долготы в окрестностях Нью-Йорка.У меня есть файл .geojson с полигонами, а также мой набор данных .csv, содержащий широту / долготу в виде двух отдельных столбцов.

Как проверить, находится ли точка (.csv) в заданных полигонах (.geojson)), а затем добавить функцию (участок) в кадр данных pandas?

Ссылка на файл geojson: https://github.com/veltman/wherewolf/blob/master/examples/node/police-precincts.geojson

импорт json импорт csv из shapely.geometry import shape, Point

uber_df = pd.read_csv ('uber_preprocessed.csv')

с открытым ('Police_precincts.geojson') как f: data = json.load (f)

# loop thru coordinates in the uber csv file
for lat in uber_df['Lat']:
    pointLat = float(lat)
    for lon in uber_df['Lon']:
        pointLon = float(lon)

        point = Point(pointLon, pointLat)

        # loop thru features in geoJSON file
        for feature in data['features']:
            polygon = shape(feature["geometry"])

            if polygon.contains(point):

                # grab the data
                newx = feature["properties"]["Precinct"]

                # append the data
                precincts = []
                precincts.append(newx)

                # write to file
                with open('newfile.csv', 'wb') as newFile:
                    wr = csv.writer(newFile, quoting=csv.QUOTE_ALL)
                    newFile.writerow(precincts)

Я знаю, что последний блок строк записывает данные в файл .csv, но я бы хотел, чтобы каждая функция отображалась на каждую запись в моем наборе данных.Как мне это сделать?

...