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 + -
显示快捷键?