匹配污染物监测站点距离5-10公里的气象站点的代码
时间: 2024-03-02 12:54:19 浏览: 39
以下是匹配污染物监测站点距离5-10公里的气象站点的代码(假设污染物监测站点和气象站点的经纬度信息存储在两个名为"pollution_sites"和"meteorological_sites"的列表中):
```python
import math
def distance(lat1, lon1, lat2, lon2):
"""
计算两个经纬度之间的距离
"""
R = 6371 # 地球平均半径,单位为公里
lat1 = math.radians(lat1)
lon1 = math.radians(lon1)
lat2 = math.radians(lat2)
lon2 = math.radians(lon2)
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.sin(dlat / 2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon / 2)**2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance
matched_sites = []
for pollution_site in pollution_sites:
for meteorological_site in meteorological_sites:
site_distance = distance(pollution_site['lat'], pollution_site['lon'], meteorological_site['lat'], meteorological_site['lon'])
if site_distance >= 5 and site_distance <= 10:
matched_sites.append((pollution_site, meteorological_site))
print(matched_sites)
```
该代码首先定义了一个计算两个经纬度之间距离的函数distance。然后,它遍历污染物监测站点和气象站点列表中的所有组合,并计算它们之间的距离。如果距离在5-10公里之间,则将这两个站点存储到匹配的站点列表中。最后,该代码打印匹配的站点列表。
阅读全文