Spaces:
Runtime error
Runtime error
import json | |
import geopandas as gpd | |
from dotenv import load_dotenv | |
from geopy.geocoders import Nominatim | |
from shapely.geometry import Point | |
load_dotenv() | |
file_rmqs ='data/soil_data/raw_data/rmqs.geojson' | |
df = gpd.read_file(file_rmqs) | |
def get_city_coordinates(city_name): | |
"""Get latitude and longitude of a city using Nominatim.""" | |
geolocator = Nominatim(user_agent="geo_finder") | |
location = geolocator.geocode(city_name) | |
if location: | |
return (location.longitude, location.latitude) | |
return None | |
def find_nearest_point(city_name): | |
"""Find the closest GPS point in the dataset to the given city.""" | |
city_coords = get_city_coordinates(city_name) | |
print("city coords", city_coords) | |
if not city_coords: | |
return "City not found" | |
# Iterate through GeoJSON features | |
df["distance"] = df["geometry"].distance(Point(city_coords[0], city_coords[1])) | |
closest_point = df.loc[df["distance"].idxmin()] | |
return closest_point # Returns the closest feature | |
if __name__ == "__main__": | |
# Example usage | |
city = "Paris" | |
closest_feature = find_nearest_point(city) | |
print(closest_feature) | |