亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xrit2grib.cpp

?? HRIT讀取,用于在LINUX下顯示高束數據圖像
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
  delete [ ] segsindexes;  return(0);}void usage(char *pname){  std::cout << pname << ": Convert HRIT/LRIT files to Grib format."	    << std::endl;  std::cout << std::endl << "Usage:" << std::endl << "\t"            << pname << " [-d directory] -r resol -s prodid1 -c prodid2 -t time"            << " [-a linestart,nlin,pixstart,npix]" << std::endl << std::endl            << "Example: " << std::endl << "\t" << pname            << " -d data/HRIT -r H -s MSG1 -c HRV -t 200402101315"            << std::endl;  return;}char *chname(char *chdesc, int len){  char *name = new char[len];  for (int i = 0; i < len; i ++)    if (chdesc[i] == ' ' || chdesc[i] == '.') name[i] = '_';    else name[i] = chdesc[i];  return name;}std::string underscoreit(std::string base, int final_len){  char *tmp;  int mlen;  tmp = (char *) malloc((final_len+1) * sizeof(char));  tmp[final_len] = 0;  memset(tmp, 0x5F, final_len);  mlen = strlen(base.c_str( ));  if (mlen > final_len) mlen = final_len;  memcpy(tmp, base.c_str( ), mlen);  std::string retval = tmp;  free(tmp);  return retval;}//// Creates Grib product//bool GribProduct(MSG_header *PRO_head, MSG_data* PRO_data,                   int totalsegs, int *segsindexes,		   MSG_header *header, MSG_data *msgdat){  struct tm *tmtime;  char GribName[1024];  int bpp;  int ncal;  float *cal;  GRIB_MSG_PDS pds;  // std::cout << PRO_data->prologue->sat_status;  // std::cout << PRO_data->prologue->image_acquisition;  // std::cout << PRO_data->prologue->celestial_events;  // std::cout << PRO_data->prologue->image_description;  // std::cout << PRO_data->prologue->radiometric_proc;  // std::cout << PRO_data->prologue->geometric_proc;  int npix = header[0].image_structure->number_of_columns;  int nlin = header[0].image_structure->number_of_lines;  size_t npixperseg = npix*nlin;  nlin *= totalsegs;  int SP_X0 = npix/2;  int SP_Y0 = nlin/2;  size_t total_size = totalsegs*npixperseg;  MSG_SAMPLE *pixels = new MSG_SAMPLE[total_size];  MSG_SAMPLE *rotated = new MSG_SAMPLE[total_size];  memset(pixels, 0, total_size*sizeof(MSG_SAMPLE));  size_t pos = 0;  for (int i = 0; i < totalsegs; i ++)  {    if (segsindexes[i] >= 0)      memcpy(pixels+pos, msgdat[segsindexes[i]].image->data,             npixperseg*sizeof(MSG_SAMPLE));    pos += npixperseg;  }  // Rotate 180deg the image!!!  for (int i = 0; i < nlin; i ++)    for (int j = 0; j < npix; j ++)      rotated[i*npix+j] = pixels[((nlin-1)-i)*npix+(npix-1-j)];  delete [ ] pixels;  pixels = rotated;  // Manage subarea  if (is_subarea)  {    if (AreaLinStart < 0                             ||        AreaLinStart > nlin - AreaNlin ||        AreaNlin > nlin - AreaLinStart)    {      std::cerr << "Wrong Subarea in lines...." << std::endl;      throw;    }    if (AreaPixStart < 0               ||        AreaPixStart > npix - AreaNpix ||        AreaNpix > npix - AreaPixStart)    {      std::cerr << "Wrong Subarea in Pixels...." << std::endl;      throw;    }    size_t newsize = AreaNpix * AreaNlin;    MSG_SAMPLE *newpix = new MSG_SAMPLE[newsize];    memset(newpix, 0, newsize*sizeof(MSG_SAMPLE));    for (int i = 0; i < AreaNlin; i ++)      memcpy(newpix + i * AreaNpix,             pixels + (AreaLinStart + i) * npix + AreaPixStart,             AreaNpix * sizeof(MSG_SAMPLE));    delete [ ] pixels;    pixels = newpix;    total_size = newsize;  }  else  {    AreaNpix = npix;    AreaNlin = nlin;  }  tmtime = PRO_data->prologue->image_acquisition.PlannedAquisitionTime.TrueRepeatCycleStart.get_timestruct( );  // Fill pds extra section  pds.spc = (unsigned short) header[0].segment_id->spacecraft_id;  pds.chn = (unsigned char ) header[0].segment_id->spectral_channel_id;  pds.sublon = header[0].image_navigation->subsatellite_longitude;  pds.npix = npix;  pds.nlin = nlin;  pds.cfac = header[0].image_navigation->column_scaling_factor;  pds.lfac = header[0].image_navigation->line_scaling_factor;  pds.coff = header[0].image_navigation->column_offset;  pds.loff = header[0].image_navigation->line_offset;  pds.sh = header[0].image_navigation->satellite_h;  MSG_data_level_15_header *p = PRO_data->prologue;  pds.cal_offset = p->radiometric_proc.ImageCalibration[pds.chn-1].Cal_Offset;  pds.cal_slope = p->radiometric_proc.ImageCalibration[pds.chn-1].Cal_Slope;  char *channelstring = strdup(MSG_channel_name((t_enum_MSG_spacecraft) pds.spc,                               pds.chn).c_str( ));  char *channel = chname(channelstring, strlen(channelstring) + 1);  // Build up output Grib file name and open it  sprintf( GribName, "%s_%4d%02d%02d_%02d%02d.grb", channel,           tmtime->tm_year + 1900, tmtime->tm_mon + 1, tmtime->tm_mday,	   tmtime->tm_hour, tmtime->tm_min );  GRIB_FILE gf;  int ret = gf.OpenWrite(GribName);  if (ret != 0) return false;  GRIB_MESSAGE m;  GRIB_GRID g;  GRIB_LEVEL l;  GRIB_TIME t;  GRIB_FIELD f;  int fakechan = 0;  float abase = 145.0;  if (pds.chn == MSG_SEVIRI_1_5_VIS_0_6) { fakechan = 10; abase = 0.0; }  if (pds.chn == MSG_SEVIRI_1_5_VIS_0_8) { fakechan = 11; abase = 0.0; }  if (pds.chn == MSG_SEVIRI_1_5_HRV)     { fakechan = 12; abase = 0.0; }  if (pds.chn == MSG_SEVIRI_1_5_IR_1_6)   fakechan = 0;  if (pds.chn == MSG_SEVIRI_1_5_IR_3_9)   fakechan = 1;  if (pds.chn == MSG_SEVIRI_1_5_IR_8_7)   fakechan = 2;  if (pds.chn == MSG_SEVIRI_1_5_IR_9_7)   fakechan = 3;  if (pds.chn == MSG_SEVIRI_1_5_IR_10_8)  fakechan = 4;  if (pds.chn == MSG_SEVIRI_1_5_IR_12_0)  fakechan = 5;  if (pds.chn == MSG_SEVIRI_1_5_IR_13_4)  fakechan = 6;  if (pds.chn == MSG_SEVIRI_1_5_WV_6_2)   fakechan = 20;  if (pds.chn == MSG_SEVIRI_1_5_WV_7_3)   fakechan = 21;  fakechan = pds.chn;  t.set(tmtime->tm_year+1900, tmtime->tm_mon+1,        tmtime->tm_mday, tmtime->tm_hour, tmtime->tm_min,        GRIB_TIMEUNIT_MINUTE, GRIB_TIMERANGE_FORECAST_AT_REFTIME_PLUS_P1,        0, 0, 0, 0);  // l.set(GRIB_LEVEL_SATELLITE_METEOSAT8, pds.chn, LOCALDEF24FUNC);   l.set(GRIB_LEVEL_SATELLITE_METEOSAT8, fakechan, LOCALDEF3FUNC);  // Dimensions  bpp = header[0].image_structure->number_of_bits_per_pixel;  ncal = (int) pow(2.0, bpp);  g.set_size(AreaNpix, AreaNlin);  g.set_earth_spheroid( );  g.is_dirincgiven = true;  // Earth Equatorial Radius is 6378.160 Km (IAU 1965)  g.set_spaceview(0.0, pds.sublon, SEVIRI_DX, SEVIRI_DY,                  SP_X0, SP_Y0, SEVIRI_ORIENTATION,                  SEVIRI_CAMERA_H, AreaPixStart+1, AreaLinStart+1);  // Get calibration values  cal = PRO_data->prologue->radiometric_proc.get_calibration((int) pds.chn,                  bpp);  float *fvals = new float[total_size];  for (int i = 0; i < (int) total_size; i ++)  {    if (pixels[i] > 0) fvals[i] = cal[pixels[i]] - abase;    else fvals[i] = 0.0;  }  f.set_table(GRIB_CENTER, GRIB_SUBCENTER, GRIB_TABLE, GRIB_PROCESS);  f.set_field(GRIB_PARAMETER_IMG_D, fvals, total_size, FILL_VALUE, FILL_VALUE);  f.set_scale(GRIB_DECIMAL_SCALE);  unsigned char localdefinition3[LOCALDEF3LEN];  localdefinition3[0] = LOCALDEF3ID;  localdefinition3[1] = LOCALDEF3CLASS;  localdefinition3[2] = LOCALDEF3TYPE;  localdefinition3[3] = (LOCALDEF3STREAM >> 8) & 255;  localdefinition3[4] = LOCALDEF3STREAM & 255;  localdefinition3[5] = 0x30; // 0  localdefinition3[6] = 0x30; // 0  localdefinition3[7] = 0x30; // 0  localdefinition3[8] = 0x31; // 1  localdefinition3[9] = fakechan;  localdefinition3[10] = LOCALDEF3FUNC;  localdefinition3[11] = 0;  // unsigned char localdefinition24[LOCALDEF24LEN];  // localdefinition24[0] = LOCALDEF24ID;  // localdefinition24[1] = LOCALDEF24CLASS;  // localdefinition24[2] = LOCALDEF24TYPE;  // localdefinition24[3] = (LOCALDEF24STREAM >> 8) & 255;  // localdefinition24[4] = LOCALDEF24STREAM & 255;  // localdefinition24[5] = 0x30; // 0  // localdefinition24[6] = 0x30; // 0  // localdefinition24[7] = 0x30; // 0  // localdefinition24[8] = 0x31; // 1  // localdefinition24[9] = (LOCALDEF24SATID >> 8) & 255;  // localdefinition24[10] = LOCALDEF24SATID & 255;  // localdefinition24[11] = (LOCALDEF24INSTR >> 8) & 255;  // localdefinition24[12] = LOCALDEF24INSTR & 255;  // localdefinition24[13] = (pds.chn >> 8) & 255;  // localdefinition24[14] = pds.chn & 255;  // localdefinition24[15] = LOCALDEF24FUNC;  std::cout << "Adding local use PDS of " << sizeof(GRIB_MSG_PDS) << " bytes"            << std::endl;  size_t add_total = LOCALDEF3LEN + sizeof(GRIB_MSG_PDS);  unsigned char *pdsadd = new unsigned char[add_total];  memcpy(pdsadd, localdefinition3, LOCALDEF3LEN);  memcpy(pdsadd+LOCALDEF3LEN, &pds, sizeof(GRIB_MSG_PDS));  f.add_local_def(add_total, pdsadd);  // Write output values  m.set_time(t);  m.set_grid(g);  m.set_level(l);  m.set_field(f);  gf.WriteMessage(m);  // Close Grib output  ret = gf.Close( );  if (ret != 0) return -1;  delete [ ] pixels;  delete [ ] cal;  delete [ ] fvals;  return( true );}//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久精品日日| 三级久久三级久久久| 91麻豆精品久久久久蜜臀 | 亚洲国产一区二区视频| 久久久蜜臀国产一区二区| 欧美私模裸体表演在线观看| 国产丶欧美丶日本不卡视频| 日本中文在线一区| 亚洲精品视频免费看| 国产欧美精品一区二区三区四区| 欧美日韩一区二区三区视频| 成人av免费观看| 毛片av中文字幕一区二区| 亚洲免费看黄网站| 日本一区二区三区在线观看| 欧美本精品男人aⅴ天堂| 欧美一区二区三区四区在线观看| 94-欧美-setu| 国产a区久久久| 国产中文字幕精品| 免费人成网站在线观看欧美高清| 亚洲一区二区在线观看视频 | 国产乱码一区二区三区| 免费观看在线综合| 天堂精品中文字幕在线| 亚洲一线二线三线久久久| 亚洲视频狠狠干| 亚洲人成网站色在线观看| 国产精品入口麻豆九色| 国产精品天天看| 中文字幕精品在线不卡| 国产亚洲美州欧州综合国| 精品对白一区国产伦| 精品国产不卡一区二区三区| 欧美一级高清片| 日韩欧美国产高清| 日韩三级伦理片妻子的秘密按摩| 在线不卡一区二区| 69堂成人精品免费视频| 欧美老年两性高潮| 6080国产精品一区二区| 51久久夜色精品国产麻豆| 91精品国产综合久久久久久久| 337p亚洲精品色噜噜噜| 日韩亚洲欧美在线| 久久这里只有精品首页| 国产色婷婷亚洲99精品小说| 国产欧美日本一区二区三区| 国产日韩成人精品| 中文字幕一区二区三区精华液| 亚洲色图视频网| 一区二区三区在线不卡| 午夜成人免费视频| 麻豆91在线播放| 国产伦精品一区二区三区免费 | 精品成人免费观看| 国产欧美日韩久久| 亚洲激情男女视频| 日韩av一级电影| 国产最新精品免费| 粉嫩绯色av一区二区在线观看| 91蜜桃在线免费视频| 欧美久久久久久久久久| 欧美亚洲综合一区| 69av一区二区三区| 久久婷婷国产综合精品青草| 国产精品色哟哟| 日精品一区二区| 国产美女主播视频一区| 色哟哟一区二区在线观看| 777奇米成人网| 国产女主播一区| 亚洲大片一区二区三区| 国产一区二区三区香蕉| 日本韩国精品在线| 精品久久99ma| 亚洲蜜臀av乱码久久精品| 天堂蜜桃91精品| 不卡的看片网站| 日韩一区二区在线免费观看| 成人欧美一区二区三区小说| 婷婷开心激情综合| 成人小视频在线| 91精品在线免费| 国产精品视频免费| 日本午夜一区二区| 91免费小视频| 亚洲精品一区二区三区香蕉| 亚洲欧美另类久久久精品2019| 老色鬼精品视频在线观看播放| 99在线精品免费| 欧美va在线播放| 亚洲bt欧美bt精品| 成人av电影免费在线播放| 日韩午夜在线观看| 亚洲精品日韩专区silk| 国产电影一区在线| 日韩精品一区二区三区在线观看| 亚洲免费色视频| 成人网在线播放| 精品国产乱码久久久久久闺蜜| 亚洲午夜久久久| voyeur盗摄精品| 久久午夜电影网| 天堂蜜桃91精品| 欧美视频一区二区三区在线观看| 国产日本欧美一区二区| 美女网站一区二区| 欧美无砖砖区免费| 亚洲品质自拍视频网站| 国产99精品在线观看| 精品黑人一区二区三区久久| 五月激情六月综合| 欧美三级中文字幕在线观看| 欧美日韩在线播放三区| 国产精品白丝在线| 国产精品夜夜嗨| 日韩美女在线视频| 亚洲精选视频免费看| aaa亚洲精品| 国产精品高潮久久久久无| 国产精品1024久久| www亚洲一区| 韩国女主播成人在线| 欧美一区二区三区不卡| 日韩av电影天堂| 6080亚洲精品一区二区| 日韩电影在线一区二区| 欧美日韩一区二区三区不卡| 亚洲一区二区三区自拍| 91黄色免费网站| 亚洲精品老司机| 91福利在线免费观看| 亚洲专区一二三| 欧美日本韩国一区二区三区视频| 亚洲国产人成综合网站| 欧美日韩一级黄| 午夜精品福利视频网站| 91精品久久久久久久久99蜜臂| 五月天激情综合网| 欧美亚洲一区二区在线| 这里只有精品视频在线观看| 久久99久久精品欧美| 成人动漫在线一区| 亚洲欧美自拍偷拍| 91蝌蚪porny九色| 亚洲影视在线播放| 欧美精品免费视频| 另类小说一区二区三区| 精品国产一区二区三区四区四| 国产在线观看一区二区| 日本一区二区三区高清不卡| 不卡视频在线观看| 亚洲一卡二卡三卡四卡五卡| 在线不卡a资源高清| 国产美女精品在线| 亚洲天堂2016| 制服丝袜一区二区三区| 色综合中文综合网| 国产一区二区免费视频| 国产精品灌醉下药二区| 欧美亚洲自拍偷拍| 免费不卡在线观看| 日本一区二区在线不卡| 在线一区二区视频| 热久久一区二区| 欧美国产日本视频| 欧美日韩你懂得| 国产真实乱子伦精品视频| 亚洲视频一二三| 日韩一区二区三免费高清| 日本高清免费不卡视频| 另类的小说在线视频另类成人小视频在线 | 欧美疯狂做受xxxx富婆| 激情综合色综合久久| 综合激情成人伊人| 欧美一卡2卡3卡4卡| av中文字幕一区| 三级欧美在线一区| 国产精品成人在线观看| 欧美老人xxxx18| 99re这里只有精品视频首页| 石原莉奈在线亚洲三区| 国产精品超碰97尤物18| 日韩欧美一级片| 91官网在线观看| 国产91高潮流白浆在线麻豆| 日韩中文字幕av电影| 国产亲近乱来精品视频 | 久久免费偷拍视频| 欧美日韩激情一区| 99久久伊人网影院| 国产一区二区精品在线观看| 亚洲成人av在线电影| 中文字幕亚洲不卡| 日韩免费高清av| 欧美探花视频资源| 91美女蜜桃在线| 国产.精品.日韩.另类.中文.在线.播放 | 亚洲婷婷综合色高清在线|