и посмотреть медиа
Análisis de datos - DA SQL
и посмотреть медиа
Análisis de datos: SQL, Python.
Análisis de datos: SQL, Python.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Acerca del análisis de datos: bases de datos, SQL, Python y más para analistas.
GeoPandas в Python GeoPandas - это надстройка над Pandas в Python, которая используется для географического анализа. Главная её особенность - поддержка географических объектов с помощью GeoDataFrame и GeoSeries. ▶️GeoDataFrame - это, по сути, тот же DataFrame, только с поддержкой географических объектов в столбце geometry. Создается он следующим образом: import geopandas as gpd import pandas as pd #data = Данные с координатами df = pd.DataFrame(data) gdf = gpd.GeoDataFrame( df, geometry=gpd.points_from_xy(df['lon'], df['lat']), crs="EPSG:4326" ) Получится та же самая таблица, что и при обычном df, только координаты (широта и долгота) будут записаны в специальном формате в отдельном столбце geometry в виде point(). Позже их можно будет использовать для разных пространственных расчетов: нахождение площади, расстояния, построение границ и т.д. ▶️GeoSeries - это составная часть GeoDataFrame, которая представляет собой только лишь географические объекты в специальных форматах, в т.ч. и в формате point(). Может быть как и отдельной точкой, так и массивом. К примеру, отдельную точку можно создать так: import geopandas as gpd #координаты: target_lon, target_lat point = gpd.GeoSeries( gpd.points_from_xy([target_lon], [target_lat]), crs="EPSG:4326" ) 🟠Теперь о том, как это использовать на практике. Допустим, по городу расставлено множество точек продаж. И нам нужен алгоритм, который будет выдавать точки в радиусе 1 км от заданной. Итак, мы имеем уже созданный GeoDataFrame, который содержит координаты всех наших точек, и созданный GeoSeries, где мы будем задавать исходную точку. Сначала надо перевести всё в метрическую систему UTM, чтобы получить результаты в виде метров, а не градусов (по сути шаблонный код): import geopandas as gpd zone = int((target_lon + 180) // 6) + 1 epsg_utm = 32600 + zone if target_lat >= 0 else 32700 + zone gdf_utm = gdf.to_crs(epsg=epsg_utm) point_utm = point.to_crs(epsg=epsg_utm) И затем уже рассчитать расстояние между заданной точкой и точками в GeoDataFrame и вывести те, у которых расстояние менее 1000: gdf_utm['distance_m'] = gdf_utm.geometry.distance(point_utm.iloc[0]) nearby = gdf_utm[gdf_utm['distance_m']
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!