日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Netcdf

發布時間:2025/4/16 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netcdf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


NetCDF簡介 NetCDF(network Common Data Format),即網絡通用數據格式。最早是由美國國家科學委員會資助之計劃--Unidata --所發展,其用意是在Unidata計劃中不同的應用項目下,提供一種可以通用的數據存取方式,數據的形狀包括單點的觀測值、時間序列、規則排列的網格、以及人造衛星或雷達之影像檔案。 NetCDF 可簡單的視為一種存取接口,任何使用?NetCDF 存取格式的檔案就可稱為 NetCDF 檔案;至于 NetCDF 這套軟件的功能,在于提供C、Fortran、C++、Perl、或其它語言I/O的鏈接庫,以讓程序發展者可以讀寫數據文件,其本身具有說明的能力、并且可以跨越平臺和機器的限制。每一個NetCDF檔案可以含括多維度的、具有名稱的變量,包括長短的整數、單倍與雙倍精度的實數、字符等,且每一個變量都有其自我介紹的數據,包括量度的單位、全名及意義等文字說明,在此摘要性的檔頭之后,才是真正的數據本身。 NetCDF接口是一種多維的數據分布系統,由這個接口所產生的檔案,具有多維的數據格式,當你需要其中的某一筆數據時,程序將不會從第一筆數據讀到你所需要的數據處,而是由 NetCDF 軟件直接存取那一個數據。如此一來將會大量的降低模式運算時數據存取的時間。但也就是因為這樣, NetCDF 所需要的空間是很大的,因為他多了很多的自解釋的申明。

?

?NetCDF文件結構

???

對NETCDF文件的操作主要有讀和寫兩個方面,在了解這兩個方面內容之前,首先需要了解NETCDF文件的結構,NETCDF文件主要是Dimensions, Variables, Attributes, Data 四個部分組成的:

Dimensions主要是多維資料的結構,如經度、緯度、時間等

Variables各種變量,像溫度等 Attributes一些輔助記憶的說明,如變量的單位等

Data主要資料部分

?

下面是NETCDF文件基本結構圖(箭頭指向為可操作的對象)

NETCDF文件基本結構圖根據NETCDF文件的這種特殊的結構,所使用的NcFile類中包含了NcDim, NcVar, NcAtt幾個類的對象作為成員,分別對應了上面的Dimensions, Variables, Attributes部分。

NetCDF文件的讀寫 ?

1.1?????建工程文件用

vc6建立一個工程,使用動態鏈接庫netcdf,然后把文件netcdfcpp.h netcdfcpp.cpp ,ncvalues.h ncvalues.cpp,ncconfig.h包含到工程中。

1.2?????NETCDF文件的讀取

首先,定義一個NcFile類的對象,用NcFile類的構造函數直接對其初始化 NcFile(const char * path, FileMode = ReadOnly , … … );

path為文件的存儲路徑,FileMode為文件的打開方式,除了ReadOnly還有Write, New, Replace 等方式我們只是讀文件可以選擇ReadOnly,其他方式后面會介紹到,其他參數可以使用默認值,例如: NcFile nc("G://File.nc", NcFile::ReadOnly);

使用nc.is_valid()來判斷文件打開是否成功,以便進行下一步對NETCDF文件數據進行讀取。 ?

NETCDF文件主要是Dimensions, Variables, Attributes, Data 四個部分組成的,下面讀出文件各個部分的內容。???

??? Dimensions: ?

可以使用NETCDF 的成員函數num_dims()獲得文件中的Dimensions的個數,然后用NcFile類的另一個成員函數get_dim(int id),或get_dim(NcToken name)---參數可以是id號(int),也可以是dim名字(NcToken),獲得每一個文件的Dimensions,用NcDim類的成員函數id(),name(),size()可以依次讀出每一個Dimensions的id號,名稱,和size。

例如: ?

? for (int i=0;i<nc.num_dims()-1;i++) ??

?{?

????????? String.Format(String+"dimid=%d?? name=%s?length=%d/n",nc.get_dim(i)->id(),

????????? nc.get_dim(i)->name(),nc.get_dim(i)->size()); ??

} ???

利用一個for循環,依據dim的id號可以一次讀出所有dim的信息 ? ?

??? ?Variables:???????

??????同理用NETCDF 的成員函數num_vars()可以獲得文件中Variables數量,用NcFile類get_var(int id)或 get_var(NcToken name)可以讀出每一個文件中的Variables,也可以讀出id,name這些信息,所不同的是,Variables還可以用num_dims()讀出其所包含的Dimensions的個數,Variables還可以用get_dim(int id)讀出其包含的Dimensions的相關信息,同時文件的Data信息也是通過Variables來操作的。

?????? Data的讀出:????????????

?????????首先,我們要根據Variables包含的每一個Dimensions的size計算出數據的大小,定義一個相應大小的數組,用來存放數據。 ???????????????????

???????? 然后,用Variables的get(TYPE *array,long *num)第一個參數是剛才定義的存放數據的數組,第二個參數是自定義的一維數組,數組的元素用來存放每一維的size.一般用于多維數據。

例如:

???????????? float rhs[50];

???????????? long array[3];

???????????? array[0]=1;

?????????????array[1]=5;

???????????? array[2]=10;

????????????? nc.get_var("rh")->get(rhs,array);

??????????????還可以用Variables的get( TYPE* vals,long edge0=0,long edge1=0,long edge2=0,long edge3=0,long edge4=0) const?第一個參數是存放數據的數組,后面的參數分別記錄第1,2,3,4,5維的size,默認值為0,

例如:

??????????????????? int n=nc.get_dim("lat")->size();

??????????????????? int lats[5];

?????????????????? nc.get_var("lat")->get(lats,n);

??????????????????? for (i=0;i<5;i++)

?????????????????? { ?

????????????????????????? String.Format(String+"??? %d",lats[i]);

??????????????????? }

????????????如果Variables中還包含說明的Attributes,可以使用函數get_att(int id),參數為Attributes的id,讀出其Attributes。

例如:

???????????? String.Format("/natt:/n%s:%s/n",nc.get_var(0)->get_att(0)->name(),

???????????????? nc.get_var(0)->get_att(0)->as_string(0));

???? ? Attributes:

?????????? Attributes可分為兩種一種是整個文件的說明,即global attributes可以通過NcFile類的get_att(int id)函數來獲得,參數為id號,

例如:

?? ?String.Format(String+"/n%s:?%s",nc.get_att(0)->name(),nc.get_att(0)->as_string(0));

還有一種是的說明,可以通過在Variables說明的方法獲得,從讀出的信息主要包括名稱和相應的內容,可以通過name()和as_Type(long id),Type根據Attributes數據的類型來確定,如as_string(long id),as_int(long id)等,as_Type(long id)函數主要是用來取出每個Variables的內容。例子在Variables后面。 ????? ???

???? ? Data:???????????

? 通過Variables我們已經把數據讀出。

?1.3?????NETCDF文件的寫入

和讀文件時一樣,首先要定義一個NcFile類的對象,

如:

?NcFile nc("G://File.nc", NcFile:: Replace);

用nc.is_valid()來判斷文件打開是否成功,文件的打開方式我們可以選擇New建立一個新的文件,用這種方式如果文件已經存在會返回錯誤,也可以用Write和Replace。選擇Replace,如果文件已存在原文件就會被覆蓋掉。用Write時文件必須已經存在,寫入文件的數據會加在文件已存在數據的后面。

?????首先,建立一個NETCDF文件,需要寫入的數據和剛才讀出的數據是一樣的,有Dimensions, Variables, Attributes, Data;

?Dimensions:

用NcFile類的add_dim(NcToken?name,long dimsize)成員函數加入Dimensions,如果size 為unlimited用NcFile類的add_dim(NcToken name)函數,NcFile類會自動把其size處理為unlimited。

例如:

?nc.add_dim("lat",5);

nc.add_dim("time");//size 為unlimited時 ?

Variables:

用NcFile類的add_var(NcToken name,NcType type,type dim1,type dim2,… …)成員函數加入Variables,dim1,…,dimn,為Variables中包含的Dimensions。

?例如:

?nc.add_var("lat",ncInt,nc.get_dim(0));//一個dim時

?nc.add_var("rh",ncFloat,nc.get_dim("time"),

?nc.get_dim("lat"),nc.get_dim("lon"));//多個dim時

?Attributes:

整個文件的Attributes用NcFile的add_att(NcToken attname,Type value)函數Type根據加入Attributes的類型來判斷;Variables可以用其成員函數add_att(attname, Type value)加入。

例如:

????? //寫入文件的主要參數

???? nc.add_att("sourse","Fictional Model Output");

???? //寫入單個變量的參數

???? nc.get_var(0)->add_att("long_name","Temperature");

?? Data:

先定義一個數組,把要寫入文件的數據寫入數組,用 Variables的函數put(TYPE *arr,const long *count)TYPE 為數據類型或Variable的函數put( TYPE* vals,long edge0=0,long edge1=0,long edge2=0,long edge3=0,long edge4=0) const,第一個參數是存放數據的數組,后面的參數分別記錄第1,2,3,4,5維的size,默認值為0,例如:

??? int lats[5]={20,30,40,50,60};???????????????????????????? //lat

??? nc.get_var("lat")->put(lats,5);

???? float rhss[50]; ??? for (int i=0;i<1;i++)

??????? for (int j=0;j<5;j++)

??????????? for (int k=0;k<10;k++)

??????????? {

????????????????rhss[i*5*10+j*10+k]= (float)(i*5*10+j*10+k+1)/100;?

??????????? }

???? long count[3];?????????????????? //由于rh有多個dim,要定義一個一維數組

???? count[0] = 1;??????????????????? //來說明其每一維的size

???? count[1] = 5;

???? count[2] = 10;

???? nc.get_var("rh")->put(rhss,count);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

netcdf入門

作者:laomai

審核者: ybb

轉載時請注明出處:?http://blog.csdn.net/laomai

最近在做一個和數據采集有關的項目,里面用到了netcdf庫,大致看了一下,這里把心得寫出來,供后來者參考。一、概述? NetCDF全稱為network Common Data Format,中文譯法為“網絡通用數據格式”,

對程序員來說,它和zip、jpeg、bmp文件格式類似,都是一種文件格式的標準。netcdf文件開始的目的是用于存儲氣象科學中的數據,現在已經成為許多數據采集軟件的生成文件的格式。??

?從數學上來說,netcdf存儲的數據就是一個多自變量的單值函數。用公式來說就是f(x,y,z,...)=value, 函數的自變量x,y,z等在netcdf中叫做維(dimension)或坐標軸(axix),函數值value在netcdf中叫做變量(Variables).而自變量和函數值在物理學上的一些性質,比如計量單位(量綱)、物理學名稱等等在netcdf中就叫屬性(Attributes).

二、netcdf的下載

?netcdf的是官方網站為http://www.unidata.ucar.edu/software/netcdf/。

?在本文中,我們主要討論在windows平臺上使用netcdf軟件庫。我們將要從這個網站上下載如下資源

⑴netcdf的源代碼,目前的地址為?

ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/netcdf-beta.tar.gz

⑵netcdf的在windows平臺預編譯好的dll,地址為?

ftp://ftp.unidata.ucar.edu/pub/netcdf/contrib/win32/netcdf-3.6.1-win32.zip?

解壓后里面有如下東西?

netcdf.dll? 為編譯好的dll?

ncgen.exe? 為生成netcdf文件的工具?

ncdump.exe 為讀取netcdf文件的工具?

netcdf.lib 和?netcdf.exp在編程時會用到,后面會講。

⑶netcdf的相關文檔,包括?

①netcdf的用戶手冊,下載地址為http://www.unidata.ucar.edu/software/netcdf/docs/netcdf.pdf??

②netcdf的入門教程, 下載地址為http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-tutorial.pdf?

③netcdf的c接口api手冊,下載地址為http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-c.pdf?

下面我們來看netcdf文件的具體內容。

三、netcdf文件的內容

一個netcdf文件的結構包括以下對象:

1、變量(Variables)??

?變量對應著真實的物理數據。比如我們家里的電表,每個時刻顯示的讀數表示用戶的到該時刻的耗電量。這個讀數值就可以用netcdf里的變量來表示。它是一個以時間為自變量(或者說自變量個數為一維)的單值函數。再比如在氣象學中要作出一個氣壓圖,就是“東經xx度,北緯yy度的點的大氣壓值為多少帕”,這是一個二維單值函數,兩維分別是經度和緯度。函數值為大氣壓。

?? 從上面的例子可以看出,netcdf中的變量就是一個N維數組,數組的維數就是實際問題中的自變量個數,數組的值就是觀測得到的物理值。變量(數組值)在netcdf中的存儲類型有六種,ascii字符(char) ,字節(byte), 短整型(short), 整型(int), 浮點(float), 雙精度(double). 顯然這些類型和c中的類型一致,搞C的朋友應該很快就能明白。

2、維(dimension)??

?一個維對應著函數中的某個自變量,或者說函數圖象中的一個坐標軸,在線性代數中就是一個N維向量的一個分量(這也是維這個名稱的由來)。在netcdf中,一個維具有一個名字和范圍(或者說長度,也就是數學上所說的定義域,可以是離散的點集合或者連續的區間)。在netcdf中,維的長度基本都是有限的,最多只能有一個具有無限長度的維。

3、屬性(Attribute)??

屬性對變量值和維的具體物理含義的注釋或者說解釋。因為變量和維在netcdf中都只是無量綱的數字,要想讓人們明白這些數字的具體含義,就得靠屬性這個對象了。

?? 在netcdf中,屬性由一個屬性名和一個屬性值(一般為字符串)組成。比如,在某個cdl文件(cdl文件的具體格式在下一節中講述)中有這樣的代碼段?

? temperature:units = "celsius" ;?

????? 前面的temperature是一個已經定義好的變量(Variable),即溫度,冒號后面的units就是屬性名,表示物理單位,=后面的就是units這個屬性的值,為“celsius” ,即攝氏度,整個一行代碼的意思就是溫度這個物理量的單位為celsius,很好理解。

三、CDL結構

?? CDL全稱為network Common data form Description Language,它是用來描述netcdf文件的結構的一種語法格式。它包括前面所說的三種netcdf對象(變量、維、屬性)的具體定義。看一個具體例子(這個例子cdl文件是從netcdf教程中的2.1 節The simple xy Example摘出來的)

?netcdf simple_xy {

dimensions:

x = 6 ;

y = 12 ;

variables:int data(x, y) ;

data:

data =

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,

36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,

48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,

60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 ;

}

上面的代碼定義了一個符合netcdf格式的結構simple_xy,?

?這個結構包括三個部分

1、維的定義,以dimensions:關鍵字開頭

?? dimensions:

?x = 6 ;

?y = 12 ;?

定義了兩個軸(或者說兩維),名字分別為x和y,x軸的長度(準確的說是坐標點的個數)為6,?y軸的長度為12。

2、變量的定義:以variables:開頭

?variables:

??int data(x, y);?

?定義了一個以x軸和y軸為自變量的函數data,數學公式就是f(x,y)=data;??注意維出現的順序是有序的,它決定data段中的具體賦值結果.

3、數據的定義,以data:開頭

?data:

data =

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,

36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,

48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,

60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 ;

這個段數據用數學的函數公式f(x,y)=data來看,就是?

?x=0,y=0時,data = 0;

???? x=0,y=1時,data = 1;

?????????????? x=5,y=11是,data=71

;要注意的是,

1、賦值順序:

我們給出的是c格式的cdl文件,因此這里的賦值順序和c語言中的一致,也就是通常所說的“行式賦值”,而fortran語言中則是“列式賦值”,因此在fortran格式的cdl文件中,data段的數值順序和這里正好行列互換。?????

2、自變量的默認取值和坐標變量?

? 如果只給出維的長度,那么維的值默認從0開始,然后自動加1,到(長度-1)停止,?? 很多情況下我們要自己給出每個點的坐標值,這時就需要用到netcdf里的坐標變量?? "coordinate varibles":增加一個和只和維相關的一元函數(自變量)并給出它的取值范圍。??

比如下面的cdl文件(摘自netcdf教程中的2.2 The sfc pres temp Example)

?? netcdf sfc_pres_temp {

?dimensions:?latitude = 6 ;??????? //緯度軸

?longitude = 12 ;????? //經度軸?

variables:

?float latitude(latitude) ;??? //坐標變量,存儲具體緯度

?latitude:units = "degrees_north" ;

?float longitude(longitude) ;? //坐標變量,存儲具體緯度

?longitude:units = "degrees_east" ;?

float pressure(latitude, longitude) ;?? //某個點(經度和緯度的交點)的大氣壓值

?pressure:units = "hPa" ;?????????? //大氣壓的單位為

?float temperature(latitude, longitude) ; //某個點(經度和緯度的交點)的溫度值

?temperature:units = "celsius" ;??? //溫度的單位為?

data:

?latitude = 25, 30, 35, 40, 45, 50 ;?

longitude = -125, -120, -115, -110, -105, -100, -95, -90, -85, -80, -75, -70 ;?

pressure =?

900, 906, 912, 918, 924, 930, 936, 942, 948, 954, 960, 966,

901, 907, 913, 919, 925, 931, 937, 943, 949, 955, 961, 967,?

902, 908, 914, 920, 926, 932, 938, 944, 950, 956, 962, 968,?

903, 909, 915, 921, 927, 933, 939, 945, 951, 957, 963, 969,?

904, 910, 916, 922, 928, 934, 940, 946, 952, 958, 964, 970,?

905, 911, 917, 923, 929, 935, 941, 947, 953, 959, 965, 971 ;?

temperature =?

9, 10.5, 12, 13.5, 15, 16.5, 18, 19.5, 21, 22.5, 24, 25.5,?

9.25, 10.75, 12.25, 13.75, 15.25, 16.75, 18.25, 19.75, 21.25, 22.75, 24.25,?25.75,?

9.5, 11, 12.5, 14, 15.5, 17, 18.5, 20, 21.5, 23, 24.5, 26,?

9.75, 11.25, 12.75, 14.25, 15.75, 17.25, 18.75, 20.25, 21.75, 23.25, 24.75,?26.25,?

10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5,?

10.25, 11.75, 13.25, 14.75, 16.25, 17.75, 19.25, 20.75, 22.25, 23.75,?25.25?

對于上面的數據,就是

?latitude = 25,longitude = -125時,pressure =?900,temperature =? 9;?

latitude = 25,longitude = -120時,pressure =?906,temperature =? 10.5;?

以此類推。?

?

四、netcdf文件的讀寫??

“學以致用”?,前面講的都是netcdf的基本知識,都是為了本節的核心問題——讀寫netcdf格式的文件做鋪墊之用,下面我們就來看看如何建立一個netcdf格式文件,以及如何再讀出它的內容。

1、在命令行下讀寫netcdf文件?

⑴建立一個simple_xy.cdl文件,內容就是上一節“CDL結構”中的第一個例子。?

⑵用ncgen.exe工具(下載地址見前面的第二節)建立netcdf文件? ?

??? ?①將ncgen所在目錄加到系統path變量中或者直接將ncgen.exe拷到simple_xy.cdl所在目錄下? ?

?? ??②執行ncgen -o simple_xy.nc simple_xy.cdl生成netcdf格式文件simple_xy.nc?

⑶生成的simple_xy.nc是一個二進制文件,要想從這個文件中還原出數據信息,就要用ncdump工具

???? ①將ncdump所在目錄加到系統path變量中或者直接將ncdump.exe拷到simple_xy.nc所在目錄下

???? ②在命令行下執行ncdump simple_xy.nc,這時屏幕的輸出和simple_xy.cdl內容完全一樣。說明???? 我們的文件讀寫操作都是正確的。?

2、編程讀寫netcdf文件

?前面我們知道如何手工去建立和讀取netddf文件,下面我們來看看如何在程序中用代碼實現netcdf文件的建立和分析。我的編程環境為win2000+vc6.0 并安裝了vc sp6補丁包。例子代碼選自netcdf教程中的2.1節The simple xy Example

⑴將netcdf的源代碼解壓。我們將用到里面的libsrc/netcdf.h頭文件

⑵在vc6中建立一個空的win32控制臺項目.名字為SimpleXyWrite,這個項目用來建立netcdf文件

⑶把如下文件拷貝到項目目錄中

??? ①netcdf源代碼中的libsrc/netcdf.h頭文件

??? ②netcdf源代碼中的examples/C/simple_xy_wr.c文件,并改名為simple_xy_wr.cpp

??? ③netcdf預編譯包中的netcdf.dll文件和?netcdf.lib文件

⑷把netcdf.h文件和simple_xy_wr.cpp加入到項目的文件列表中

? (具體菜單操作project->add to project->files)

⑸把netcdf.lib加入到項目的lib列表中

?(具體菜單操作project->add to project->settings->Link->object/library modules)

⑹編譯并運行這個項目,會在項目目錄下生成一個simple_xy.nc文件,其內容和我們手工生成的文件內容完全一樣。

simple_xy_wr.c文件是建立netcdf文件的c代碼,而examples/C/simple_xy_rd.c文件則是分析netcdf文件的代碼,讀者可以用和剛才類似的步驟在vc6中編譯這個文件。運行時把把剛才生成的simple_xy.nc拷貝到項目的目錄下,如果文件格式沒錯誤,會提示

*** SUCCESS reading example file simple_xy.nc!

然后退出。

3、用ncgen命令自動生成c代碼?

給定了simple_xy.cdl文件后,可以用?

?ncgen -c? simple_xy.cdl?

?命令直接在屏幕上輸出c代碼.?

?不過,這個辦法只限于cdl的數據比較簡單時才可以采用。對于真正的項目,

?是需要我們自己去編寫代碼的。

??五、小結

?通過以上內容的介紹,相信讀者對netcdf已經有了大致的了解。總體來說,netcdf的核心內容就是通過cdl描述文法來建立一個netcdf格式文件。抓住了這一點,讀者再繼續深入看netcdf的其他資料時,應該就沒什么太大的難度了。如是,作者的目的也就達到了。

六、附錄

為便于讀者對照,現本文中用到的幾個文件的內容在此列出

1、simple_xy.cdl文件的內容

netcdf simple_xy {

dimensions:

x = 6 ;

y = 12 ;

variables:

int data(x, y) ;

data:

data =

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,

36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,

48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,

60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 ;

}

2、simple_xy-wr.c文件的內容

/* This is part of the netCDF package.

?? Copyright 2006 University Corporation for Atmospheric Research/Unidata.?

? See COPYRIGHT file for conditions of use.

?

?? This is a very simple example which writes a 2D array of

?? sample data. To handle this in netCDF we create two shared

?? dimensions, "x" and "y", and a netCDF variable, called "data".

?

?? This example demonstrates the netCDF C API. This is part of the

?? netCDF tutorial, which can be found at:

???http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-tutorial??

?? Full documentation of the netCDF C API can be found at:??

??http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-c

?

?? $Id: simple_xy_wr.c,v 1.12 2007/02/14 20:59:21 ed Exp $

*/

#include <stdlib.h>

#include <stdio.h>

#include <netcdf.h>

/* This is the name of the data file we will create. */

#define FILE_NAME "simple_xy.nc"

/* We are writing 2D data, a 6 x 12 grid. */

#define NDIMS 2

#define NX 6

#define NY 12

/* Handle errors by printing an error message and exiting with a?* non-zero status. */

#define ERRCODE 2

#define ERR(e)

?{printf("Error: %s/n", nc_strerror(e)); exit(ERRCODE);}

int

main()

{

?? /* When we create netCDF variables and dimensions, we get back an

??? * ID for each one. */

?? int ncid, x_dimid, y_dimid, varid;

?? int dimids[NDIMS];

?? /* This is the data array we will write. It will be filled with a

??? * progression of numbers for this example. */

?? int data_out[NX][NY];

?? /* Loop indexes, and error handling. */

?? int x, y, retval;

?? /* Create some pretend data. If this wasn't an example program, we

??? * would have some real data to write, for example, model

??? * output. */

?? for (x = 0; x < NX; x++)

????? for (y = 0; y < NY; y++)

? data_out[x][y] = x * NY + y;

?? /* Always check the return code of every netCDF function call. In

??? * this example program, any retval which is not equal to NC_NOERR

??? * (0) will cause the program to print an error message and exit

??? * with a non-zero return code. */

?? /* Create the file. The NC_CLOBBER parameter tells netCDF to

??? * overwrite this file, if it already exists.*/

?? if ((retval = nc_create(FILE_NAME, NC_CLOBBER, &ncid)))

????? ERR(retval);

?? /* Define the dimensions. NetCDF will hand back an ID for each. */

?? if ((retval = nc_def_dim(ncid, "x", NX, &x_dimid)))

????? ERR(retval);

?? if ((retval = nc_def_dim(ncid, "y", NY, &y_dimid)))

????? ERR(retval);

?? /* The dimids array is used to pass the IDs of the dimensions of

??? * the variable. */

?? dimids[0] = x_dimid;

?? dimids[1] = y_dimid;

?? /* Define the variable. The type of the variable in this case is?

?? * NC_INT (4-byte integer). */

?? if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS,

??????? dimids, &varid)))

????? ERR(retval);

?? /* End define mode. This tells netCDF we are done defining

??? * metadata. */

?? if ((retval = nc_enddef(ncid)))

????? ERR(retval);

?? /* Write the pretend data to the file. Although netCDF supports?

??? * reading and writing subsets of data, in this case we write all

??? * the data in one operation. */

?? if ((retval = nc_put_var_int(ncid, varid, &data_out[0][0])))

????? ERR(retval);

?? /* Close the file. This frees up any internal netCDF resources

??? * associated with the file, and flushes any buffers. */

?? if ((retval = nc_close(ncid)))

????? ERR(retval);

?? printf("*** SUCCESS writing example file simple_xy.nc!/n");

?? return 0;

}

3、simple_xy_rd.c文件的內容

/* This is part of the netCDF package.

?? Copyright 2006 University Corporation for Atmospheric Research/Unidata.

?? See COPYRIGHT file for conditions of use.

?? This is a simple example which reads a small dummy array, which was

?? written by simple_xy_wr.c. This is intended to illustrate the use

?? of the netCDF C API.

?? This program is part of the netCDF tutorial:

???http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-tutorial

?? Full documentation of the netCDF C API can be found at:???

? http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-c

?? $Id: simple_xy_rd.c,v 1.9 2006/08/17 23:00:55 russ Exp $

*/

#include <stdlib.h>

#include <stdio.h>

#include <netcdf.h>

/* This is the name of the data file we will read. */

#define FILE_NAME "simple_xy.nc"

/* We are reading 2D data, a 6 x 12 grid. */

#define NX 6

#define NY 12

/* Handle errors by printing an error message and exiting with a?

* non-zero status. */

#define ERRCODE 2

#define ERR(e)

{printf("Error: %s/n", nc_strerror(e)); exit(ERRCODE);}

?

int

main()

{

?? /* This will be the netCDF ID for the file and data variable. */

?? int ncid, varid;

?? int data_in[NX][NY];

?? /* Loop indexes, and error handling. */

?? int x, y, retval;

?? /* Open the file. NC_NOWRITE tells netCDF we want read-only access

??? * to the file.*/

?? if ((retval = nc_open(FILE_NAME, NC_NOWRITE, &ncid)))

????? ERR(retval);

?? /* Get the varid of the data variable, based on its name. */

?? if ((retval = nc_inq_varid(ncid, "data", &varid)))

????? ERR(retval);

?? /* Read the data. */

?? if ((retval = nc_get_var_int(ncid, varid, &data_in[0][0])))

????? ERR(retval);

?? /* Check the data. */

?? for (x = 0; x < NX; x++)

????? for (y = 0; y < NY; y++)

? if (data_in[x][y] != x * NY + y)

???? return ERRCODE;

?? /* Close the file, freeing all resources. */

?? if ((retval = nc_close(ncid)))

????? ERR(retval);

?? printf("*** SUCCESS reading example file %s!/n", FILE_NAME);

?? return 0;

}

總結

以上是生活随笔為你收集整理的Netcdf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

97久久久免费福利网址 | www婷婷| 中文字幕高清 | 人人舔人人爱 | 日韩欧美一区二区三区视频 | 免费观看视频的网站 | 日韩精品欧美专区 | 久久久久免费精品国产 | 在线观看亚洲免费视频 | 日韩美视频| 高清av网 | 欧美一区二区三区免费观看 | 国产一区二区三区黄 | 国产精品原创视频 | 国产精品第一 | 成人免费xxx在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 碰碰影院 | 91在线免费播放 | 在线观看国产一区二区 | 久久伊人综合 | 黄色大全视频 | 日本中文一区二区 | 亚洲爽爽网 | 国产xxxx性hd极品 | 99久久日韩精品视频免费在线观看 | 91亚洲夫妻 | 免费日韩在线 | 午夜视频在线观看一区二区 | 9在线观看免费高清完整版在线观看明 | 国产高清在线免费观看 | 五月婷婷激情五月 | 日韩电影在线观看一区二区三区 | 91c网站色版视频 | 超碰在97| 亚洲精品视频在线免费 | 天天碰天天操视频 | 在线观看日韩专区 | 久久久久免费 | 欧美日韩国产高清视频 | 国产精品成人久久久久久久 | 国产成人中文字幕 | 久久av在线 | 亚洲一区二区三区在线看 | 一区二区三区免费在线 | 天天曰天天射 | 成人激情开心网 | 久久久受www免费人成 | 色橹橹欧美在线观看视频高清 | 欧美日韩超碰 | 天天伊人狠狠 | 91社区国产高清 | 国产精品一区二区av影院萌芽 | 亚洲日本va中文字幕 | 中文字幕 国产视频 | 超碰97久久 | 激情综合色综合久久 | 最近中文字幕国语免费高清6 | 日本公妇在线观看 | 免费看黄色毛片 | 亚洲免费在线播放视频 | 亚洲精品在线国产 | 中文av不卡 | 久草| 久久精品免费 | 天天干天天看 | 啪啪免费观看网站 | 久久久国产精品视频 | 人人澡人摸人人添学生av | 久久久免费高清视频 | 免费又黄又爽的视频 | 狠狠干狠狠艹 | 99精品国产在热久久 | 亚洲日b视频 | 在线播放 日韩专区 | 国产999精品久久久久久麻豆 | 91av电影在线观看 | 久久精品79国产精品 | 在线欧美小视频 | 麻豆久久 | 国产精品成人免费 | 亚洲国产精品电影 | 欧美日韩免费视频 | 亚洲资源一区 | 人人澡人人舔 | 97免费在线观看 | 黄www在线观看 | 国产99中文字幕 | 久久精品视频在线观看 | 久久人人爽人人片 | 午夜精品久久久久久久爽 | 岛国大片免费视频 | 久久亚洲免费视频 | 国产视频资源 | 成人毛片一区二区三区 | av成人免费| 亚洲区视频在线 | 亚洲人精品午夜 | 国产真实精品久久二三区 | 国产精品99久久久久久武松影视 | 久久天天躁 | 91精品久久久久久粉嫩 | 日韩精品一区二区三区电影 | 国产亚洲精品美女 | 亚洲精品久久久久中文字幕二区 | 免费无遮挡动漫网站 | 国产最新91| 欧洲精品码一区二区三区免费看 | 99久久这里只有精品 | 怡红院成人在线 | 久久天天躁夜夜躁狠狠85麻豆 | 亚洲精品毛片一级91精品 | 亚洲一二三久久 | 91视频88av| 国产91精品一区二区麻豆亚洲 | 久久久久久久久久免费视频 | 欧美一区二区三区在线视频观看 | 午夜电影久久久 | 九色福利视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产午夜三级一二三区 | 久久国产精品免费视频 | 国产区网址 | 日韩大片免费观看 | 国产精品久久久久久久久久99 | 黄av免费在线观看 | 超碰在线成人 | 玖玖视频国产 | 九九精品久久 | www麻豆视频 | 国产福利电影网址 | 91福利区一区二区三区 | 欧美无极色 | 国产精品视频线看 | 国产欧美中文字幕 | 日韩电影一区二区在线观看 | 欧美天天干 | 麻豆成人在线观看 | 高清av影院 | 亚洲涩涩涩 | 欧美一级小视频 | 日韩一区二区久久 | 日韩在线 一区二区 | 免费在线一区二区三区 | 欧美色图东方 | 精品在线不卡 | 日本不卡123区| 日韩在线播放欧美字幕 | 亚洲精品一区二区在线观看 | 国产视频资源在线观看 | 亚洲2019精品 | 亚洲1级片 | 日韩午夜精品 | 亚洲区精品 | 国产精华国产精品 | 国产91精品一区二区麻豆网站 | 狠狠天天 | 你操综合 | 国产精品久久久久999 | 国产亚洲综合精品 | 深爱开心激情网 | 激情校园亚洲 | 91新人在线观看 | 国产精品一区在线观看 | 91亚洲网站 | 国产999免费视频 | 美女福利视频一区二区 | 久久99中文字幕 | 99一级片| 国产日韩中文在线 | 亚洲免费专区 | 久久久久国产免费免费 | 国产午夜精品一区二区三区在线观看 | 久久久久久毛片精品免费不卡 | 亚洲精品美女久久久久 | 91视频三区| www黄| 在线观看av中文字幕 | 国产一级免费观看 | 久久免费视屏 | 婷婷综合视频 | 久色小说 | 亚洲一区久久久 | 国产黑丝袜在线 | 91精品推荐 | 四虎最新入口 | 欧美日韩国产精品爽爽 | 免费av影视 | 婷婷深爱 | 国产福利一区二区三区视频 | 婷婷色在线资源 | 午夜 在线 | 日本中文字幕在线电影 | 欧美动漫一区二区三区 | 中文字幕免 | 日韩成人免费观看 | 国产欧美在线一区二区三区 | 最新av在线网址 | 日本久久久亚洲精品 | 国产午夜精品免费一区二区三区视频 | 久久国产精品99精国产 | 黄色网址a | 久久黄网站 | 超碰在线人人草 | 日韩精品一区二区三区高清免费 | 婷婷在线不卡 | 91视频在线看 | 十八岁以下禁止观看的1000个网站 | 91女人18片女毛片60分钟 | 欧美日韩视频在线一区 | 少妇性aaaaaaaaa视频 | 在线观看91久久久久久 | 日韩欧美视频二区 | 天堂av免费在线 | 国产黄色片在线免费观看 | 二区在线播放 | 国产精品久久久久久久毛片 | 日本黄色片一区二区 | 99久热在线精品视频成人一区 | 成人a在线观看高清电影 | 免费精品在线视频 | 国产精品美女久久久网av | 97超碰超碰久久福利超碰 | 免费高清看电视网站 | 国产.精品.日韩.另类.中文.在线.播放 | 国产午夜精品一区 | 午夜美女福利 | 欧美日韩午夜 | 久久96国产精品久久99软件 | 精品一区二区三区久久 | 亚洲精品在线网站 | 1024久久| 精品中文字幕在线观看 | 亚洲视频免费在线观看 | 免费在线观看视频a | av午夜电影| 人人舔人人射 | 能在线看的av | 中文字幕在线播放一区 | 久久综合亚洲鲁鲁五月久久 | 99精品在线免费观看 | 日本护士撒尿xxxx18 | 在线视频欧美日韩 | 日本性xxx| 一级全黄毛片 | 97视频在线看 | 黄色成年片 | 日韩av视屏 | 成人免费观看电影 | 91香蕉视频黄色 | 国产伦理一区二区三区 | 黄色精品免费 | 国产一区二区在线播放 | 日韩久久午夜一级啪啪 | 久久精品一二三区 | 超碰免费97| 日日夜夜人人天天 | 日韩草比| 911国产| 在线观看视频一区二区三区 | 天堂av影院 | 香蕉影院在线播放 | 中文成人字幕 | 日韩视频1 | 亚洲欧美国产日韩在线观看 | www久草| 在线亚洲播放 | 在线三级播放 | 亚洲免费在线 | 日韩激情精品 | 五月天婷亚洲天综合网精品偷 | 国产精品区免费视频 | 天天射网 | 精品一区二区三区久久久 | 日韩av中文在线观看 | 国模视频一区二区 | 狠狠色综合欧美激情 | 国产三级在线播放 | 99色在线观看 | 国产精品密入口果冻 | 91视频午夜 | 天天射射天天 | 免费网站在线观看人 | 91九色成人蝌蚪首页 | 亚洲综合成人专区片 | 国产 一区二区三区 在线 | 中文一区二区三区在线观看 | 午夜 在线| 欧美91精品国产自产 | 国产一区二区三区四区大秀 | 91秒拍国产福利一区 | 国产精品入口久久 | 国产三级精品三级在线观看 | 成人手机在线视频 | 国产精品毛片一区二区 | 美女视频免费精品 | 亚洲第一中文网 | 精品福利视频在线观看 | 日韩午夜在线播放 | 在线播放 日韩专区 | 国产成人一区二区三区久久精品 | 久久国产精品免费一区 | 婷婷久久久 | 天天干,狠狠干 | 亚洲天天综合 | 中文字幕观看视频 | 亚洲一级国产 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲毛片视频 | 欧美成人精品xxx | 久久国产高清视频 | 天天性天天草 | 看片一区二区三区 | 亚洲第一中文字幕 | 亚洲精品视频在线观看免费视频 | 在线观看久久 | 精品在线观看一区二区 | 成人av在线电影 | 久久精品一区二区三区中文字幕 | 精品一区二区av | 久久精品99国产精品 | 97偷拍视频 | 久久这里只有精品9 | 久久久资源| 国产精品永久免费 | 一级黄色大片 | 国产精品资源在线 | 久久男人视频 | 国产黄色资源 | 在线国产小视频 | 婷婷丁香九月 | 国产一区二区三区视频在线 | 91av原创 | 五月婷婷在线观看 | 四虎www. | 久久毛片高清国产 | 成人午夜电影在线播放 | av字幕在线 | 黄色成人av | 丝袜美腿亚洲 | 国产91aaa | 91成人小视频 | 亚洲精品国产综合久久 | 欧美色图亚洲图片 | 久久精品影片 | 中文字幕高清在线 | 国产精品美女网站 | 欧美黄色免费 | av三区在线 | 久久久国内精品 | 久久伊人爱 | 丁香婷婷激情五月 | 日韩欧美一区二区在线观看 | 国产色资源 | 啪啪凸凸| 96久久久| 国产丝袜在线 | 免费福利片2019潦草影视午夜 | 欧美综合在线视频 | 中字幕视频在线永久在线观看免费 | 日本久久综合视频 | 免费一区在线 | 久久a级片 | 麻豆传媒视频在线播放 | 午夜精品久久久久久久99婷婷 | 成全免费观看视频 | 久久一区国产 | 亚洲精区二区三区四区麻豆 | 国产精品入口a级 | 91在线免费观看网站 | 亚洲免费在线视频 | 久久新视频| 男女免费av | 日产av在线播放 | 少妇bbbb搡bbbb搡bbbb | 久久97超碰 | 中文字幕在线看视频国产中文版 | 四虎海外影库www4hu | www久草| 国产精品18久久久久久不卡孕妇 | 网址你懂的在线观看 | 开心色婷婷 | 在线电影中文字幕 | 在线91精品 | 99久久这里有精品 | 久久婷婷精品视频 | 最新成人av | 色999视频| 久久国产精品99久久久久久进口 | 免费av网址大全 | 亚洲午夜久久久影院 | 去干成人网 | 久草在线在线精品观看 | 中文字幕在线观看播放 | 亚洲国内在线 | 国产在线观看a | 国产精品九九久久99视频 | 欧美精品免费在线观看 | 免费精品在线视频 | 日韩av中文在线观看 | 国产激情电影综合在线看 | 亚洲视频 视频在线 | 日韩3区 | 国产亚洲精品福利 | 久久视频网址 | 午夜精品一二三区 | 久久久久国产成人精品亚洲午夜 | 国产精品久久久久久久久久久免费看 | 久久男女视频 | 日韩大片在线观看 | 婷婷国产在线观看 | 97人人模人人爽人人少妇 | 天天操天天干天天摸 | 99视频国产精品 | 国产一级电影 | 亚洲精品1区2区3区 超碰成人网 | 国产精品一区免费在线观看 | 在线精品视频免费观看 | 国产视频亚洲视频 | 国产一区二区在线播放 | 欧美一区视频 | 人人爱爱| 婷色在线 | 天天干天天操天天爱 | 国产精品2020 | 亚洲一区久久 | 人人草人 | 日韩免费电影一区二区三区 | 最近中文字幕免费大全 | 99精品国产高清在线观看 | 日韩中文字幕在线 | 九九热视频在线 | 人人澡超碰碰97碰碰碰软件 | 亚洲精品视频 | 亚洲精品日韩在线观看 | av一区二区三区在线播放 | 精品在线观看免费 | 麻豆系列在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 在线中文字幕一区二区 | 区一区二区三在线观看 | 四虎影视8848aamm | 免费三级网 | 欧美久久久久久久久中文字幕 | 国产v欧美| 在线观看视频三级 | 久久论理 | 超碰个人在线 | 麻豆成人小视频 | 免费精品视频在线 | 天天综合导航 | 日韩在线观看小视频 | 精品国产乱码久久久久久1区2匹 | 黄色免费高清视频 | 欧美另类网站 | 午夜av电影院 | 伊人春色电影网 | 国产精品久久久久久久午夜 | 99视频精品视频高清免费 | 伊人五月| 手机成人av| 蜜臀av免费一区二区三区 | 精品五月天 | 在线观看成人毛片 | 狠狠色香婷婷久久亚洲精品 | 伊人射| 国产精久久久久久妇女av | 久久久久久国产一区二区三区 | 91视频在线国产 | 91桃色在线观看视频 | 黄色成人av在线 | 日韩精品一区二区三区三炮视频 | 成年人免费电影 | 91av小视频 | 射久久 | 免费合欢视频成人app | 99久久久久久国产精品 | 99精品美女| 国产精品久久久久久一二三四五 | 狠狠色丁香婷婷综合欧美 | 久久久久久久看片 | 黄色一级动作片 | 久久躁日日躁aaaaxxxx | 天无日天天操天天干 | 国产成人一区二区三区免费看 | 亚洲精品国产精品国自产 | 欧美日韩精品在线视频 | 麻豆 91 在线| 免费看黄视频 | 天天翘av | 91在线公开视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产视频日韩视频欧美视频 | 一级片免费观看视频 | 在线观看视频一区二区三区 | 免费中文字幕 | 成人网页在线免费观看 | 欧美污污网站 | 色综合夜色一区 | 极品国产91在线网站 | 久久99精品久久久久久三级 | 欧美激情第一页xxx 午夜性福利 | 摸bbb搡bbb搡bbbb | 久久精品免费看 | www日韩在线观看 | 黄免费在线观看 | 深爱激情五月综合 | 天天色棕合合合合合合 | 婷婷狠狠操 | 欧美日韩视频精品 | 麻豆影视在线播放 | 久久激情小视频 | 国产在线色视频 | 国产字幕在线看 | 久久高清视频免费 | 国产精品一区二区免费视频 | 亚洲色视频 | 久久a视频| 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 天天综合网 天天 | 久久天天躁夜夜躁狠狠85麻豆 | 日本系列中文字幕 | 96久久欧美麻豆网站 | 国产精品视频免费看 | 久热免费 | 91丨九色丨国产丨porny精品 | 国产黄色成人av | 九九精品在线观看 | 亚洲综合网站在线观看 | 天天爽天天爽 | 日韩欧美精品在线观看 | 成人免费亚洲 | 伊人色综合久久天天网 | 人人草人人草 | 国产剧在线观看片 | 国产成人久久精品 | 免费观看丰满少妇做爰 | 日本三级不卡视频 | 亚洲免费激情 | 免费在线观看av网址 | 日韩高清精品免费观看 | 天天天天射 | 日韩高清在线一区二区 | 精品国产理论片 | 97成人在线 | 热re99久久精品国产99热 | www.天天成人国产电影 | 91免费国产在线观看 | 成年人免费电影在线观看 | www.av免费| 黄色免费观看 | x99av成人免费 | 久久九九视频 | 久久精品视频免费播放 | 91精品对白一区国产伦 | 日本精品一二区 | 日韩精品播放 | 又黄又网站 | 久草亚洲视频 | 国产成在线观看免费视频 | 成人欧美一区二区三区黑人麻豆 | 9在线观看免费高清完整版在线观看明 | 久久久69| 黄色片网站大全 | 中文资源在线播放 | 欧美日韩一区二区在线观看 | 激情欧美一区二区免费视频 | 国产99一区视频免费 | 在线激情小视频 | 91av亚洲| 精品久久久久久久久久久久久久久久 | av网站大全免费 | 97人人看| 99精品久久久久久久 | 中文字幕中文字幕在线一区 | 不卡视频一区二区三区 | 欧美国产一区二区 | 精品视频一区在线 | 日韩精品不卡在线 | 国产精品av免费 | 黄色小网站免费看 | 亚洲一区二区麻豆 | 91女子私密保健养生少妇 | 亚洲精品国产成人av在线 | 亚洲日韩中文字幕 | 91精品对白一区国产伦 | 黄色网在线播放 | 成人在线免费看视频 | 美女精品在线 | 丁香花五月 | 2000xxx影视 | 一区三区视频在线观看 | 免费久久99精品国产 | 玖玖在线播放 | 视频在线观看99 | 91精品国产高清自在线观看 | 国产麻豆精品一区 | 中文字幕有码在线 | 久久天天躁夜夜躁狠狠85麻豆 | 日韩特级黄色片 | 久草在线免费新视频 | 久草在线电影网 | av黄色国产 | 精品视频区 | av手机版 | 久久久免费网站 | 午夜国产福利在线观看 | 免费三级黄色片 | 美女视频黄色免费 | 麻豆国产精品永久免费视频 | 999久久国产精品免费观看网站 | 色狠狠狠 | 美女网站视频色 | 一区二区三区在线影院 | 国产99久久久国产 | 人人艹视频| 国产成人精品av在线观 | 中文字幕频道 | 午夜精品一二三区 | 欧美日韩久 | 成人黄色大片 | 超碰在线人人 | 亚洲精品国产精品国自 | 国产精品毛片久久久久久久久久99999999 | 久久综合免费视频影院 | www五月 | 开心激情网五月天 | 亚洲精品视频网址 | 色视频在线免费 | 日韩欧美综合视频 | 久久久久久久久久久综合 | 国产亚洲精品久久19p | 久久公开视频 | 亚洲好视频 | 久久av中文字幕片 | 久草在线这里只有精品 | 国产精品久久久久久超碰 | 99综合影院在线 | 免费在线一区二区 | 中文字幕国产视频 | 在线观看免费中文字幕 | 久久久久综合 | 97超碰精品 | 91漂亮少妇露脸在线播放 | 天天色官网| 成人黄色片免费 | 精品久久九九 | 天天草天天摸 | 欧美视频国产视频 | 婷婷六月天天 | 久久99精品久久久久久三级 | 黄色一及电影 | 国产精品永久免费在线 | 日韩av午夜| 亚洲精品成人 | 九九精品视频在线看 | 久久精品五月 | 亚洲国产影院av久久久久 | 精品亚洲欧美无人区乱码 | 久久9999久久| 国产中文字幕精品 | 日韩免费在线观看视频 | 国产区av在线 | 激情深爱| 一级性视频| 五月天婷婷狠狠 | 97视频免费在线观看 | 久久精品一区二 | 午夜精品久久久久久中宇69 | 六月丁香社区 | 免费在线观看不卡av | 免费看日韩 | 五月婷婷综合激情 | 在线免费看黄网站 | 在线av资源| 最新av网址在线 | 在线看一区 | 国产色婷婷精品综合在线手机播放 | 天天草天天摸 | 黄色影院在线观看 | 成年人免费在线播放 | 日韩肉感妇bbwbbwbbw | 国产黄在线观看 | 日日夜夜国产 | 欧美激情精品久久久久久变态 | 韩国精品一区二区三区六区色诱 | 国产一级高清视频 | 黄网站污 | 国产麻豆视频 | 成人在线视频在线观看 | 久久久www成人免费精品 | 免费观看福利视频 | 久久五月天婷婷 | 国产小视频免费在线观看 | 亚洲另类在线视频 | 五月黄色 | 久久免费在线观看视频 | 91色视频| 日韩在线观看你懂得 | av千婊在线免费观看 | 91成人精品国产刺激国语对白 | 欧美精品久久久久久久久久久 | 特级西西444www大胆高清无视频 | 欧美精品乱码久久久久久 | 999久久久久久久久久久 | 久久久久国产a免费观看rela | 日本精品一区二区 | 香蕉影视app | 久久不射影院 | 午夜国产福利在线 | 日本成人免费在线观看 | 中文字幕一区av | 久久www免费人成看片高清 | 国产成人一级 | 久久久免费观看视频 | 99产精品成人啪免费网站 | 一区二区三区手机在线观看 | 2018精品视频| 九九日九九操 | a黄色一级片 | av电影免费在线播放 | 天天艹 | 人人藻人人澡人人爽 | 四虎伊人| 欧美韩国在线 | 亚洲三级黄 | 国产精品永久久久久久久久久 | 77国产精品| 日韩欧美电影在线观看 | 欧美最爽乱淫视频播放 | 成 人 黄 色 视频免费播放 | 一区免费在线 | 欧美日韩一级久久久久久免费看 | 久草视频在线播放 | 国产视频高清 | 天天草天天干天天 | 欧美日韩精品久久久 | 国产不卡免费av | av大全在线观看 | 免费电影播放 | 成 人 黄 色 视频免费播放 | 色综合五月 | 中文字幕网址 | 久久亚洲欧美 | 久草在线久草在线2 | 欧美日韩a视频 | 日韩电影中文,亚洲精品乱码 | 欧美a级在线 | 91麻豆国产福利在线观看 | 97福利 | 国产精品毛片久久 | 国产亚洲精品久久久久久电影 | 国产国语在线 | 国产视频在线观看一区 | 日韩免费不卡视频 | 91精品国产网站 | 色噜噜狠狠色综合中国 | 国产一级一级国产 | 久久久久一区二区三区四区 | 亚洲国产资源 | 成人三级视频 | 亚洲国产网址 | 日韩四虎| 久久综合99| 91热视频在线观看 | 欧美一级小视频 | 国产在线播放观看 | 九九九热视频 | 中文字幕在线人 | 色老板在线视频 | 亚洲欧美日本一区二区三区 | 色99中文字幕 | 欧美美女激情18p | 黄色软件视频网站 | 国产成人久久av免费高清密臂 | 高潮久久久久久久久 | 国产精品毛片一区视频播 | 狠狠色丁香婷婷综合基地 | 欧美日韩在线观看一区二区 | 最近2019好看的中文字幕免费 | 色噜噜在线观看 | www.五月天婷婷 | 久草观看 | 九九热在线免费观看 | 国产伦精品一区二区三区高清 | 国产二区视频在线 | 国产高清综合 | 99久久精品午夜一区二区小说 | 婷婷久久综合网 | 日日操日日 | 国产一级特黄毛片在线毛片 | av日韩中文| 黄色大片日本免费大片 | 精品久久久网 | 国产日本在线播放 | 美女网站视频久久 | 中文字幕在线视频国产 | 国产一区不卡在线 | 黄色成人在线观看 | 久99久在线 | 99久久精品一区二区成人 | 一区二区中文字幕在线 | 欧美日韩精品综合 | 免费av试看 | 五月婷婷久| 国产色在线,com | 福利网在线 | 超碰97公开 | 亚洲激情久久 | 中文字幕第一页在线视频 | 91在线免费看片 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美成人精品欧美一级乱黄 | 在线观看国产v片 | 久久精品综合 | 国产99久久九九精品免费 | 草免费视频 | 日本久久久影视 | 午夜国产在线观看 | 亚洲国产剧情av | 中文字幕亚洲高清 | 国产伦精品一区二区三区无广告 | 午夜免费电影院 | 在线观看91精品视频 | 国外调教视频网站 | 成人黄色在线电影 | 97电影网手机版 | 日韩午夜网站 | 国产精品99在线播放 | av在线免费不卡 | 中文日韩在线视频 | 久久久午夜视频 | 午夜黄色大片 | 国产精品久久久久久久婷婷 | 久久久蜜桃一区二区 | 韩国av一区二区三区在线观看 | 国产成人精品一区二区三区福利 | 一区二区三区国产精品 | 日日夜夜国产 | 欧美成人基地 | 国产偷在线 | 国产精品久久久久久妇 | 国产一级片网站 | 免费看av在线 | 在线亚洲欧美日韩 | 午夜三级福利 | 久久精品99国产国产精 | 久久中文精品视频 | 日韩一区二区免费在线观看 | 99视频在线精品国自产拍免费观看 | 蜜臀久久99精品久久久酒店新书 | 日本一区二区高清不卡 | 精品福利在线 | 看国产黄色大片 | 久久精品播放 | 国产日韩欧美视频在线观看 | 精品一区二区在线免费观看 | 日韩一级片网址 | 久久久久久久久黄色 | 久久深夜 | 久草在线资源观看 | 在线观看亚洲a | 亚洲狠狠| 久久久久久麻豆 | 国产又粗又长又硬免费视频 | 成人免费网视频 | 精品亚洲国产视频 | 日本黄色免费电影网站 | 一区二区欧美日韩 | 成人中文字幕+乱码+中文字幕 | 中文字幕一区二区三区四区在线视频 | 日韩免费观看一区二区三区 | 国产视 | 香蕉手机在线 | 贫乳av女优大全 | 亚洲视频一 | 欧美aa一级片 | 午夜aaaa| 免费黄av| 日韩一级电影在线 | 欧美一级免费片 | 久久99九九99精品 | 婷婷激情综合 | 中文字幕精品一区二区三区电影 | 久久综合之合合综合久久 | 欧美精品乱码久久久久久 | 国产欧美精品一区二区三区四区 | 日韩三级免费观看 | 香蕉视频网站在线观看 | 香蕉久久久久久久 | a视频免费看 | av成人在线网站 | 波多野结衣电影一区 | 免费网站污 | 色偷偷男人的天堂av | av电影久久 | 精品无人国产偷自产在线 | 成人av视屏 | 美女网站色 | 91视频免费观看 | 欧美 高跟鞋交 xxxxhd | 成人综合婷婷国产精品久久免费 | 久草在线精品观看 | 中文字幕免费国产精品 | 久草久草在线观看 | 天天操天 | 夜夜爽www | 亚洲国产播放 | 一区二区三区动漫 | 国产精品久久久久久吹潮天美传媒 | 国产高清在线视频 | 99精品99| 日韩在线视频免费播放 | 摸阴视频 | 国产香蕉久久 | 国产在线精品国自产拍影院 | 日韩中文字幕在线观看 | 国产人在线成免费视频 | 99精品在线视频播放 | 久久99亚洲热视 | 四虎在线免费观看 | 国产白浆在线观看 | 国产综合在线观看视频 | 日本xxxxav| 在线视频精品播放 | 成人免费观看网址 | 免费在线观看日韩欧美 | 久久精品中文字幕少妇 | 黄色国产区 | 成人在线免费观看网站 | 成年人在线看片 | 99精品国产福利在线观看免费 | 日韩久久久久久 | 久草视频在线免费看 | 国产成人免费 | 在线国产能看的 | 国产精品久久久久久久久久久免费看 | 国产精品毛片久久久久久久久久99999999 | 久久99久久99精品 | 国内外成人免费在线视频 | 国产在线高清精品 | 成片免费| 青青久草在线视频 | 日韩精品视频在线观看免费 | 丁香五香天综合情 | 欧美91av| 国产午夜在线观看视频 | 日本性久久| 中文字幕视频免费观看 | 国产护士av| 日韩综合一区二区三区 | 在线v| 97成人免费 | 在线国产视频一区 | 国产成人福利片 | 免费av一级电影 | 日本久久久久久 | 人人干人人上 | 国产精品地址 | 久久综合久久久 | 国产又黄又硬又爽 | 欧美日韩视频免费看 | 少妇性aaaaaaaaa视频 | 日本三级人妇 | 毛片精品免费在线观看 | 欧美成人精品欧美一级乱 | 一区二区欧美日韩 | 日韩精品网址 | 91人人干| 天天爱天天干天天爽 | 国产福利精品一区二区 | www.五月天婷婷.com | 91在线91| 99精品久久久久久久 | 婷婷综合电影 | 日韩h在线观看 | a在线免费观看视频 | 免费观看视频的网站 | 中文字幕在线观看第三页 | 天堂网一区 | 精品一区二区在线观看 | 9在线观看免费高清完整版在线观看明 | 国产精品欧美久久久久久 | 射射射综合网 | 中文字幕av日韩 | 成人av一区二区兰花在线播放 | 激情网综合 | 在线午夜av | 黄色中文字幕 | 999久久久久久久久6666 | 久久免费影院 | 色播99 | av中文字幕网站 | 欧美日韩一区二区免费在线观看 | 成人在线黄色电影 | 欧美一区影院 | 中文网丁香综合网 | 91视频久久久 |