To wydaje się dość proste pytanie, ale nie mogę wymyślić, jak przekonwertować pandę DataFrame na GeoDataFrame dla połączenia przestrzennego. Oto przykład tego, jak wyglądają moje dane przy użyciu df.head(): Date/Time Lat Lon ID 0 4/1/2014 0:11:00 40.7690 -73.9549 140 1 4/1/2014 0:17:00 40.7267 -74.0345 NaN W rzeczywistości ta ramka danych …
Mam 2 ramki geodata: import geopandas as gpd from shapely.geometry import Point gpd1 = gpd.GeoDataFrame([['John',1,Point(1,1)],['Smith',1,Point(2,2)],['Soap',1,Point(0,2)]],columns=['Name','ID','geometry']) gpd2 = gpd.GeoDataFrame([['Work',Point(0,1.1)],['Shops',Point(2.5,2)],['Home',Point(1,1.1)]],columns=['Place','geometry']) i chcę znaleźć nazwę najbliższego punktu w gpd2 dla każdego wiersza w gpd1: desired_output = Name ID geometry Nearest 0 John 1 POINT (1 1) Home 1 Smith 1 POINT (2 2) …
Mam prostą ramkę danych GeoPandas: Chciałbym załadować tę GeoDataframe do tabeli PostGIS. Mam już konfigurację bazy danych z rozszerzeniem PostGIS, ale wydaje się, że nie mogę dodać tej ramki danych jako tabeli. Próbowałem następujące: engine = <> meta = MetaData(engine) eld_test = Table('eld_test', meta, Column('id', Integer, primary_key=True), Column('key_comb_drvr', Text), Column('geometry', …
Biorąc pod uwagę geopandas GeoDataFrameserię wielokątów, chciałbym uzyskać powierzchnię w km2 każdej funkcji na mojej liście. Jest to dość powszechny problem, a zwykle proponowane rozwiązanie w przeszłości był w użyciu shapelyi pyprojbezpośrednio (np tutaj i tutaj ). Czy istnieje sposób, aby to zrobić w czystej postaci geopandas?
Próbowałem stworzyć funkcję, która robi w zasadzie to samo, co funkcja „rozpuszczenia” QGIS. Myślałem, że to będzie super łatwe, ale najwyraźniej nie. Więc z tego, co zebrałem, użycie fiona z kształtnym powinno być tutaj najlepszą opcją. Właśnie zacząłem bawić się plikami wektorowymi, więc ten świat jest dla mnie całkiem nowy …
Próbuję przyciągnąć do siebie dwie linie za pomocą Shapely / Geopandas, ale rezultat przyciągania jest bardzo dziwny. Próbowałem : import geopandas as gpd from shapely.geometry import * from shapely.ops import snap lines1 = gpd.GeoDataFrame.from_file('lines1.shp') lines1 = lines1.to_crs({'init': 'epsg:2227'}) lines2 = gpd.GeoDataFrame.from_file('lines2.shp') lines2 = lines2.to_crs({'init': 'epsg:2227'}) res = lines1 lines2_union = …
Korzystam z poniższego kodu, aby znaleźć kraj (a czasem stan) dla milionów punktów GPS. Kod zajmuje obecnie około jednej sekundy na punkt, co jest niezwykle powolne. Plik shapefile ma 6 MB. Czytałem, że geopandy wykorzystują rtree do połączeń przestrzennych, co czyni je niesamowicie wydajnymi, ale wydaje się, że to tutaj …
Czy można wczytać surowe dane do pliku geopandas GeoDataFramea la a la pandas DataFrame? Na przykład następujące prace: import pandas as pd import requests data = requests.get("https://data.cityofnewyork.us/api/geospatial/arq3-7z49?method=export&format=GeoJSON") pd.read_json(io.BytesIO(r.content)) Następujące nie: import geopandas as gpd import requests data = requests.get("https://data.cityofnewyork.us/api/geospatial/arq3-7z49?method=export&format=GeoJSON") gpd.read_file(io.BytesIO(r.content)) Innymi słowy, czy można odczytać dane geoprzestrzenne znajdujące się w …
Mam geopandy GeoDataFrame zawierające setki zgrabnychPolygon i MultiPolygongeometrycznych kształtów. Wieloboki zachodzą na siebie w wielu miejscach. Chciałbym stworzyć nową geometrię, która zawiera liczbę nakładających się na siebie. Coś takiego: Czy ktoś ma jakieś pomysły, jak do tego podejść? Nie widzę nawet wejścia. W końcu szczególnie chciałbym móc zważyć wielokąty, aby …
wygląda to na głupie pytanie, ale nie mogę znaleźć na to jednoznacznej odpowiedzi: jakie jednostki geopandy / zgrabnie używają obliczania odległości / powierzchni między obiektami?
mam GeoPanda 0.2.1 py27_0 fiona 1.7.0 np110py27_1 Python 2.7.10 zainstalowany w środowisku Anaconda 2-4.1.1-Windows-x86. Potrafię budować GeoDataFrame, odczytując wejściowe zestawy danych i operując danymi, ale zapisanie wyjściowego zestawu danych nie zachowuje układu współrzędnych. import geopandas as gpd world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) world.to_file(driver='ESRI Shapefile',filename=r'C:\GIS\Temp\world_out.shp') world_out.shpMa zawierać funkcje i schemat z shapefile źródłowego, …
Mam ramkę danych geopandas wiązki linii, które mają pewne dane związane z każdym wierzchołkiem / punktem: Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3) Punkty są konwertowane na linie na podstawie identyfikatora i uporządkowane według czasu. Chcę przełamać pasy w miejscu, w którym spełniony jest jakiś warunek. W tej …
Mam geoprzestrzenną ramkę danych w EPSG: 4326 i zrobiłbym nową ramkę danych składającą się ze wszystkich wierszy, które mieszczą się w określonej ramce granicznej. Najpierw otrzymuję obwiednię, na której mi zależy (która w rzeczywistości jest obwiednią innej ramki danych): print df_sussex.total_bounds [ -1.57239292 50.57467674 0.14528384 51.27465152] Następnie tworzę ramkę danych …
Próbuję znaleźć miejsce, w którym wiele linii przecina wielokąt dla dwóch różnych ramek geodanych: from shapely.geometry import Polygon, LineString import geopandas as gpd polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]) line1 = LineString([(0.5, 0.5), (0.7, 0.7)]) line2 = LineString([(0.9, 0.9), (0.2, 0.6)]) poly_gdf = gpd.GeoDataFrame(geometry=[polygon]) …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.