Spaces:
Runtime error
Runtime error
| import requests | |
| import urllib3 | |
| import json | |
| from utils import geoutil | |
| import llm_coding | |
| def get_geojson(ent, arr, centroid): | |
| poly_json = {} | |
| poly_json['type'] = 'FeatureCollection' | |
| poly_json['features'] = [] | |
| coordinates= [] | |
| coordinates.append(arr) | |
| poly_json['features'].append({ | |
| 'type':'Feature', | |
| 'id': ent, | |
| 'properties': { | |
| 'centroid': centroid | |
| }, | |
| 'geometry': { | |
| 'type':'Polygon', | |
| 'coordinates': coordinates | |
| } | |
| }) | |
| return poly_json | |
| def get_coordinates(ent): | |
| request_url = 'https://nominatim.openstreetmap.org/search.php?q= ' +ent +'&polygon_geojson=1&accept-language=en&format=jsonv2' | |
| headers = { | |
| "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Safari/605.1.15" | |
| } | |
| page = requests.get(request_url, headers=headers, verify=False) | |
| json_content = json.loads(page.content) | |
| all_coordinates = json_content[0]['geojson']['coordinates'][0] | |
| centroid = (float(json_content[0]['lon']), float(json_content[0]['lat'])) | |
| for p in all_coordinates: | |
| p2 = (p[0], p[1]) | |
| angle = geoutil.calculate_bearing(centroid, p2) | |
| p.append(angle) | |
| geojson = get_geojson(ent, all_coordinates, centroid) | |
| return geojson['features'][0]['geometry']['coordinates'][0], geojson['features'][0]['properties']['centroid'] | |
| predict_path = 'answer/GPT4o.json' | |
| # predict_path = 'dataset/test.json' | |
| target_path = 'dataset/dataset_20.json' | |
| with open(predict_path, 'r') as f: | |
| predit = json.load(f) | |
| with open(target_path, 'r') as f: | |
| target = json.load(f) | |
| result = [] | |
| for i in range(len(predit)): | |
| # if llm_coding.execute_steps(i['steps']) == | |
| print(predit[i]) | |
| print(i) | |
| try: | |
| coord1 = llm_coding.execute_steps(predit[i]['steps']) | |
| coord2 = llm_coding.execute_steps(target[i]['steps']) | |
| res = coord1[(max(coord1.keys()))][0] == coord2[(max(coord2.keys()))][0] | |
| except: | |
| res = False | |
| result.append(res) | |
| print(result) | |
| print(result.count(True)) | |