- 积分
- 74
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-3-18
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我原来参照Fortran来编了一下c语言的,但是编的过程中发现foutran中有个blankvalue,然后我猜测是不是没有数值时的标识,所以我改成雷达无数据值,但是这样一改我程序好多错误。。
#define BLANKVALUE_SURFER 2e38 //定义了 surfer的默认值
//int blankvalue;
int X_begin=0,X_end=nXSize,Y_begin=0,Y_end=nYSize;
char surfer_ref_name[10]; // 将文件名定义为字符型
FILE *stream;
fopen_s(&stream,"D:\\surfer_ref_name.txt", "at+");
char s[10] = "DSAA";
char c = '\n';
char blank[10]=" ";
fprintf_s(stream,"%s%c", s, c );
fprintf_s(stream,"%d%c%d%c",X_begin,blank,X_end,c);
fprintf_s(stream,"%d%c%d%c",Y_begin,blank,Y_end,c);
for (int nX=0; nX<nXSize;nX++)
{
for ( int nY=0;nY<nYSize;nY++)
{
//ZMIN,ZMAX
if(nDataSave[nX][nY]==RADAR_NODATA)
{
double zmin=1.0E38;
double zmax=-1.0E38;
if(nDataSave[nX][nY]/=RADAR_NODATA) //找到真实的最大,最小值,除以blankvalue
{
if (nDataSave[nX][nY]>=zmax) { zmax=nDataSave[nX][nY]; }
if (nDataSave[nX][nY]<=zmin) { zmin=nDataSave[nX][nY]; }
}
}
else //MINVAL(Z),MAXVAL(Z)
{
int temp1=nDataSave[0][0];
int temp2=nDataSave[0][0];
for (int nX=0; nX<nXSize;nX++)
{
for ( int nY=0;nY<nYSize;nY++)
{
temp1=nDataSave[nX][nY]>temp1;
temp2=nDataSave[nX][nY]<temp2;
}//nY
}//nX
double zmax=temp1;
double zmin=temp2;
fprintf_s(stream,"%f%f%s",zmax,zmin,c);
}
}//nY
}//nX
for (int nX=0; nX<nXSize;nX++)
{
for ( int nY=0;nY<nYSize;nY++)
{
if (nDataSave[nX][nY]==RADAR_NODATA) {fprintf_s(stream,"%f%c", BLANKVALUE_SURFER,c);}
else {fprintf_s(stream,"%f%c", nDataSave[nX][nY],c);}
}
/*if(blankvalue==RADAR_NODATA)
{
if (nDataSave[nX][nY]==blankvalue) {fprintf_s(stream,"%f%c", BLANKVALUE_SURFER,c);}
else {fprintf_s(stream,"%f%c", nDataSave[nX][nY],c);}
}
else {fprintf_s(stream,"%f%c", nDataSave[nX][nY],c);}*/
}//nY
}//nX
fclose(stream);
|
-
FORTRAN
-
FORTRAN2
|