- 积分
- 14
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-10-19
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
读取卫星定量估测降水格点数据,如FY2F_PRE_001_OTG_20140901_0330.AWX,成功,但写入后,无法显示。
代码如下:
#region 读取卫星降水估计
public void ReadQPE(string QPEfile)
{
byte[] fHead = new byte[120];
FileStream srQPE = new FileStream(QPEfile, FileMode.Open, FileAccess.Read);
srQPE.Read(fHead, 0, 120);
fileHead = fHead;
int bytenumber = BitConverter.ToInt16(fHead, 50);
int jizhun = BitConverter.ToInt16(fHead, 52);//格点数据基准值
int bili = BitConverter.ToInt16(fHead, 54);//格点数据比例因子
lng0 = BitConverter.ToInt16(fHead, 80)/100.0;//经度*100
lat0 = BitConverter.ToInt16(fHead, 82)/100.0;//纬度*100
int danwei = BitConverter.ToInt16(fHead, 86);//格距单位,0=0.01°,1=km
int dx = BitConverter.ToInt16(fHead, 88);//横向格距
int dy = BitConverter.ToInt16(fHead, 90);//纵向格距
nx0 = BitConverter.ToInt16(fHead, 92);
ny0 = BitConverter.ToInt16(fHead, 94);
byte[] qpebyte = new byte[bytenumber];
QPE = new double[nx0, ny0];//公共变量
for (int j = 0; j <ny0; j++)
{
for (int i = 0; i < nx0; i++)
{
srQPE.Read(qpebyte, 0, bytenumber);
QPE[i, j] = (BitConverter.ToInt16(qpebyte, 0)+jizhun)/bili;
}
}
srQPE.Close();
}
#endregion
#region 写成AWX格式文件
string fileName = "D:\\111.AWX";
FileStream srQPF = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
BinaryWriter bw=new BinaryWriter(srQPF);
ReadFile writef = new ReadFile();//读取文件的类
writef.ReadQPE(qpefile);//读取格点文件
//写入文件头
bw.Write(writef.fileHead);
int jizhun=BitConverter.ToInt16(writef.fileHead, 52);
int bili = BitConverter.ToInt16(writef.fileHead, 54);
//写入格点文件
int nx =writef.QPE.GetLength(0);
int ny = writef.QPE.GetLength(1);
for (int j = 0; j < ny; j++)
{
for (int i = 0; i < nx; i++)
{
short qpf=Convert.ToInt16(writef.QPE[i, j] * bili-jizhun);
bw.Write(qpf);
}
}
bw.Close();
srQPF.Close();
#endregion
利用以上程序代码写出来的文件无法用micaps和meteoInfo软件显示,请哪位大侠指点指点,困扰已久!感激不尽!
|
|