WRF學習之 ch3 WPS(五)寫靜態數據到GEOGRID二進制格式,從NLCD數據創建Urban fraction場


參考自 https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.1/users_guide_chap3.html

  • Parallelism in the WPS ............................................................. 3-28

  • Checking WPS Output .............................................................. 3-29

  • WPS Utility Programs ............................................................... 3-30

  • Writing Meteorological Data to the Intermediate Format ........... 3-34

  • Required Meteorological Fields for Running WRF.....................3-36

  • Using MPAS Output for WRF Initial and Boundary Conditions..3-37

  • Creating and Editing Vtables .................................................... 3-39

  • Writing Static Data to the Geogrid Binary Format ..................... 3-41

  • Creating an Urban Fraction Field from NLCD Data .................. 3-44

  • Description of Namelist Variables ............................................. 3-46

  • Description of GEOGRID.TBL Options ..................................... 3-52

  • Description of index Options ..................................................... 3-55

  • Description of METGRID.TBL Options ..................................... 3-58

  • Available Interpolation Options in Geogrid and Metgrid ............ 3-61

  • Land Use and Soil Categories in the Static Data ...................... 3-64

  • WPS Output Fields ................................................................... 3-66


將靜態數據轉換成Geogrid Binary Format(的文件)

由geogrid程序插值得到的靜態地理數據集,存儲為常規的二維和三維數組,寫入到一個簡單的二進制柵格格式(文件)。用戶可以使用WPS程序,將新的靜態數據集寫入此二進制格式(文件)中。這種geogrid格式能夠支持單層和多層連續場,表示主導(土地利用)類型的(土地利用)類型場,以及表示各個(土地利用)類型的土地利用率場。在這種二進制格式(文件)中具有代表性的場是主導(土地利用)類別場,一個例子是美國地質勘探局USGS的30秒土地利用數據集。
Description: binary_array
對於給定為主導(土地利用)類型場,數據必須首先存儲在常規的2維整型數組中,每個整數給出了相應格點的主導(土地利用)類型。在給定此數組的情況下,數據將從底部或最南端的行開始逐行寫入文件。例如,在上圖中,n × m數組的元素將按照x11, x12, ..., x1m, x21,..., x2m,...,xn1,...,xnm的順序寫入。寫入文件時,每個元素都以大端字節序(big-endian byte order)存儲為1、2、3或4字節整數(即,對於4字節整數ABCD,字節A存儲在最低地址,字節D存儲在最高地址),盡管可以通過在數據集的“index”文件中設置endian=Little來使用小端文件。文件中的每個元素必須使用相同數量的字節進行存儲,當然,使用盡可能最少的字節表示數組中完整范圍的是有利的。

將二進制數據寫入文件時,不要寫入任何頭、記錄標記或附加字節。例如,一個2字節的1000 × 1000數組應該產生一個大小正好為2,000,000字節的文件。由於Fortran的無格式寫入會加入記錄標記(record marker),因此不能直接從Fortran寫入geogrid二進制格式的文件;相反,建議在寫入數據時調用read_geogrid.c和write_geogrid.c(在geogrid/src目錄中)C子程序,實現以上功能。

與主導(土地利用)類型格式類似的是,在一個連續,或者實數的變量的情況。與主導(土地利用)類型一樣,單層連續場首先以一個二維數組的形式出現,它被逐行地寫入到一個二進制文件中。然而,因為一個連續場可能包含非整數或者負數值,所以在文件中對每個元素的存儲方式要稍微復雜一些。數組中的所有元素必須首先轉換成為整數值。這個是通過以下步驟實現,首先將所有元素乘以一個常數進行縮放(選取的常數保證了所需的精度),隨后通過舍入(rounding)從而刪除任何剩余的小數部分。例如,如果需要精確到小數點后三位,則值-2.71828需要除以0.001並四舍五入到-2718。在將所有數組元素轉換為整型值之后,如果在數組中找到任何負數,則必須進行第二次轉換:如果每個元素存儲為1字節,則對每個負數元素的值加28;對於使用2字節的存儲,每個負元素加216;對於使用3字節的存儲,每個負元素加224;對於使用4字節的存儲,為每個負元素添加一個值232。請注意,對正的元素不進行轉換。最后,所得到的正整數數組被寫入為一個主導類別場中。

多層次連續場的處理方式與單層連續場的處理方式大致相同。對於n × m × r數組,首先如上所述轉換為正的整數場。然后,從最小的r-索引開始,每個n × m的子數組像以前一樣連續寫入二進制文件。
(土地利用)類別場,作為每個可能的類型以分數場給出,可以被視為多層連續場,其中對每層k(1≤k≤r)表示類別k所占的分數。

以geogrid二進制格式將變量寫入到文件時,用戶應該遵守geogrid程序使用的命名約定,該程序要求數據文件的名稱采用xstart-xend.ystart-yend的形式,其中xstartxendystart和yend是五位正整數,分別指定文件中包含的數組的起始x索引、數組的結束x索引、數組的起始y索引和數組的結束y索引;在這里,索引的開始是1,而不是0。因此,例如,800×1200數組(即800行和1200列)可以命名為為00001-01200.00001-1200。

當數據集被分成幾個片段時,每個片段可以形成為規則的矩形陣列,並且每個陣列可以被寫入單獨的文件。在這種情況下,數組的相對位置由每個數組的文件名中的x和y索引范圍確定。但是,重要的是要注意,數據集中的每個“碎片”(tile)必須具有相同的x和y維,並且數據集中的數據碎片不得重疊;此外,所有碎片必須在索引范圍的倍數上開始和結束。例如,全球30秒的USGS地形數據集被划分為1200×1200維的數組,每個數組包含一個10度×10度的數據集;西南角位於(90S,180W)的文件被命名為00001-01200.00001-01200,東北角位於(90N,180E)的文件被命名為42001-43200.20401-1200。

如果要將數據集拆分為多個碎片,並且x方向上的網格點的數量不是平均除以x方向上的平鋪的數量,那么最后一列碎片必須填充一個標志值(在index文件中使用missing_value關鍵字指定),以便所有碎片具有相同的尺寸。例如,如果數據集在x方向上具有2456個點,並且將使用x方向上的三個瓦片,則碎片的x坐標范圍可以是1-820、821-1640和1641-2460,其中列2457到2460用標志值填充。

顯然,由於起始索引和結束索引必須為五位數,因此一個變量在x或y方向上的數據點不能超過99999個。如果一個字段在任何一個維度上都有超過99999個數據點,用戶可以簡單地將數據集分割成幾個較小的數據集,這些數據集將被geogrid分開識別。例如,一個非常大的全球數據集可以被分成東半球和西半球的數據集。

除了二進制數據文件外,每個數據集還需要一個額外的元數據文件。此元數據文件始終命名為“index”,因此,兩個數據集不能放在在同一目錄中。從本質上講,此元數據文件是Geogrid在處理數據集時查找的第一個文件,該文件的內容為Geoggrid提供了構建可能的數據文件名稱所需的所有信息。下面給出了一個示例索引文件的內容。

        type = continuous
        signed = yes
        projection = regular_ll
        dx = 0.00833333
        dy = 0.00833333
        known_x = 1.0
        known_y = 1.0
        known_lat = -89.99583
        known_lon = -179.99583
        wordsize = 2
        tile_x = 1200
        tile_y = 1200
        tile_z = 1
        tile_bdr=3
        units="meters MSL"
        description="Topography height"

想要了解索引文件中的關鍵字的完整列表,以及每個關鍵字的含義,請可以參考索引文件選項。

從NLCD數據創建Urban fraction場

注:自WPS v4.0發布以來,美國大陸地區可獲得基於30米NLCD 2011土地覆蓋的urban fraction場; 該數據集可從WPS地理下載頁面的“可選變量”部分中獲得。下面的細節對其他地區的Urban fraction的准備工作仍有幫助。

In order to create a more inhomogeneous and detailed urban fraction field for use with NUDAPT, users may obtain high-resolution land cover information from the National Land Cover Database (NLCD) through the Multi-Resolution Land Characteristics Consortium. Generation of the urban fraction field, called FRC_URB2D in WRF, involves first downloading the NLCD data over the region covered by the WRF domain, converting the data into the binary format used by geogrid, and finally extracting only the urban categories to a new urban fraction field. The following steps can serve as a guide through this process.
為了創建一個更加不均勻和詳細的Urban fraction場供NUDAPT使用,用戶可以通過多分辨率土地特征聯盟(Multi-Resolution Land Characteristics Consortium),從國家土地覆蓋數據庫(National Land Cover Database,NLCD)獲得高分辨率的土地覆蓋信息。Urban fraction場的生成,在WRF中稱為FRC_URB2D,首先下載WRF域覆蓋區域的NLCD數據,將數據轉換為geogrid使用的二進制格式,最后僅提取城市類別到一個新的Urban fraction場。以下步驟可以作為這個過程的指導。

  1. 下載NLCD數據,從這個網站 http://gisdata.usgs.net/website/MRLC/viewer.php 。1992年、2001年或2006年的數據集都可以使用。選擇要下載的區域后,請確保在“Request Summary Page”中選擇GeoTIFF格式(通過點擊“修改數據請求”)。如果可以的話,數據也可以下載成BIL格式,在這種情況下,可以跳過下一步中描述的格式轉換。
  2. 下載數據之后,解壓縮歸檔文件將生成一個目錄,其中包含.tif文件和.tfw文件等。為了使GeoTIFF文件中的信息有用,.tif圖像必須轉換為WPS使用的二進制格式。通過運行這個命令,使用GDAL轉換工具gdal_translate,(http://gdal.org),完成這個轉換

    gdal_translate -of ENVI foo.tif data.bil

其中foo.tif是第1步中下載的GeoTIFF圖像的名稱。輸出格式“ENVI”是一種簡單的二進制光柵格式,它與geogrid使用的格式相匹配。將GeoTIFF轉換為二進制文件后,生成的數據。bil文件必須重命名為00001-ncols.00001-nrows,其中ncols是圖像中的列數(i5.5格式),nrows是行數(也是i5.5格式);這些值應該在運行gdal_translate程序時打印到屏幕上。

  1. 使用http://www2.mmm.ucar.edu/people/duda/uf/提供的轉換程序從二進制碎片中提取城市類別,並寫入到包含Urban fraction場的新碎片數據。這個轉換器的輸出文件應該復制到原來的土地使用碎片上,也就是說,Urban fraction文件應該被重命名為00001-ncols.00001-nrows,其中ncols是平鋪中的列數(i5.5格式),nrows是行數(也是i5.5格式),如步驟2所示。

  2. 為Urban fraction數據創建索引元數據文件。在解壓縮土地使用數據創建的目錄中,還應該存在一個.tfw文件。這個文件的最后兩行給出了數據塊的西北角的位置,這在變量known_lat和known_lon的索引文件中使用。如果此位置以(x,y)坐標的形式給出,單位為米,則可以使用從[http://www2.mmm.ucar.edu/people/duda/uf/]()提供的坐標轉換工具將其轉換為(緯度,經度),這是索引文件所要求的。基本索引文件應該包含以下元素:

projection=albers_nad83
dx=30.0
dy=30.0
known_x=1.0
known_y=2351.0            # <- edit
known_lat =   40.096571   # <- edit
known_lon = -105.405615   # <- edit
truelat1=29.5
truelat2=45.5
stdlon=-96.0
wordsize=1
scale_factor=0.01
row_order=top_bottom
tile_x=2407               # <- edit
tile_y=2351               # <- edit
tile_z=1
units="unitless"
description="urban fraction"
  1. 重新運行geogrid.exe程序之前,向GEOGRID添加以下條目。:

===============================
name=FRC_URB2D
priority=1
dest_type=continuous
fill_missing = 0.
interp_option=default: average_gcell(1.0)+four_pt
abs_path=default:/path/to/dataset/ ===============================

在步驟3和步驟4中創建的數據集和索引文件的路徑應該分別替換上面條目中的' /path/to/dataset/ '。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM