爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15554|回复: 25

[求助] fortran读取卫星云图

[复制链接]

新浪微博达人勋

发表于 2012-6-25 16:21:14 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
fortran读取 FY2D_ANI_IR1_R04_20120623_2345.awx文件。

下面为读取9210图像产品头记录的c程序数据结构:
/*第一级头记录*/
typedef struct AwxFileFirstHeader
{char                strFileName[12];              //文件名                             〖1〗
short int        iByteOrder;              //形数的字节顺序                  〖2〗
short int        iFirstHeaderLength;        //第一级文件头长度              〖3〗
short int         iSecondHeaderLength;        //第二级文件头长度              〖4〗
short int         iFillSectionLength;        //填充段数据长度       
        short int         iRecoderLength;                //记录长度                       〖5〗
        short int         iRecordsOfHeader;           //文件头占用记录数        〖5A〗
        short int         iRecordsOfData;                //产品数据占用记录数       
        short int         iTypeOfProduct;                //产品类别                       〖6〗
        short int         iTypeOfCompress;           //压缩方式                       〖7〗
        char                strVersion[8];                //格式说明字串                〖8〗
        short int         iFlagOfQuality;                //产品数据质量标记        〖9〗
}AwxFileFirstHeader;
/*静止气象卫星图像产品的第二级文件头记录格式*/typedef struct AwxFileGeoSatelliteSecondHeader
{char        strSatelliteName[8];                //卫星名
short int        iYear;                                       //时间(年)       
short int        iMonth;                                    //时间(月)       
short int        iDay;                                       //时间(日)       
short int        iHour;                                       //时间(时)       
short int        iMinute;                               //时间(分)       
short int        iChannel;                                //通道号               
short int        iFlagOfProjection;                 //投影方式               
short int        iWidthOfImage;                         //图像宽度       
short int        iHeightOfImage;                         //图像高度       
short int        iScanLineNumberOfImageTopLeft;        //图像左上角扫描线号       
short int        iPixelNumberOfImageTopLeft;        //图像左上角象元号               
        short int        iSampleRatio;                        //抽样率                       
        short int        iLatitudeOfNorth;                //地理范围(北纬)               
        short int        iLatitudeOfSouth;                //地理范围(南纬)               
        short int        iLongitudeOfWest;                //地理范围(西经)               
        short int        iLongitudeOfEast;                //地理范围(东经)               
short int        iCenterLatitudeOfProjection;//投影中心纬度 度×100
        short int        iCenterLongitudeOfProjection;//投影中心经度 度×100
        short int        iStandardLatitude1;//标准投影纬度1(或标准经度)       
        short int        iStandardLatitude2;                //标准投影纬度2             
        short int        iHorizontalResolution;//投影水平分辨率        公里×100
        short int        iVerticalResolution;        //投影垂直分辨率        公里×100
        short int        iOverlapFlagGeoGrid;        //地理网格叠加标志       
        short int        iOverlapValueGeoGrid;//地理网格叠加值       
        short int        iDataLengthOfColorTable;        //调色表数据块长度       
        short int        iDataLengthOfCalibration;        //定标数据块长度       
        short int        iDataLengthOfGeolocation;        //定位数据块长度       
        short int        iReserved;                        //保留       
}AwxFileGeoSatelliteSecondHeader;
是个菜鸟不懂怎么下手。谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-27 13:17:43 | 显示全部楼层
现在搞出来了!格式不是512*512而是1300*1900

program duqu
implicit none

integer,parameter :: row=1300
integer,parameter  :: col=1900
integer r   
integer c   
integer*1 matrix(row,col)
open(unit=1,file="FY2D_ANI_VIS_R04_20120623_2345.AWX",form="binary")
!!!!读取头文件
do r=1,2
   read(1) (matrix(r,c),c=1,col)
end do
!!!!读取数据
do r=3,row
   read(1) (matrix(r,c),c=1,col)
end do
close(1)
open(unit=2,file="FY2D_VIS_w.dat",form="binary")
do r=1,row
   write(2)  (matrix(r,c),c=1,col)
end do
close(2)

stop
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-6-25 16:30:50 | 显示全部楼层
@MeteoInfo 这个说明是不是以前在找的那个说明资料?
楼主连这个都有了,下面就是要学fortran或者c的基础知识了,要不然只有等别人做好了送给你,可能性不大的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-25 17:09:49 | 显示全部楼层
本帖最后由 qxtlyf 于 2012-6-25 17:12 编辑

楼主这个是原来FY2C的应用手册上的东西,我有电子版本,不知道与现在的资料一样吗???原来M1上就有处理程序,是用FORTRAN和一个配置文件处理成Micaps格式
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-25 19:04:00 | 显示全部楼层

读这种数据是不是和hdf格式差不多?关键是这种有头文件的不知道怎么读?感觉没思路。能不能给点思路。谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-25 19:05:46 | 显示全部楼层
qxtlyf 发表于 2012-6-25 17:09
楼主这个是原来FY2C的应用手册上的东西,我有电子版本,不知道与现在的资料一样吗???原来M1上就有处理程 ...

不是太清楚。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-25 20:35:51 | 显示全部楼层
这个说明还是有些太简单。这种二进制数据的读取最重要的是知道每个byte所代表的信息,详细的数据说明是必需的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-25 20:51:20 | 显示全部楼层
学完这个是不是顺便就能读hdf格式了?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-25 21:06:14 | 显示全部楼层
上帝也厕所 发表于 2012-6-25 20:51
学完这个是不是顺便就能读hdf格式了?

AWX和hdf格式完全不同,顺便不了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-25 23:07:49 | 显示全部楼层
MeteoInfo 发表于 2012-6-25 21:06
AWX和hdf格式完全不同,顺便不了!

好吧,现在有点明白了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-26 09:20:01 | 显示全部楼层
mofangbao 发表于 2012-6-25 16:30
@MeteoInfo 这个说明是不是以前在找的那个说明资料?
楼主连这个都有了,下面就是要学fortran或者c的基础知 ...

9210图像产品格式:
9210图像产品主要有FY2C中国陆地区域云图、FY2C中国海区图。这两种产品格式及说明如下。
文件格式:二进制格式1字节存放;大小为512列*518行(共512*518字节),其中前6行为头记录(包含定标表),其余512行为数据部分。头记录的格式如下表所示:
一级文件头记录结构:
序号字节序号字节数类型描述字11-1212Char×12SAT96文件名213-142Int16整型数的字节顺序315-162Int16第一级文件头长度417-182Int16第二级文件头长度519-202Int16填充段数据长度621-222Int16记录长度723-242Int16文件头占用记录数825-262Int16产品数据占用记录数927-282Int16产品类别1029-302Int16压缩方式1131-388Char×8格式说明字串1239-402Int16产品数据质量标记
二级文件头记录结构:
序号字节序号字节数类型描述字141-488A×8卫星名249-502I×2时间(年)351-522I×2时间(月)453-542I×2时间(日)555-562I×2时间(时)657-582I×2时间(分)759-602I×2通道号861-622I×2投影方式963-642I×2图象宽度1065-662I×2图象高度1167-682I×2图象左上角扫描线号1269-702I×2图象左上角象元号1371-722I×2抽样率1473-742I×2地理范围(北纬)1575-762I×2地理范围(南纬)1677-782I×2地理范围(西经)1779-802I×2地理范围(东经)1881-822I×2投影中心纬度1983-842I×2投影中心经度2085-862I×2投影标准纬度1(或标准经度)2187-882I×2标准投影纬度22289-902I×2投影水平分辨率2391-922I×2投影垂直分辨率2493-942I×2地理网格叠加标志2595-962I×2地理网格叠加值2697-982I×2调色表数据块长度2799-1002I×2定标数据块长度28101-1022I×2定位数据块长度29103-1042I×2保留



这格式介绍,我在我的程序中定义头文件的时候能不能定义成character*3071::头文件    然后把下面的模块定义成一个数组a(512,512)  这个行吗?谢谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表