This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Ioan, re: > long time no hear... Yes indeed! re: > how are you doing....? have you been on holiday? We had a weird summer in > Europe this year, I'm doing well, thanks. I did have a holiday in England in July, but I've been back for almost a month now. re: > the June and July were quite cold..... but now the temps are as they > should. It has been very warm here, and WAY too dry! re: > As for me no real holiday this year ...I was working:))) I know the feeling :-( re: > I have managed to port pyadde and pyarea to python 3 (async) and built an > integrated (multisource) data downloader which should ensure we do not > miss any data in case some sources do not work. This sounds very interesting and useful! re: > I'll send you the updated libs (pyadde pyarea) once I package them. Thanks. re: > I want to discuss shortly two things: > > A. GOES16 > I believe I have already asked you this question but I am going to do it > again in case you got some update on the matter in the meantime. > > Right now we have 3 sources of GOES16 data > > 1. real time > https://www.googleapis.com/storage/v1/b/gcp-public-data-goes-16/o NetCDF > 2. lead.unidata.ucar.edu McIDAS AREA > 3. CLASS NetCDF Excellent, I always like redundancy. You can add to your list: 4. atm.ucar.edu - McIDAS AREA (via ADDE) 5. thredds-test.unidata.ucar.edu netCDF (via the TDS) Coming up sometime reasonably soon will be: 6. adde.ucar.edu - McIDAS AREA (via ADDE) 7. thredds.ucar.edu - netCDF (via the TDS) re: > I was wondering if you got any updates/news from SSEC on the ABI McIDASX > server because some calibration parameters are still missing from the AREA > files. I don't recall you asking this previously, so please forgive the questions: - which calibration parameters are missing from the calibration block in a McIDAS AREA file? I just looked at the SSEC-written server code for the GRB-delivered ABI imagery, and I think that it reads and stores all of the calibration information that is available in the netCDF-4 files that are created by the CSPP GEO software that we are running on our GOES-16 downlink. Here are what I deem to be calibration-related values in the GRB netCDF-4 files (please correct me when I am wrong/missing something!): short Rad(y, x) ; Rad:_FillValue = 1023s ; Rad:long_name = "ABI L1b Radiances" ; Rad:standard_name = "toa_outgoing_radiance_per_unit_wavelength" ; Rad:_Unsigned = "true" ; Rad:sensor_band_bit_depth = 10b ; Rad:valid_range = 0s, 1022s ; Rad:scale_factor = 0.8121064f ; Rad:add_offset = -25.93665f ; Rad:units = "W m-2 sr-1 um-1" ; Rad:resolution = "y: 0.000028 rad x: 0.000028 rad" ; Rad:coordinates = "band_id band_wavelength t y x" ; Rad:grid_mapping = "goes_imager_projection" ; Rad:cell_methods = "t: point area: point" ; Rad:ancillary_variables = "DQF" ; The operative calibration values from this list should be: scale_factor and add_offset. float band_wavelength(band) ; band_wavelength:long_name = "ABI band central wavelength" ; band_wavelength:standard_name = "sensor_band_central_radiation_wavelength" ; band_wavelength:units = "um" ; The operative calibration value here is the band_wavelength itself. float kappa0 ; kappa0:_FillValue = -999.f ; kappa0:long_name = "Inverse of the incoming top of atmosphere radiance at current earth-sun distance (PI d2 esun-1)-1, where d is the ratio of instantaneous Earth-Sun distance divided by the mean Earth-Sun distance, esun is the bandpass-weighted solar irradiance and PI is a standard constant used to convert ABI L1b radiance to reflectance" ; kappa0:units = "(W m-2 um-1)-1" ; kappa0:coordinates = "band_id band_wavelength t" ; kappa0:cell_methods = "t: mean" ; float planck_fk1 ; planck_fk1:_FillValue = -999.f ; planck_fk1:long_name = "wavenumber-dependent coefficient (2 h c2/ nu3) used in the ABI emissive band monochromatic brightness temperature computation, where nu =central wavenumber and h and c are standard constants" ; planck_fk1:units = "W m-1" ; planck_fk1:coordinates = "band_id band_wavelength" ; float planck_fk2 ; planck_fk2:_FillValue = -999.f ; planck_fk2:long_name = "wavenumber-dependent coefficient (h c nu/b) used in the ABI emissive band monochromatic brightness temperature computation, where nu = central wavenumber and h, c, and b are standard constants" ; planck_fk2:units = "K" ; planck_fk2:coordinates = "band_id band_wavelength" ; float planck_bc1 ; planck_bc1:_FillValue = -999.f ; planck_bc1:long_name = "spectral bandpass correction offset for brightness temperature (B(nu) - bc_1)/bc_2 where B()=planck_function() and nu=wavenumber" ; planck_bc1:units = "K" ; planck_bc1:coordinates = "band_id band_wavelength" ; float planck_bc2 ; planck_bc2:_FillValue = -999.f ; planck_bc2:long_name = "spectral bandpass correction scale factor for brightness temperature (B(nu) - bc_1)/bc_2 where B()=planck_function() and nu=wavenumber" ; planck_bc2:units = "1" ; planck_bc2:coordinates = "band_id band_wavelength" ; All of these values are needed for calibration. The McIDAS-X server code for GRB ABI imagery contains: memcpy( (void *)&cal_block[0], (void *)"ABIN",4); cal_block[j] = image_band; cal_block[j+1] = (int)(WaveLength[image_band-1] *10000000.0); cal_block[j+2] = (int)(VAR_scale[image_band-1] *10000000.0); cal_block[j+3] = (int)(VAR_offset[image_band-1] *10000000.0); cal_block[j+4] = 0; cal_block[j+5] = 0; cal_block[j+6] = 0; cal_block[j+7] = 0; cal_block[j+8] = 0; cal_block[j+9] = 0; cal_block[j+10] = 0; cal_block[j+11] = (int)(kappa[image_band-1] *10000000.0); cal_block[j+12] = 0; cal_block[j+13] = (int)(planckFK1[image_band-1] *10000.0); cal_block[j+14] = (int)(planckFK2[image_band-1] *10000.0); cal_block[j+15] = (int)(planckBC1[image_band-1] *10000000.0); cal_block[j+16] = (int)(planckBC2[image_band-1] *10000000.0); cal_block[j+17] = VAR_FillValue[image_band-1]; The association between the values I listed from the netCDF-4 files are: netCDF-4 AREA calibration block ----------------+----------------------- band_wavelength Wavelength scale_factor VAR_scale add_offset VAR_offset kappa0 kappa planck_fk1 planckFK1 planck_fk2 planckFK2 planck_bc1 planckBC1 planck_bc2 planckBC2 re: > I have ways to deal with it but It would be so nice if the AREA > files that come from lead would be one to one with the NetCDF files. Which calibration value(s) are missing? re: > B: the rebuild of GOES archives using pygvar > > I have made some nice progress with this task. However my boss, is not 100% > happy because the GOES image are of course a little wobbly (+- 1 px) mostly > the VIS channel. I assume that you mean the GOES GVAR images. I see that the animated GIFs that you attached were all from GOES-8... re: > I am attaching 3 files so you can have a look. > My question is:...do you know anybody /somebody who tried to correct these > kind of issues with GOES satellites I know that a LOT of work was done to correct the inter-band registration for IR channels for GOES GVAR satellites. There are more than one published papers on what the problem was and how it can be corrected. I feel certain that there has been a LOT of work done on correcting the registration for older GOES satellites (e.g., GOES-8), but I can't give you any references, sorry. re: > pygvar does a good enough job in my opinion but that one pixel gives my > boss trouble.:))). I have observed registration problems with GOES GVAR AND GRB images. The only good news is that I see far fewer in the GRB images than I saw in GVAR images. re: > All the best You too! Cheers, Tom -- **************************************************************************** Unidata User Support UCAR Unidata Program (303) 497-8642 P.O. Box 3000 address@hidden Boulder, CO 80307 ---------------------------------------------------------------------------- Unidata HomePage http://www.unidata.ucar.edu **************************************************************************** Ticket Details =================== Ticket ID: CLT-967906 Department: Support McIDAS Priority: Normal Status: Closed =================== NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.