『壹』 python 實現批量轉換坐標系
https://github.com/wandergis/coordTransform_py/archive/master.zip
『貳』 python將高斯坐標轉換經緯度 經緯度坐標與高斯坐標的轉換代碼
#網上搜來的
# 高斯坐標轉經緯度演算法 # B=大地坐標X # C=大地坐標Y # IsSix=6度帶或3度帶
import math
def GetLatLon2(B, C,IsSix):
#帶號
D = math.trunc( C/ 1000000)
#中央經線(單位:弧度)
K = 0
if IsSix:
K = D * 6 - 3 #6度帶計算
else:
K = D * 3 #3度帶計算
L = B/(6378245*(1-0.006693421623)*1.0050517739)
M = L +(0.00506237764 * math.sin(2*L)/2-0.00001062451*math.sin(4*L)/4+0.0000002081*math.sin(6*L)/6)/1.0050517739
N = L +(0.00506237764 * math.sin(2*M)/2-0.00001062451*math.sin(4*M)/4+0.0000002081*math.sin(6*M)/6)/1.0050517739
O = L +(0.00506237764 * math.sin(2*N)/2-0.00001062451*math.sin(4*N)/4+0.0000002081*math.sin(6*N)/6)/1.0050517739
P = L +(0.00506237764 * math.sin(2*O)/2-0.00001062451*math.sin(4*O)/4+0.0000002081*math.sin(6*O)/6)/1.0050517739
Q = L +(0.00506237764 * math.sin(2*P)/2-0.00001062451*math.sin(4*P)/4+0.0000002081*math.sin(6*P)/6)/1.0050517739
R = L +(0.00506237764 * math.sin(2*Q)/2-0.00001062451*math.sin(4*Q)/4+0.0000002081*math.sin(6*Q)/6)/1.0050517739
S = math.tan(R)
T = 0.006738525415*(math.cos(R))**2
U = 6378245/math.sqrt(1-0.006693421623*(math.sin(R))**2)
V = 6378245*(1-0.006693421623)/(math.sqrt((1-0.006693421623*(math.sin(R))**2)))**3
W = 5+3*S**2+T-9*T*S**2
X = 61+90*S**2+45*S**4
Y = 1+2*S**2+T**2
Z = 5+28*S**2+24*S**4+6*T+8*T*S**2
Lat= (180/math.pi)*(R-(C-D*1000000-500000)**2*S/(2*V*U)+(C-D*1000000-500000)**4*W/(24*U**3*V)-(C-D*1000000-500000)**6*X/(7200*U**5*V))
Lon= (180/math.pi)*(C-D*1000000-500000)*(1-(C-D*1000000-500000)**2*Y/(6*U**2)+(C-D*1000000-500000)**4*Z/(120*U**4))/(U*math.cos(P))
Lat = Lat
Lon = K + Lon
return (Lon, Lat)
『叄』 python用矩陣輸出地圖坐標 錯誤:only length-1 arrays can be converted to Python scalars
看這個提示是因為你的傳入的參數應該長度為1的數組,
錯誤翻譯就是:只有長度為1的數組才能被轉換成python scalars
『肆』 如何用python實現百度地圖墨卡托坐標跟經緯度坐標互轉
麥哲倫機器:
系統設置
地圖單位
自定義坐標系
橫向墨卡托
原點緯度0
原點經度126(通化)
比例因子1
通用迷單位1
原點向東偏移500000
原點向北偏移0
完成
系統設置
地圖單位
參考橢球
用戶
DA-108
DF0.0000005
DX1
DY-129
DZ-48
X旋轉0
Y旋轉0
Z旋轉0
比例因子0
完成
以上就OK了
這樣從經緯度轉為公里網坐標。反向選擇為「度分秒」格式,地圖單位選為「wgs84」就可以改成經緯度格式了。
『伍』 python畫圖要用圖形庫嗎
matplotlib,是最經典的Python可視化繪圖庫。matplotlib就是MATLAB Plot Library,即模仿Matlab的繪圖庫,其繪圖風格與Matlab類似。
seaborn,是基於matplotlib的,純粹由Python開發的圖形可視化庫,在matplotlib的基礎上進行了更高級的API封裝,從而使得作圖更加容易。"make a well-defined set of hard things easy",「默認情況下就能創建賞心悅目的圖表」。
basemap,Python的basemap庫負責實現地理信息可視化,其功能之強大較GMT有過之而無不及。其底圖資料庫與GMT相同,封裝了大量常用的地圖投影、坐標轉換功能,利用簡潔的Python語法支持繪出多種多樣的地理地圖。
『陸』 使用 Python 地圖繪制工具 -- folium 全攻略
1. 准備工作
有朋友可能沒用過 folium ,它其實就是 python 的一個 專業繪制地圖 的第三方庫,所以在使用之前需要先安裝它。
在安裝完成之後,我們可以在 jupyterlab 進行演示如下:
對於上面的輸出,其實是一個 可交互 的地圖,支持放大縮寫拖拽等等。
如果你想將輸出存在本地,可以這樣來:
可以看到本地就存了這個一個文件,瀏覽器打開就可以進行互動式操作了。
以上就是一個平平淡淡的過程......
2. 關於folium.Map()
在上一部分我們可以看到這個 map 玩意直接就是一個地圖啦,這里我們就介紹一下它常用的幾個參數。
參數可真多啊!!
以上是常用的一些參數,而最常用的莫過於 location 、 zoom_start 和 tiles 等。
內建地圖樣式 還有一下幾種:
我們簡單試下 location 和 zoo_start 參數:
可以看到 清華大學校區
以上對 Map 的參數進行了簡單的介紹,接下來,我們就來看看地圖底圖樣式的選取情況吧~
3. 內建地圖底圖樣式
我們看到 folium 其實有好幾種內建地圖底圖樣式,其中部分需要去申請 key ,由於我這邊沒有申請成功就不做演示了。
地勢地形底圖
黑白無標記底圖
水墨畫底圖
以上就是內建地圖底圖樣式的一些展示,部分需要key的大家可以去這個網站申請:
另外,在這里也可以找到一些地圖底圖
我後續也會去研究這些地圖底圖樣式,試著分享更多有趣的地圖分享給大家。
當然了,國內咱們用的較多的地圖是高德、網路和騰訊地圖等,接下來我們就來玩玩!
4. 多種第三方地圖底圖樣式
這里我將演示高德地圖、智圖GeoQ和騰訊地圖等
高德地圖的 中英文地圖、衛星影像圖、街道圖與常規圖
中英文地圖
純英文地圖
衛星影像圖
街道圖
常規圖
反正我覺得這個蠻好的,用起來簡單
多種風格地圖,即拿即用
彩色版
暖色版
灰色版
藍黑版
英文版
中國行政區劃邊界
水系專題
街道網圖
暖色街道網圖
需要注冊一個key
天地圖影像
天地圖影像注記
天地圖矢量
天地圖矢量注記
天地圖地形
天地圖地形注記
網路地圖我這邊測試失敗了,暫時沒有找到合適的替換方案。
5. 補充
其實,我們還可以找更多的 地圖底圖瓦片URL 來進行替換,多樣化我們的地圖繪制。
另外,大家在用經緯度坐標點進行地圖繪制的時候,比如標記點、繪制區域、熱力圖繪制等等, 需要考慮經緯度坐標是哪個地圖系下面的,然後再用對應地圖系的相關底圖進行繪制才准確!
『柒』 python對衛星地圖tif文件轉換
pathjoin那裡錯了。應該是:
圖一中的錯誤表明,imread返回值img是None
imread的第一個參數,即使傳入的是一個無效的文件名,它也不會拋出錯誤,而是返回一個None.
第一個參數的賦值是this.dir = os.path.join(dir + ...)
這種寫法並不好,一般來說,應該是寫成
this.dir = os.path.join(dir , filename)
並且,你應當在這之後檢查一下這個文件是否存在:
if not os.path.isfile(this.dir):
....raise FileNotFoundError(this.dir)
然後才可以交給imread()去讀取
『捌』 【可視化】python地圖可視化_Folium
Folium是Leaflet.js的Python的API,即可以使用Python語言調用Leaflet的地圖可視化能力。
其中,Leaflet是一個非常輕的前端地圖可視化庫。
默認參數為OpenStreetMap地圖,(0,0)經緯度坐標,全球范圍縮放
最簡單的配置,初始化中心位置和縮放尺度
文檔說內置「Mapbox Bright」和「Mapbox Control Room」,本次實驗中無法載入
瓦片地址參考 http://openwhatevermap.xyz
瓦片地址參考頁面頂部鏈接
各種要素可以設置顏色、大小、文字標記等屬性,具體看操作手冊
這里以高德地圖為底圖,添加點、線、面形狀
以高德地圖API的坐標提取器為准,取操場位置的坐標,並打在默認地圖和高德地圖上,可以看到坐標不同
做地圖可視化的方法,通常有
其中
python語言近年來比較熱,也有很多可視化庫可以用,但是在地圖的可視化方面很弱。有一些可視化庫也支持一點點,如plotly內置的mapbox可視化;還有上面提到的的pyecharts可以做形狀,底圖(應該)可以用網路地圖。但是這些或者不靈活、或者限定了底圖,基本能力還是有的,雖然都不全。
背景完,具體內容到頁面頂部。
『玖』 python可視化神器——pyecharts庫
無意中從今日頭條中看到的一篇文章,可以生成簡單的圖表。據說一些大數據開發們也是經常用類似的圖表庫,畢竟有現成的,改造下就行,誰會去自己造輪子呢。
pyecharts是什麼?
pyecharts 是一個用於生成 Echarts 圖表的類庫。Echarts 是網路開源的一個數據可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒, pyecharts 是為了與 Python 進行對接,方便在 Python 中直接使用數據生成圖 。使用pyecharts可以生成獨立的網頁,也可以在flask、django中集成使用。
安裝很簡單:pip install pyecharts
如需使用 Jupyter Notebook 來展示圖表,只需要調用自身實例即可,同時兼容 Python2 和 Python3 的 Jupyter Notebook 環境。所有圖表均可正常顯示,與瀏覽器一致的交互體驗,簡直不要太強大。
參考自pyecharts官方文檔: http://pyecharts.org
首先開始來繪制你的第一個圖表
使用 Jupyter Notebook 來展示圖表,只需要調用自身實例即可
add() 主要方法,用於添加圖表的數據和設置各種配置項
render() 默認將會在根目錄下生成一個 render.html 的文件,文件用瀏覽器打開。
使用主題
自 0.5.2+ 起,pyecharts 支持更換主體色系
使用 pyecharts-snapshot 插件
如果想直接將圖片保存為 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用該插件請確保你的系統上已經安裝了 Nodejs 環境。
安裝 phantomjs $ npm install -g phantomjs-prebuilt
安裝 pyecharts-snapshot $ pip install pyecharts-snapshot
調用 render 方法 bar.render(path='snapshot.png') 文件結尾可以為 svg/jpeg/png/pdf/gif。請注意,svg 文件需要你在初始化 bar 的時候設置 renderer='svg'。
圖形繪制過程
基本上所有的圖表類型都是這樣繪制的:
chart_name = Type() 初始化具體類型圖表。
add() 添加數據及配置項。
render() 生成本地文件(html/svg/jpeg/png/pdf/gif)。
add() 數據一般為兩個列表(長度一致)。如果你的數據是字典或者是帶元組的字典。可利用 cast() 方法轉換。
多次顯示圖表
從 v0.4.0+ 開始,pyecharts 重構了渲染的內部邏輯,改善效率。推薦使用以下方式顯示多個圖表。如果使是 Numpy 或者 Pandas,可以參考這個示例
當然你也可以採用更加酷炫的方式,使用 Jupyter Notebook 來展示圖表,matplotlib 有的,pyecharts 也會有的
Note: 從 v0.1.9.2 版本開始,廢棄 render_notebook() 方法,現已採用更加 pythonic 的做法。直接調用本身實例就可以了。
比如這樣
還有這樣
如果使用的是自定義類,直接調用自定義類示例即可
圖表配置
圖形初始化
通用配置項
xyAxis:平面直角坐標系中的 x、y 軸。(Line、Bar、Scatter、EffectScatter、Kline)
dataZoom:dataZoom 組件 用於區域縮放,從而能自由關注細節的數據信息,或者概覽數據整體,或者去除離群點的影響。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)
legend:圖例組件。圖例組件展現了不同系列的標記(symbol),顏色和名字。可以通過點擊圖例控制哪些系列不顯示。
label:圖形上的文本標簽,可用於說明圖形的一些數據信息,比如值,名稱等。
lineStyle:帶線圖形的線的風格選項(Line、Polar、Radar、Graph、Parallel)
grid3D:3D笛卡爾坐標系組配置項,適用於 3D 圖形。(Bar3D, Line3D, Scatter3D)
axis3D:3D 笛卡爾坐標系 X,Y,Z 軸配置項,適用於 3D 圖形。(Bar3D, Line3D, Scatter3D)
visualMap:是視覺映射組件,用於進行『視覺編碼』,也就是將數據映射到視覺元素(視覺通道)
markLine&markPoint:圖形標記組件,用於標記指定的特殊數據,有標記線和標記點兩種。(Bar、Line、Kline)
tooltip:提示框組件,用於移動或點擊滑鼠時彈出數據內容
toolbox:右側實用工具箱
圖表詳細
Bar(柱狀圖/條形圖)
Bar3D(3D 柱狀圖)
Boxplot(箱形圖)
EffectScatter(帶有漣漪特效動畫的散點圖)
Funnel(漏斗圖)
Gauge(儀表盤)
Geo(地理坐標系)
GeoLines(地理坐標系線圖)
Graph(關系圖)
HeatMap(熱力圖)
Kline/Candlestick(K線圖)
Line(折線/面積圖)
Line3D(3D 折線圖)
Liquid(水球圖)
Map(地圖)
Parallel(平行坐標系)
Pie(餅圖)
Polar(極坐標系)
Radar(雷達圖)
Sankey(桑基圖)
Scatter(散點圖)
Scatter3D(3D 散點圖)
ThemeRiver(主題河流圖)
TreeMap(矩形樹圖)
WordCloud(詞雲圖)
用戶自定義
Grid 類:並行顯示多張圖
Overlap 類:結合不同類型圖表疊加畫在同張圖上
Page 類:同一網頁按順序展示多圖
Timeline 類:提供時間線輪播多張圖
統一風格
註:pyecharts v0.3.2以後,pyecharts 將不再自帶地圖 js 文件。如用戶需要用到地圖圖表,可自行安裝對應的地圖文件包。
地圖文件被分成了三個 Python 包,分別為:
全球國家地圖:
echarts-countries-pypkg
中國省級地圖:
echarts-china-provinces-pypkg
中國市級地圖:
echarts-china-cities-pypkg
直接使用python的pip安裝
但是這里大家一定要注意,安裝完地圖包以後一定要重啟jupyter notebook,不然是無法顯示地圖的。
顯示如下:
總得來說,這是一個非常強大的可視化庫,既可以集成在flask、Django開發中,也可以在做數據分析的時候單獨使用,實在是居家旅行的必備神器啊
『拾』 如何用Python批量獲取經緯度坐標
在MapGIS67「投影變換」子系統中的「用戶文件投影轉換」功能模塊中,
打開坐標文本文件,設置好相關參數,
點擊「投影變換」,然後點擊「寫到文件」,
就把轉換好的坐標數據保存成文本文件了!