欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

這次的內容是無意之間想到要做的,因為本人在自學Python,學習到pandas模塊的時候就想著怎么樣可以將學習獲得的知識應用起來,于是就有了今天這個實戰(zhàn)內容。

準備

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

其中geopy作為一個地理位置相關的庫,提供了一系列方便的調用其他地圖api的方法,其中就包括了:

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

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

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

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

然后通過pandas的read_csv()方法得到一個DataFrame對象。

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

生成位置信息

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

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

關鍵部分如下——

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

tips:

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

最終效果

其中的none是因為經(jīng)緯度坐標在水系或者無人區(qū)中,無法確定地理位置。

完整代碼

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")

注意事項

① 如果遇到下列的異常

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

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

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

總結

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

相關文章

  • Python接口自動化測試的實現(xiàn)

    Python接口自動化測試的實現(xiàn)

    這篇文章主要介紹了Python接口自動化測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • python實點云分割k-means(sklearn)詳解

    python實點云分割k-means(sklearn)詳解

    這篇文章主要為大家詳細介紹了Python實點云分割k-means,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • python連接數(shù)據(jù)庫后通過占位符添加數(shù)據(jù)

    python連接數(shù)據(jù)庫后通過占位符添加數(shù)據(jù)

    在pymysql中支持對占位符的處理,開發(fā)者需要在SQL中使用“%”定義占位符,在使用excute()方法執(zhí)行時對占位符的數(shù)據(jù)進行填充即可,本文給大家介紹python連接數(shù)據(jù)庫后通過占位符添加數(shù)據(jù)的方法,需要的朋友參考下吧
    2021-12-12
  • python對excel文檔去重及求和的實例

    python對excel文檔去重及求和的實例

    下面小編就為大家分享一篇python對excel文檔去重及求和的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python基于opencv實現(xiàn)的人臉識別(適合初學者)

    Python基于opencv實現(xiàn)的人臉識別(適合初學者)

    OpenCV是一個基于BSD許可開源發(fā)行的跨平臺計算機視覺庫,下面這篇文章主要給大家介紹了關于Python基于opencv實現(xiàn)的人臉識別,文中通過實例代碼介紹的非常詳細,本文的教程非常適合初學者,需要的朋友可以參考下
    2022-03-03
  • Python單元測試入門到精通講解

    Python單元測試入門到精通講解

    單元測試是軟件開發(fā)中不可或缺的一部分,有助于確保代碼的正確性、可維護性和可擴展性,在Python中,有豐富的工具和庫可用于進行單元測試,本文將為你提供一個全面的指南,從入門到精通,輕松掌握Python單元測試的方方面面
    2023-11-11
  • Python2.x中str與unicode相關問題的解決方法

    Python2.x中str與unicode相關問題的解決方法

    這篇文章主要介紹了Python2.x中str與Unicode相關問題的解決方法,Python2.x版本中由于沒有默認使用Unicode而會在實際使用中碰到一些字符問題,針對這些問題本文討論了一些解決方法,需要的朋友可以參考下
    2015-03-03
  • python+selenium 點擊單選框-radio的實現(xiàn)方法

    python+selenium 點擊單選框-radio的實現(xiàn)方法

    今天小編就為大家分享一篇python+selenium 點擊單選框-radio的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Python簡繁體轉換的簡單實現(xiàn)步驟

    Python簡繁體轉換的簡單實現(xiàn)步驟

    工作中需要將繁體中文轉換成簡體中文上網(wǎng)找了些資料,下面這篇文章主要給大家介紹了關于Python實現(xiàn)簡繁體轉換的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python深入學習之內存管理

    Python深入學習之內存管理

    這篇文章主要介紹了Python深入學習之內存管理,本文比較詳細的講解了Python的內存管理相關知識,需要的朋友可以參考下
    2014-08-08

最新評論