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

python逐像素獲取柵格經(jīng)緯度分別保存在兩個矩陣中(代碼收藏)

 更新時間:2024年01月23日 09:54:16   作者:悟矣言兮 科研萌新  
這篇文章主要介紹了python逐像素獲取柵格經(jīng)緯度分別保存在兩個矩陣中的實現(xiàn)示例,建議收藏代碼總會用到,有需要的朋友可以借鑒參考下,希望能夠有所幫助

python逐像素獲取柵格經(jīng)緯度

需求目的

使用python逐像素獲取柵格經(jīng)緯度,并將經(jīng)度和緯度分別保存為矩陣,兩個矩陣像素分別記錄柵格對應(yīng)像素位置的經(jīng)度和緯度。

需求分析

如果僅需要map產(chǎn)生迭代器,速度最快,但是將迭代器轉(zhuǎn)換為list,array等過程速度很慢,沒有for循環(huán)直接產(chǎn)生列表矩陣速度快。

實現(xiàn)示例

# -*- coding: utf-8 -*-
"""
任何問題聯(lián)系郵箱:
chinesevoice@163.com
"""
from osgeo import gdal
import numpy as np
from itertools import product
from functools import partial
# import multiprocessing as mp
import time
gdal.AllRegister
dataset = gdal.Open('218-2020-07-01-2020-10-01.tif',gdal.GA_ReadOnly)
trans = dataset.GetGeoTransform()
proj = dataset.GetProjection()
rows = dataset.RasterYSize
cols = dataset.RasterXSize
print('坐標(biāo)六參數(shù):',trans)
print('投影參數(shù):',proj)
print('行列數(shù):',rows,cols)
#==========第一種方法===========
#行列轉(zhuǎn)經(jīng)緯度
def rowcol2lonlat(extend,xsize,ysize):
    #xsize表示列
    lon = extend[0] + xsize * extend[1] + ysize * extend[2] + extend[1]/2
    lat = extend[3] + xsize * extend[4] + ysize * extend[5] + extend[5]/2
    return lon,lat
#分別獲取兩個矩陣
def get_lon_lat_array(row,col,tran):
    lon_array = np.repeat(np.nan, row*col).reshape(row,col)
    lat_array = np.repeat(np.nan, row*col).reshape(row,col)
    for r in range(0,row):
        for c in range(0,col):
            lon_array[r,c],lat_array[r,c] = rowcol2lonlat(tran,c,r)
    return lon_array,lat_array
ts = time.time()
lon_array,lat_array = get_lon_lat_array(rows,cols,trans)
# print(lon_array.shape,lat_array.shape)
# print(lon_array.view())
te = time.time()
print('第一種方法用時:',te-ts)
#==========第二種方法===========
def get_lon_lat_array_2(row,col,tran):
    rowlst = np.arange(0, row,step = 1)
    collst = np.arange(0, col,step = 1)
    #rc_comb = product(rowlst,collst)
    rc2lon = lambda rowcol,tran:tran[0] + rowcol[1] * tran[1] + rowcol[0] * tran[2] + tran[1]/2
    rc2lat = lambda rowcol,tran:tran[3] + rowcol[1] * tran[4] + rowcol[0] * tran[5] + tran[5]/2
    # lon_array = np.array(list(map(partial(rc2lon,tran = trans),product(rowlst,collst)))).reshape(row,col)
    # lat_array = np.array(list(map(partial(rc2lat,tran = trans),product(rowlst,collst)))).reshape(row,col)
    # lon_array = np.fromiter(map(partial(rc2lon,tran = trans),product(rowlst,collst)),dtype=np.float64).reshape(row,col)
    # lat_array = np.fromiter(map(partial(rc2lat,tran = trans),product(rowlst,collst)),dtype=np.float64).reshape(row,col)
    lon_array = [*map(partial(rc2lon,tran = trans),product(rowlst,collst))]
    lat_array = [*map(partial(rc2lat,tran = trans),product(rowlst,collst))]
    return lon_array,lat_array
ts2 = time.time()
lon_array2,lat_array2 = get_lon_lat_array_2(rows,cols,trans)
# print(lon_array2.shape,lat_array2.shape)
# print(lon_array2.view())
te2 = time.time()
print('第二種方法用時:',te2-ts2)

以上就是python逐像素獲取柵格經(jīng)緯度分別保存在兩個矩陣中(代碼收藏)的詳細(xì)內(nèi)容,更多關(guān)于python柵格經(jīng)緯度獲取保存的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Django stark組件使用及原理詳解

    Django stark組件使用及原理詳解

    這篇文章主要介紹了Django stark組件使用及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 舉例介紹Python中的25個隱藏特性

    舉例介紹Python中的25個隱藏特性

    這篇文章主要介紹了一些Python中的隱藏特性,從stackoverflow的人氣問題回答中整理而來,主要以代碼實際解釋說明,需要的朋友可以參考下
    2015-03-03
  • Python實現(xiàn)將一段文字復(fù)制到所選的文件當(dāng)中

    Python實現(xiàn)將一段文字復(fù)制到所選的文件當(dāng)中

    這篇文章主要為大家詳細(xì)介紹了Python如何將一段文字復(fù)制到所選的文件當(dāng)中,文中的示例代碼講解詳細(xì), 感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • Python報錯AssertionError:can only test a child proc問題

    Python報錯AssertionError:can only test a c

    這篇文章主要介紹了Python報錯AssertionError:can only test a child proc問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 如何用值獲取Python字典的鍵問題

    如何用值獲取Python字典的鍵問題

    這篇文章主要介紹了如何用值獲取Python字典的鍵問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解Python使用simplejson模塊解析JSON的方法

    詳解Python使用simplejson模塊解析JSON的方法

    這篇文章主要介紹了Python使用simplejson模塊解析JSON的方法,實例代碼基于Pyhton2.x版本,文中最后還附了關(guān)于simplejson模塊的一些性能放面的討論,需要的朋友可以參考下
    2016-03-03
  • python實現(xiàn)無證書加密解密實例

    python實現(xiàn)無證書加密解密實例

    這篇文章主要介紹了python實現(xiàn)無證書加密解密的方法,實例講述了無證書加密解密的原理與具體實現(xiàn)過程,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • python操作MySQL的詳細(xì)教程

    python操作MySQL的詳細(xì)教程

    PyMySQL 是一個純 Python 的庫,用于連接 MySQL 數(shù)據(jù)庫,并執(zhí)行 SQL 語句,該庫的主要用途是通過 Python 代碼與 MySQL 數(shù)據(jù)庫進(jìn)行交互,比如執(zhí)行查詢、插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)等操作,本文介紹了python操作MySQL的詳細(xì)教程,需要的朋友可以參考下
    2024-10-10
  • Python基于plotly模塊實現(xiàn)的畫圖操作示例

    Python基于plotly模塊實現(xiàn)的畫圖操作示例

    這篇文章主要介紹了Python基于plotly模塊實現(xiàn)的畫圖操作,涉及Python基于plotly模塊的數(shù)值運(yùn)算與圖形操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-01-01
  • Python入門

    Python入門

    Python入門...
    2007-02-02

最新評論