gribgetgds.c
来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· C语言 代码 · 共 617 行 · 第 1/2 页
C
617 行
gds->merc.usRes_flag = (short) something; /* get resolution & comp flags *//** FUNCTION gbyte !get Latitude of Last point*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->merc.La2\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->merc.La2 = (long) (something) & 8388607; /* get La2 */ if(sign) /* negative value */ gds->merc.La2 = - gds->merc.La2; /* multiply by -1 *//** FUNCTION gbyte !get Longitude of Last point*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->merc.Lo2\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->merc.Lo2 = (long) (something) & 8388607; /* get Lo2 */ if(sign) /* negative value */ gds->merc.Lo2 = - gds->merc.Lo2; /* multiply by -1 *//** FUNCTION gbyte !get Latitude where projection intersects Earth*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->merc.latin\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->merc.latin = (long) (something) & 8388607; /* get latin */ if(sign) /* negative value */ gds->merc.latin = - gds->merc.latin; /* multiply by -1 */ skip += 8; /* skip over the reserved octet *//** FUNCTION gbyte !get scanning mode flag*/ gbyte(in,&something,&skip,8); DPRINT ("gds->merc.usScan_mode\n"); gds->merc.usScan_mode = (short) something; /* get scaning mode flag *//** FUNCTION gbyte !get Longitudinal Increment*/ gbyte(in,&something,&skip,24); DPRINT ("gds->merc.lon_inc\n"); gds->merc.lon_inc = (float) something; /* get Di *//** FUNCTION gbyte !get Latitudinal Increment*/ gbyte(in,&something,&skip,24); DPRINT ("gds->merc.lat_inc\n"); gds->merc.lat_inc = (float) something; /* get Dj */ gbyte(in,&something,&skip,32); DPRINT ("gds->merc.usZero\n"); gds->merc.usZero = (long) something; break; case 5: /* Polar Stereographic Projection Grid *//** case Polar Stereographic Projection Grid:* FUNCTION gbyte !get Number of Columns*/ gbyte(in,&something,&skip,16); DPRINT ("gds->pol.usNx\n"); gds->pol.usNx = (short) something; /* get Nx *//** FUNCTION gbyte !get Number of Rows*/ gbyte(in,&something,&skip,16); DPRINT ("gds->pol.usNy\n"); gds->pol.usNy = (short) something; /* get Ny *//** FUNCTION gbyte !get Latitude of First point*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->pol.lLat1\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->pol.lLat1 = (long) (something) & 8388607; /* get La1 */ if(sign) /* negative value */ gds->pol.lLat1 = - gds->pol.lLat1; /* multiply by -1 *//** FUNCTION gbyte !get Longitude of First point*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->pol.lLon1\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->pol.lLon1 = (long) (something) & 8388607; /* get Lo1 */ if(sign) /* negative value */ gds->pol.lLon1 = - gds->pol.lLon1; /* multiply by -1 *//** FUNCTION gbyte !get resolution & comp flag*/ gbyte(in,&something,&skip,8); DPRINT ("gds->pol.usRes_flag\n"); gds->pol.usRes_flag = (short) something; /* get resolution & comp flags *//** FUNCTION gbyte !get Orientation Longitude*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->pol.lLon_orient\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->pol.lLon_orient = (long) (something) & 8388607; /* get Orientation */ if(sign) /* negative value */ gds->pol.lLon_orient = - gds->pol.lLon_orient; /* multiply by -1 *//** FUNCTION gbyte !get Increment along a Row*/ gbyte(in,&something,&skip,24); DPRINT ("gds->pol.ulDx\n"); gds->pol.ulDx = something; /* get Dx *//** FUNCTION gbyte !get Increment along a Column*/ gbyte(in,&something,&skip,24); DPRINT ("gds->pol.ulDy\n"); gds->pol.ulDy = something; /* get Dy *//** FUNCTION gbyte !get projection center flag*/ gbyte(in,&something,&skip,8); DPRINT ("gds->pol.usProj_flag\n"); gds->pol.usProj_flag = (short) something; /* get Projection center flag *//** FUNCTION gbyte !get scanning mode*/ gbyte(in,&something,&skip,8); DPRINT ("gds->pol.usScan_mode\n"); gds->pol.usScan_mode = (short) something; /* get scaning mode flag *//** FUNCTION gbyte !reserved zero*/ gbyte(in,&something,&skip,32); DPRINT ("gds->pol.usZero\n"); gds->pol.usZero = (int) something; /* get Reserved zero */ break; case 3: /* Lambert conformal, secant or tangent, conical or bipolar */ case 8: /* Albers equal-area, secant or tangent, conical or bipolar */ case 13: /* Oblique Lambert conformal *//** case Lambert conformal, secant or tangent, conical or bipolar:* case Albers equal-area, secant or tangent, conical or bipolar:* case Oblique Lambert conformal:* FUNCTION gbyte !get Number of Columns*/ gbyte(in,&something,&skip,16); DPRINT ("gds->lam.iNx\n"); gds->lam.iNx = (int) something; /* get Nx *//** FUNCTION gbyte !get Number of Rows*/ gbyte(in,&something,&skip,16); DPRINT ("gds->lam.iNy\n"); gds->lam.iNy = (int) something; /* get Ny *//** FUNCTION gbyte !get Latitude of First Point*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->lam.lLat1\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->lam.lLat1 = (long) (something) & 8388607; /* get La1 */ if(sign) /* negative value */ gds->lam.lLat1 = - gds->lam.lLat1; /* multiply by -1 *//** FUNCTION gbyte !get Longitude of First Point*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->lam.lLon1)\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->lam.lLon1 = (long) (something) & 8388607; /* get Lo1 */ if(sign) /* negative value */ gds->lam.lLon1 = - gds->lam.lLon1; /* multiply by -1 *//** FUNCTION gbyte !get resolution & comp flag*/ gbyte(in,&something,&skip,8); DPRINT ("gds->lam.usRes_flag\n"); gds->lam.usRes_flag = (short) something; /* get resolution & comp flags *//** FUNCTION gbyte !get Orientation Longitude*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->lam.lLon_orient)\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->lam.lLon_orient = (long) (something) & 8388607; /* get Orientation */ if(sign) /* negative value */ gds->lam.lLon_orient = - gds->lam.lLon_orient; /* multiply by -1 *//** FUNCTION gbyte !get Increment along a Row*/ gbyte(in,&something,&skip,24); DPRINT ("gds->lam.ulDx\n"); gds->lam.ulDx = something; /* get Dx *//** FUNCTION gbyte !get Increment along a Column*/ gbyte(in,&something,&skip,24); DPRINT ("gds->lam.ulDy\n"); gds->lam.ulDy = something; /* get Dy *//** FUNCTION gbyte !get Projection Center*/ gbyte(in,&something,&skip,8); DPRINT ("gds->lam.usProj_flag\n"); gds->lam.usProj_flag = (short) something; /* get Projection center flag *//** FUNCTION gbyte !get scanning mode flag*/ gbyte(in,&something,&skip,8); DPRINT ("gds->usScan_mode\n"); gds->lam.usScan_mode = (short) something; /* get scaning mode flag *//** FUNCTION gbyte !get First lat from pole that intersects Earth*/ gbyte(in,&something,&skip,24); DPRINT ("gds->lLat_cut1\n"); gds->lam.lLat_cut1 = (long) something; /* get latin_1 *//** FUNCTION gbyte !get Second lat from pole that intersects Earth*/ gbyte(in,&something,&skip,24); DPRINT ("gds->lLat_cut2\n"); gds->lam.lLat_cut2 = (long) something; /* get latin_2 *//** FUNCTION gbyte !get lat of south pole*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->lLat_southpole\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->lam.lLat_southpole = (long) (something) & 8388607; /* get lat of S pole */ if(sign) /* negative value */ gds->lam.lLat_southpole = - gds->lam.lLat_southpole; /* multiply by -1 *//** FUNCTION gbyte !get lon of South pole*/ gbyte(in,&something,&skip,24); DPRINT ("Sign & gds->lLon_southpole\n"); sign = (int)(something >> 23) & 1; /* get sign */ gds->lam.lLon_southpole = (long) (something) & 8388607; /* get long of S pole */ if(sign) /* negative value */ gds->lam.lLon_southpole = - gds->lam.lLon_southpole; /* multiply by -1 *//** FUNCTION gbyte !get Reserved zero*/ gbyte(in,&something,&skip,16); DPRINT ("gds->lam.usZero\n"); gds->lam.usZero = (int) something; /* get Reserved zero */ break; default : /* other cases not implemented in this version *//** default: ! unsupported data types* SET status to bad*/ status=1; /* set status to failure */ break;/*** A.5 ENDSWITCH*/ } /* end switch on data type *//*** A.6 HEADER debug print*/ hdr_print ("Grid Description Section", curr_ptr, gds->head.uslength); DPRINT ("Exiting gribgetgds() with status=%d\n", status);/*** A.7 RETURN (status)*/ return(status);} /** END OF FUNCTION **/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?