我试图从some of NOAA's weather bulletins中提取纬度和经度。问题是纬度和长度使用基数方向来指示纬度或长偏移的方向 - 不是“纯”小数,它表示数字符号的偏移方向(即正数或负数)。
检索坐标:
>>> import urllib2, re
>>> url = 'http://weather.noaa.gov/pub/data/raw/we/weca43.pheb.tib.cax.txt'
>>> request = urllib2.urlopen(url)
>>> re.search('COORDINATES\s+-\s+(.*)', request.read()).groups()[0]
'60.6 SOUTH 25.4 WEST'
我可以解析它们,但由于有很多方法可以实现这一点,我想知道在尝试解决方案时应该记住什么。
此外,Google了解此类坐标,但似乎没有解析它的API。
答案 0 :(得分:2)
如果你发现单词“SOUTH”将纬度“60.6”乘以-1 如果你发现“WEST”这个词乘以经度25.4乘以-1。
这就是全部!
你得到(-60.6,-25.4)这是十进制表示。
答案 1 :(得分:0)
使用完整解决方案:
import urllib2, re
url = 'http://weather.noaa.gov/pub/data/raw/we/weca43.pheb.tib.cax.txt'
request = urllib2.urlopen(url)
coordinates = re.search('COORDINATES\s+-\s+(.*)', request.read()).groups()[0]
p = re.compile(r'\s{2,}')
matches = p.split(coordinates)
matches = [match.split(' ') for match in matches]
for coordinate in matches:
m = -1 if coordinate[1].upper() in ('SOUTH', 'WEST') else 1
coordinate[0] = float(coordinate[0]) * m
coordinates = (matches[1][0], matches[0][0])