国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python讀取.nc數(shù)據(jù)并提取指定時間、經緯度維度對應的變量數(shù)值

這篇具有很好參考價值的文章主要介紹了Python讀取.nc數(shù)據(jù)并提取指定時間、經緯度維度對應的變量數(shù)值。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??本文介紹基于Python語言的netCDF4庫,讀取.nc格式的數(shù)據(jù)文件,并提取指定維(時間、經度與緯度)下的變量數(shù)據(jù)的方法。

??我們之前介紹過.nc格式的數(shù)據(jù),其是NetCDF(Network Common Data Form)文件的擴展名,是一種常用的科學數(shù)據(jù)存儲格式,多用于存儲科學和工程領域的大型數(shù)據(jù)集。同時,在我們之前的文章Python批量讀取大量nc格式文件并導出全部時間信息(https://blog.csdn.net/zhebushibiaoshifu/article/details/135331417)中,就介紹過基于netCDF4庫,對一個文件夾下大量.nc格式數(shù)據(jù)文件的某一維的信息加以提取的方法。而在本文中,我們則是同樣基于netCDF4庫,讀取.nc文件,并提取指定Dimensions,也就相當于是自變量)下的變量Variables,也就相當于是因變量)的具體數(shù)值。

??首先,我們需要配置一下netCDF4庫,具體配置方法大家可以參考文章Anaconda下Python中h5py與netCDF4模塊下載與安裝方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/120553597)。

??隨后,本文所需代碼如下。

# -*- coding: utf-8 -*-
"""
Created on Thu Feb 22 21:41:52 2024

@author: fkxxgis
"""

import netCDF4 as nc

nc_path = r"F:\Data_Reflectance_Rec\soil_1\2020_01.nc"
nc_data = nc.Dataset(nc_path)
print(nc_data)
time_value = nc_data.variables["time"][:]
longitude_value = nc_data.variables["lon"][:]
latitude_value = nc_data.variables["lat"][:]

# 第一種需求
time_need = 0
nc_value_1 = nc_data.variables["swvl1"][time_need, : , : ]

# 第二種需求
longitude_need = 106.467
latitude_need = 36.817
longitude_nc = (abs(longitude_value - longitude_need)).argmin()
latitude_nc = (abs(latitude_value - latitude_need)).argmin()
nc_value_2 = nc_data.variables["swvl1"][time_need, latitude_nc, longitude_nc]

??其中,我們首先導入netCDF4庫,并指定要讀取的.nc格式數(shù)據(jù)文件的路徑nc_path;隨后,使用nc.Dataset()打開這一文件,并將返回的Dataset對象存儲在nc_data變量中;緊接著,通過print()打印nc_data,這將顯示要讀取的.nc格式數(shù)據(jù)文件的基本信息,如變量、維、屬性等——這里具體打印出來的情況如下圖所示。

python讀取特定緯度nc文件,GIS數(shù)據(jù)獲取整理,遙感處理與應用,Python學習與應用,Python,NC數(shù)據(jù),NetCDF,.nc格式,氣象數(shù)據(jù),NC數(shù)據(jù)讀取,維度

??其中,在上圖我們需要重點關注紫色框內的內容。首先,在dimensions中,我們可以看到所有的;我這里的.nc格式數(shù)據(jù)是一個表示氣象的數(shù)據(jù),所以文件中的依次就是時間、緯度與經度;隨后,在variables中,我們可以看到所有的數(shù)據(jù)變量(這里的數(shù)據(jù)變量是包含了維、變量與其他參數(shù))——其中我們重點觀察數(shù)據(jù)中的因變量(也就是上圖中的swvl1),需要留意一下其后不同維排序順序,在后面我們按照提取變量數(shù)據(jù)的時候會用到。

??回到前述代碼的介紹中。通過前面print()打印出來的nc_data信息,我們知道了這個.nc數(shù)據(jù)的,此時我們可以將這幾個也打印出來看看。例如,time_value = nc_data.variables["time"][:]就表示將時間這個打印出來,相當于獲取了全部的時間節(jié)點。

??再接下來,我們即可開始按照來提取變量。為了方便,我們就以這個.nc文件的時間維中的第一個節(jié)點對應的數(shù)據(jù)(也就是第一景數(shù)據(jù))為例來介紹;因此,我們先將time_need設置為0,表示讀取第一個時間節(jié)點的數(shù)據(jù)。在這里,我們給出了2種按照來提取變量的需求。

??首先,是第一種需求,也就是time_need = 0這一行代碼的下一行。nc_data.variables["swvl1"]表示這個.nc文件中讀取名為swvl1的變量的值,而后面的[time_need, :, :]表示選擇指定時間下的所有經度和緯度位置的值。這些值將被存儲在nc_value_1變量中,也就是說這個nc_value_1變量相當于就是當前這個.nc文件的第一景數(shù)據(jù)(時間節(jié)點排在第一位的數(shù)據(jù))。

??其次,是第二種需求。前面我們提取了指定時間維下的所有經度和緯度位置的值,那么現(xiàn)在就更進一步,提取指定時間維度、經度維度以及緯度維度的數(shù)據(jù)(相當于就是從前面的一景數(shù)據(jù)變成了一個像元的數(shù)據(jù))。首先,我們指定一個處于.nc文件成像范圍內的目標經度longitude_need和目標緯度latitude_need,并使用argmin()函數(shù)找到目標經、緯度值與文件中經度、緯度的數(shù)據(jù)值最接近的索引值——即longitude_nclatitude_nc。最后,即可使用nc_data.variables["swvl1"][time_need, latitude_nc, longitude_nc]來獲取特定時間、經度和緯度位置的值,并將結果存儲在nc_value_2變量中。

??這里提一句——為什么需要用argmin()函數(shù)呢?這個是因為,我們在實際情況中,需要提取指定空間位置的像素時,這個位置的經、緯度數(shù)據(jù)肯定是隨機的;而通過argmin()函數(shù),就可以找到.nc文件里面經度、緯度所對應的中,與我們實際需要的經、緯度最接近的那個數(shù)值所對應的維的下標。例如,上述代碼中,我們希望提取實際經度為106.467位置處的數(shù)據(jù);而我這里這個.nc文件,其維中的經度的分辨率是0.1,那它自然沒有辦法非常精確地確定106.467的位置;所以需要通過argmin()函數(shù),找到與106.467最接近的數(shù)據(jù)106.5,并進一步確定出這個106.5所在的經度的下標,那么就可以提取出指定的變量了。

??如下圖所示,我們通過上述第二種需求,提取出來了目標時間、經度與緯度維下的一個像素。

python讀取特定緯度nc文件,GIS數(shù)據(jù)獲取整理,遙感處理與應用,Python學習與應用,Python,NC數(shù)據(jù),NetCDF,.nc格式,氣象數(shù)據(jù),NC數(shù)據(jù)讀取,維度

??那么這個像素值對不對呢?我們可以在ArcGIS中打開這個.nc文件的第一景數(shù)據(jù),找到代碼中目標經、緯度(也就是longitude_needlatitude_need所指向的數(shù)據(jù))所對應的像元,并查看其像素值;如下圖所示。

python讀取特定緯度nc文件,GIS數(shù)據(jù)獲取整理,遙感處理與應用,Python學習與應用,Python,NC數(shù)據(jù),NetCDF,.nc格式,氣象數(shù)據(jù),NC數(shù)據(jù)讀取,維度

??可以看到,上圖在ArcGIS提取出來的像素值,與上上圖在Python中提取出來的像素值一致,說明我們的代碼無誤。

??至此,大功告成。

歡迎關注:瘋狂學習GIS文章來源地址http://www.zghlxwxcb.cn/news/detail-837256.html

到了這里,關于Python讀取.nc數(shù)據(jù)并提取指定時間、經緯度維度對應的變量數(shù)值的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Arcgis之Python的Arcpy的點線面對象的創(chuàng)建處理和通過pandas讀取txt中的經緯度坐標創(chuàng)建幾何對象

    Arcgis之Python的Arcpy的點線面對象的創(chuàng)建處理和通過pandas讀取txt中的經緯度坐標創(chuàng)建幾何對象

    前言 本節(jié)將介紹點線面對象的創(chuàng)建和處理。創(chuàng)建 點 對象有三個類,分別是 Point 、 Multipoint 、 PointGeometry ,創(chuàng)建 線 對象的類為 Polyline ,創(chuàng)建 面 對象的類為 Polygon 。 一、點對象的創(chuàng)建——Point 點對象經常與光標配合使用。點要素將返回單個點對象而不是點對象數(shù)組。而其他

    2024年02月12日
    瀏覽(42)
  • Python讀取指定的TXT文本文件并從中提取指定數(shù)據(jù)的方法

    Python讀取指定的TXT文本文件并從中提取指定數(shù)據(jù)的方法

    ??本文介紹基于 Python 語言,遍歷文件夾并從中找到文件名稱符合我們需求的多個 .txt 格式文本文件,并從上述 每一個文本文件 中,找到 我們需要的指定數(shù)據(jù) ,最后得到 所有文本文件中 我們 需要的數(shù)據(jù)的合集 的方法。 ??首先,我們來明確一下本文的具體需求。現(xiàn)有

    2024年02月14日
    瀏覽(96)
  • Python根據(jù)經緯度在地圖上顯示(folium)

    Python根據(jù)經緯度在地圖上顯示(folium)

    1、location地圖中心點 經緯度,list 或者 tuple 格式,順序為 latitude(緯度), longitude(經度) 2、zoom_start地圖等級 縮放值,默認為 10,值越大比例尺越小,地圖放大級別越大 3、tiles 顯示樣式,默認*‘OpenStreetMap’*,也就是開啟街道顯示;也有一些其他的內建地圖樣式,如’Stamen T

    2024年02月14日
    瀏覽(42)
  • Python-pdfplumber讀取PDF所有內容并自行提取指定內容

    ?? 歡迎來到Python辦公自動化專欄—Python處理辦公問題,解放您的雙手 ?????? 博客主頁:一晌小貪歡的博客主頁 ?? 該系列文章專欄:Python辦公自動化專欄 文章作者技術和水平有限,如果文中出現(xiàn)錯誤,希望大家能指正?? ?? 歡迎各位佬關注! ?? 最近接到一個需求

    2024年02月15日
    瀏覽(32)
  • 保姆級教程:python讀取并繪制nc數(shù)據(jù)

    保姆級教程:python讀取并繪制nc數(shù)據(jù)

    2.利用basemap繪圖? ? 3、利用cartopy繪圖 利用cartopy繪圖的詳細內容,可以參考此鏈接: http://t.csdnimg.cn/GjYUb

    2024年02月05日
    瀏覽(18)
  • 騰訊地圖獲得地圖經緯度數(shù)據(jù)進行描邊

    騰訊地圖獲得地圖經緯度數(shù)據(jù)進行描邊

    登錄騰訊地圖?微信小程序JavaScript SDK | 騰訊位置服務 ? 接口調用:直接瀏覽器調用就行 一,可以先通過查詢地區(qū)名字來獲得地區(qū)碼: https://apis.map.qq.com/ws/district/v1/search?key=你申請獲得keykeyword=梁溪區(qū) 二,用地區(qū)碼查詢描邊經緯度: 你申請獲得key https://apis.map.qq.com/ws/distric

    2023年04月24日
    瀏覽(25)
  • 基于Python的經緯度與xy坐標系相互轉換

    代碼是已經運行過的,可以直接輸入參數(shù)使用 注意事項: 經緯度參數(shù)不可以寫顛倒,否則會由于math.log參數(shù)不能為負數(shù)和0的原因報錯 由于地球半徑的不確定性,所以(x,y)與(lon, lat)相互轉換會有誤差 奉上代碼及運行結果: 經緯度轉換成xy坐標 實例經維度參數(shù) (114.5456282282352

    2024年02月12日
    瀏覽(28)
  • 【Python】一行代碼計算兩經緯度點的距離及夾角

    【Python】一行代碼計算兩經緯度點的距離及夾角

    2022.2.10更新,Python有現(xiàn)成的包可以直接調用。 geographiclib庫 https://pypi.org/project/geographiclib/ 用法說明見博客: python 計算地球上兩點距離和方位角(bearing)的包geographiclib_梓沂的博客-CSDN博客_geodesic python 通過經緯度計算地圖上兩點的距離及方位角,百度的結果是許多個人寫的函

    2023年04月11日
    瀏覽(18)
  • 中國各省會城市經緯度數(shù)據(jù)(附MATLAB代碼)

    北京市:北京;天津市:天津;上海市:上海;重慶市:重慶 ;河北?。菏仪f 山西省:太原 ;陜西?。何靼?;山東?。簼?;河南?。亨嵵?; 遼寧?。荷蜿?;吉林?。洪L春 ;黑龍江省:哈爾濱 ;江蘇省:南京 ;浙江?。汉贾?;安徽?。汉戏?;江西?。耗喜?; 福建省

    2024年02月13日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包