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

2024-09-27 21:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在地图(图像)上显示地震数据。我有数据和图像,但要把这些数据放到地图上,我需要在经纬度上画椭圆。在

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

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


Tags: 数据图像datareturndefmathloncx

热门问题