如何在Python中绘制图像上的椭圆(2.7)

时间:2017-02-22 13:34:52

标签: python python-2.7 drawing

我正在尝试在地图上显示地震数据(图像)。我有数据和图像,但要将数据放在地图上,我需要在纬度和经度上绘制椭圆。

import math
import requests

zoom = 1
ww = 900
hh = 900
clat = 0
clon = 0
data = requests.get(
    "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv")
# Web Mercator Math


def MercX(lon):
    lon = math.radians(lon)
    return (128 / 3.14) * math.pow(2, zoom) * (lon + 3.14)


def MercY(lat):
    lat = math.radians(lat)
    return (128 / 3.14) * math.pow(2, zoom) * (3.14 - math.log(math.tan(3.14 / 4 + lat / 2)))


def webMercX(lon, zoom):
    lon = math.radians(lon)
    w = 128
    a = (w / 3.14) * math.pow(2, zoom)
    b = (lon + 3.14)
    return a * b


def webMercY(lat, zoom):
    lat = math.radians(lat)
    w = 128
    a = (w / 3.14) * math.pow(2, zoom)
    c = math.tan(3.14 / 4 + lat / 2)
    b = 3.14 - math.log(c)
    return a * b

# curl
# "https://api.mapbox.com/styles/v1/mapbox/dark-v9/static/0,0,2/600x600?access_token=pk.eyJ1Ijoic2hpZmZtYW4xMjMiLCJhIjoiY2l6Z3RkbWt6MDE2MjMybm4ycno2dzV2dyJ9.MjZYuPDlJ11_l1rW_OzgHg
cx = webMercX(clon, zoom)
cy = webMercY(clat, zoom)

lat = " "
lon = " "
x = webMercX(lon, zoom) - cx
y = webMercY(lat, zoom) - cy

i = 1
while i < len(data):
    stuff = data[i].split(',')
    print stuff[1], stuff[2]
    lat = float(stuff[1])
    lon = float(stuff[2])
    x = webMercX(lon, zoom) - cx
    y = webMercY(lat, zoom) - cy
    i += 1
    #function to draw ellipse

图像将在本地服务器上输出,并且是静态的。 注意:我不希望每次运行脚本时都生成该图像。我希望它在硬盘上保存一次。

0 个答案:

没有答案