最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何批量處理經(jīng)緯度數(shù)據(jù)并生成位置信息

 更新時(shí)間:2023年08月16日 09:55:46   作者:bill12458  
這篇文章主要介紹了Python如何批量處理經(jīng)緯度數(shù)據(jù)并生成位置信息問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

這次的內(nèi)容是無(wú)意之間想到要做的,因?yàn)楸救嗽谧詫W(xué)Python,學(xué)習(xí)到pandas模塊的時(shí)候就想著怎么樣可以將學(xué)習(xí)獲得的知識(shí)應(yīng)用起來(lái),于是就有了今天這個(gè)實(shí)戰(zhàn)內(nèi)容。

準(zhǔn)備

  • ①Python 3.x及以上的運(yùn)行環(huán)境
  • ②導(dǎo)入pandas模塊
  • ③導(dǎo)入geopy模塊,可以直接pip install geopy獲得
  • ④導(dǎo)入warnings模塊,用于過(guò)濾無(wú)用的警告信息

其中g(shù)eopy作為一個(gè)地理位置相關(guān)的庫(kù),提供了一系列方便的調(diào)用其他地圖api的方法,其中就包括了:

1、通過(guò)地名(如建筑物)獲取詳細(xì)地理位置;

2、通過(guò)給定的經(jīng)緯度獲取詳細(xì)的地址這兩種實(shí)用方法。具體請(qǐng)參考官方文檔,地址:歡迎使用Geopy文檔! — GeoPy 2.2.0 文檔

讀取處理數(shù)據(jù)

由于使用的是pandas模塊,所以按照以往的經(jīng)驗(yàn),我選擇使用csv文件保存經(jīng)緯度數(shù)據(jù),通過(guò)python程序生成指定數(shù)目和范圍的隨機(jī)數(shù)用來(lái)模擬實(shí)際中的經(jīng)緯度數(shù)據(jù),效果如下(注:這里只生成了東經(jīng)0-180°的,實(shí)際上應(yīng)該還包括西經(jīng)0-180°):

然后通過(guò)pandas的read_csv()方法得到一個(gè)DataFrame對(duì)象。

到這里思路就很清晰了,即通過(guò)某種方式我們可以方便地獲取每一行的經(jīng)度和緯度信息并進(jìn)行處理,這種方式就是行/列切片。

生成位置信息

geopy提供了一系列方便的調(diào)用其他地圖api的方法,考慮到某些api的調(diào)用需要用戶注冊(cè)并生成密鑰才可以使用,我選擇無(wú)需注冊(cè)的Nominatim的api,官網(wǎng):Nominatim

結(jié)合上一步,將每次切片得到的經(jīng)緯度數(shù)據(jù)分別填充,調(diào)用reverse()函數(shù)后得到較為準(zhǔn)確的位置信息。

關(guān)鍵部分如下——

data="{}, {}".format(str(longtitude),str(latitude))
geolocator = Nominatim(user_agent=username)
location = geolocator.reverse(data,zoom=18)

tips:

location輸出一個(gè)對(duì)應(yīng)經(jīng)緯度的大致地理位置,比如說(shuō)精確到街道
location.address輸出一個(gè)對(duì)應(yīng)經(jīng)緯度的詳細(xì)地理位置,包括是什么建筑物
location.raw輸出一個(gè)對(duì)應(yīng)經(jīng)緯度的原始信息,貌似默認(rèn)是json格式

最終效果

其中的none是因?yàn)榻?jīng)緯度坐標(biāo)在水系或者無(wú)人區(qū)中,無(wú)法確定地理位置。

完整代碼

from geopy.geocoders import Nominatim
import warnings as bill_warn
import pandas as pd1
def locate_address(urlname,username):
    bill_warn.filterwarnings(action="ignore",message="whatever")
    geo_frame=pd1.DataFrame(pd1.read_csv(urlname))
    for i in range(0,len(geo_frame)):
        longtitude = geo_frame.iloc[i,1]
        latitude = geo_frame.iloc[i,2]
        data="{}, {}".format(str(longtitude),str(latitude))
        geolocator = Nominatim(user_agent=username)
        location = geolocator.reverse(data,zoom=18)
        print("The information to this set of data:")
        print(location)
    print("Transform successfully conducted!!!")
locate_address("location.csv","myuseragent")

注意事項(xiàng)

① 如果遇到下列的異常

問題就是在于初始化Nomitanim的時(shí)候,沒有指定user_agent的名字,而是調(diào)用了默認(rèn)的user_agent,解決辦法就是在構(gòu)造函數(shù)改為你想要的任何的名字

geolocator = Nominatim(user_agent=“你想要的名字”)

②Nominatim的調(diào)用也有一定的數(shù)量限制,所以請(qǐng)合理使用!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 如何用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組

    Python 如何用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組

    這篇文章主要介紹了Python 用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python模塊的加載講解

    Python模塊的加載講解

    今天小編就為大家分享一篇關(guān)于Python模塊的加載講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python中venv虛擬環(huán)境超詳細(xì)講解

    Python中venv虛擬環(huán)境超詳細(xì)講解

    虛擬環(huán)境是一個(gè)獨(dú)立的Python環(huán)境,它與系統(tǒng)的全局Python環(huán)境隔離,這篇文章主要介紹了Python中venv虛擬環(huán)境的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 圖文詳解牛頓迭代算法原理及Python實(shí)現(xiàn)

    圖文詳解牛頓迭代算法原理及Python實(shí)現(xiàn)

    牛頓迭代法又稱為牛頓-拉夫遜(拉弗森)方法,它是牛頓在17世紀(jì)提出的一種在實(shí)數(shù)域和復(fù)數(shù)域上近似求解方程的方法。本文將利用圖文詳解牛頓迭代算法原理及實(shí)現(xiàn),需要的可以參考一下
    2022-08-08
  • Python中利用aiohttp制作異步爬蟲及簡(jiǎn)單應(yīng)用

    Python中利用aiohttp制作異步爬蟲及簡(jiǎn)單應(yīng)用

    asyncio可以實(shí)現(xiàn)單線程并發(fā)IO操作,是Python中常用的異步處理模塊。這篇文章主要介紹了Python中利用aiohttp制作異步爬蟲的相關(guān)知識(shí),需要的朋友可以參考下
    2018-11-11
  • Django3基于WebSocket實(shí)現(xiàn)WebShell的詳細(xì)過(guò)程

    Django3基于WebSocket實(shí)現(xiàn)WebShell的詳細(xì)過(guò)程

    最近工作中需要開發(fā)前端操作遠(yuǎn)程虛擬機(jī)的功能,簡(jiǎn)稱WebShell,普通應(yīng)用大部分用的都是wsgi.py配合nginx部署線上服務(wù). 這次主要使用asgi.py,具體實(shí)現(xiàn)過(guò)程跟隨小編一起看看吧
    2021-08-08
  • Python插件virtualenv搭建虛擬環(huán)境

    Python插件virtualenv搭建虛擬環(huán)境

    這篇文章主要為大家詳細(xì)介紹了Python插件virtualenv搭建虛擬環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Python在PDF中添加或刪除超鏈接的操作

    Python在PDF中添加或刪除超鏈接的操作

    PDF文件現(xiàn)已成為文檔存儲(chǔ)和分發(fā)的首選格式,然而,PDF文件的靜態(tài)特性有時(shí)會(huì)限制其交互性,超鏈接是提高PDF文件互動(dòng)性和用戶體驗(yàn)的關(guān)鍵元素,本文將詳細(xì)介紹如何使用第三方庫(kù)Spire.PDF for Python來(lái)進(jìn)行這些操作,需要的朋友可以參考下
    2024-12-12
  • matplotlib簡(jiǎn)介,安裝和簡(jiǎn)單實(shí)例代碼

    matplotlib簡(jiǎn)介,安裝和簡(jiǎn)單實(shí)例代碼

    這篇文章主要介紹了matplotlib簡(jiǎn)介,安裝和簡(jiǎn)單實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python 中 Selenium 的 getAttribute() 函數(shù)詳解

    Python 中 Selenium 的 getAttribute() 

    本文將解釋如何使用Selenium的getAttribute()方法,getAttribute() 方法可以檢索元素屬性,例如錨標(biāo)記的 href 屬性, 該函數(shù)最初將嘗試返回指定屬性的值,感興趣的朋友跟隨小編一起看看吧
    2023-11-11

最新評(píng)論

桦甸市| 祁门县| 岑溪市| 成武县| 罗甸县| 台湾省| 永吉县| 盐边县| 普宁市| 成武县| 冷水江市| 资中县| 泸西县| 花莲县| 无极县| 特克斯县| 亚东县| 凤庆县| 壤塘县| 孟津县| 清徐县| 宝兴县| 永修县| 漾濞| 肃宁县| 澄江县| 隆回县| 和顺县| 青神县| 即墨市| 南和县| 沅陵县| 房山区| 靖安县| 长子县| 高密市| 嵩明县| 岳普湖县| 岑巩县| 喀喇沁旗| 伊川县|