=> New coefficients have been added to the CESBIO repository for SMAC coefficients. The new sensors taken into account are :

  • Landsat 8, RapidEye
  • Quickbird, Worldview2, Ikonos
  • Pléiades1A (PHR1A)

 The Simplified Model for Atmospheric Correction (SMAC) is the perfect model to perform easy, quick and not too dirty atmospheric corrections. It is based on very simple analytic formulas, based on the 5S model. The 49 coefficients of this model are fitted using a large number of radiative transfer simulations with the 6S model (the old historic version, not the recent vector version). This software is not very accurate (much less than MACCS), and it requires in-situ measurements for the aerosol optical thickness, and weather analyses for ozone and water vapour. If these data are available,  in most cases, its accuracy is within 2 and 3 percent, if we do not account for adjacency effects and slope effects, and it may be worse for large viewing and solar angles (above 70°) or within strong absorption bands. SMAC is very easy to use:

#read the 49 coefficients in smac_soefs tablenom_smac ='COEFS/coef_FORMOSAT2_B1_CONT.dat'coefs=coeff(nom_smac)#read the TOA reflectance image in r_toa variable#depends on the file format#read the angle values in the image metadatatheta_s=30phi_s=180theta_v=0phi_v=0# compute pressure at pixel altitudepressure=PdeZ(1300)#find the values of AOT, UO3, UH2OAOT550=0.1UO3=0.3UH2O=3#compute the atmospheric correctionr_surf=smac_inv(r_toa,theta_s,phi_s,theta_v,phi_v,pressure,AOT,UO3,UH2O,coefs)

where :

  • theta_s, phi_s are the solar zenith and azimuth angles
  • theta_v, phi_v are the viewing zenith and azimuth angles
  • AOT is the aerosol optical thickness at 550 nm which may be obtained from an Aeronet stations, or guessed, or equal to 0.1 for a really dirty atmospheric correction.
  • UO3 is the ozone content in cm.atm (0.3 is OK)
  • UH2O is the water vapour integrated content in kg/m². When I do quick and dirty atmospheric correction, I often use a value equal to 3, but I do not process spectral bands with strong water vapour absorption bands.

[1] Rahman, H., & Dedieu, G. (1994). SMAC: a simplified method for the atmospheric correction of satellite measurements in the solar spectrum. REMOTE SENSING, 15(1), 123-143.« [2] »Tanré, D., Deroo, C., Duhaut, P., Herman, M., Morcrette, J. J., Perbos, J., & Deschamps, P. Y. (1990). Technical note Description of a computer code to simulate the satellite signal in the solar spectrum: the 5S code. International Journal of Remote Sensing, 11(4), 659-668.« [3] »Vermote, E. F., Tanré, D., Deuze, J. L., Herman, M., & Morcette, J. J. (1997). Second simulation of the satellite signal in the solar spectrum, 6S: An overview. Geoscience and Remote Sensing, IEEE Transactions on, 35(3), 675-686.>« [4] »Kotchenova, S. Y., Vermote, E. F., Matarrese, R., & Klemm Jr, F. J. (2006). Validation of a vector version of the 6S radiative transfer code for atmospheric correction of satellite data. Part I: Path radiance. Applied Optics, 45(26), 6762-6774.« [5] »Kotchenova, S. Y., & Vermote, E. F. (2007). Validation of a vector version of the 6S radiative transfer code for atmospheric correction of satellite data. Part II. Homogeneous Lambertian and anisotropic surfaces. Applied Optics, 46(20), 4455-4464. 

25 thoughts on “New satellites added to SMAC atmospheric correction

    1. Holà.\nPuedes descargarlo aqui :\nhttps://labo.obs-mip.fr/multitemp/?page_id=2975\nOlivier

  1. Hi,Thanks for sharing the SMAC code in Python. It is great. I have noticed two mistakes in the code:line 215 if (cksi < -1 ) : should be if (cksi ‘Cheers,Ana

    1. Thanks Ana,\nWorpress replaced some of the signs by their HTML equivalent, I thought I had corrected all of them. Now I hope it’s done.\nOlivier

  2. Bonjour,I’d like to download the new satellite SMAC coefficients, but the link mentioned above appears not to work. Clicking « http://www.cesbio.ups-tlse.fr/fr/smac_telech.htm » leads to a message: ‘Désolé, vous n’avez pas le droit d’accéder à ce fichier’ Could you indicate where I can find the new coefficients? Merci d’avance!

    1. Thanks for your comment. The link has been repaired. You should be able to download now.\nOlivier

  3. Encuentro una inconsistencia en el código C, en la línea: if( (uh2o > 0.) || ( uo3 > 0.) ){ to3 = exp ( (ca->ao3) * pow ( (uo3 *m) , (ca->no3) ) ) ; th2o = exp ( (ca->ah2o) * pow ( (uh2o*m) , (ca->nh2o) ) ) ; to2 = exp ( (ca->ao2) * pow ( (uo2 *m) , (ca->no2) ) ) ; tco2 = exp ( (ca->aco2) * pow ( (uco2*m) , (ca->nco2) ) ) ; tch4 = exp ( (ca->ach4) * pow ( (uch4*m) , (ca->nch4) ) ) ; tno2 = exp ( (ca->ano2) * pow ( (uno2*m) , (ca->nno2) ) ) ; tco = exp ( (ca->aco) * pow ( (uco*m) , (ca->nco) ) ) ;}Tno2 y tco, no se definen en ninguna parte antes ?.En Python solo es un comentario esta condición#/*——: 4) if uh2o <= 0 and uo3 <=0 no gaseous absorption is computed to3 = exp ( (ao3) * ( (uo3 *m) ** (no3) ) ) th2o = exp ( (ah2o) * ( (uh2o*m) ** (nh2o) ) ) to2 = exp ( (ao2) * ( (uo2 *m) ** (no2) ) ) tco2 = exp ( (aco2) * ( (uco2*m) ** (nco2) ) ) tch4 = exp ( (ach4) * ( (uch4*m) ** (nch4) ) ) tno2 = exp ( (ano2) * ( (uno2*m) ** (nno2) ) ) tco = exp ( (aco) * ( (uco *m) ** (nco) ) ) tg = th2o * to3 * to2 * tco2 * tch4 * tco * tno2Me pueden ayudar a entender.Gracias

    1. No estoy responsable del código C, y no lo uso, no puedo ayudarteLa posibilidad de anular la corrección de absorción no me parece necesaria, por este razón, se ha vuelto a un comentario

  4. where can i find the atmospheric correction data (such as optical thickness, water vapour,ozone content, surface temp.) and how to make the sun/satellite angle data map from Landsat8 image?sorry i do not understand use this SMAC

    1. Hi Chintya\nWeather agencies often provide water vapour, zone (surface temperature is not needed in SMAC). For the aerosols it is much more complicated, there are some local measurements, from the AERONET network, some estimates from satellites (MODIS), or you may try to use your images to estimate the aerosol thickness. https://labo.obs-mip.fr/multitemp/?p=1710\n\nBut atmospheric correction is surely not straightforward and cannot be solved in a few day’s work \nCheers,\nOlivier

  5. Hi,I am using WorldView-2 images for coastal applications and I don’t know If you could provide me a marine aerosol coefficients for this satellite.Best regards …

    1. I am sorry Javier, it takes a lot of time to compute coefficients. We would like to release the code for producing coefficients, so that anyone can produce hos own coefficients, but we did not get approval from CNES yet.\nOlivier

  6. Hi,I would like to know how can I obtain the % of diffuse and direct irradiance using SMAC.Best regards ..

  7. Hi,please can anybody help me with the diffuse and direct irradiance in SMAC.Thanks and best regards …

    1. Hola Javier,\nI am afraid SMAC does not allow to separate diffuse and direct irradiances. It only computes total transmission and not its direct and diffuse terms. See the lines ttetas and ttetav in :\nhttps://labo.obs-mip.fr/multitemp/?page_id=2975\n\nTo do that, you’d better use 6S http://6s.ltdri.org. This code is more difficult to use but you may access all its parameters. By the way, SMAC coefficients are computed using 6S.\n\nun saludo,\nOlivier

  8. Hi Oliver,Thank you very much for sharing the SMAC code. However, I have a question regarding any possible typos in the script which may have been due to the html conversion.How can I make sure that the downloaded code is not producing any unintentional errors? A validation dataset with expected outputs would have been very useful to address this issue. Also, is there a way to download the smac.py code as a text file?Thanks a lot!

    1. Yes, \nthere is a link, on the same page, to CESBIO’s code repository.\nhttp://tully.ups-tlse.fr/olivier/smac-python/wikis/version-anglaise\n\nIt is a good suggestion to add a test case.\nI will do it as soon as I have a moment\nbest regards\nOlivier

  9. Dear Olivier,Thank you for making the work and, above all, for making the SMAC freely available. Regarding its use, I have a small doubt that I would like to run through you:Can you give me a short explanation of the meaning of the « altitude » variable in the workflow and how is this depends on the sensor?Thanks a lot.Best wishes,Ruben Remelgado

    1. Dear Ruben,\nIt is the altitude of the observed target. It does not depend on he sensor. \nThe higher in altitude, the thinner the atmosphere. The altitude drives the pressure, which in turns drives the molecular scattering optical thickness.\nThe altitude has no impact on the Aerosol optical thickness, as the code assumes that you know the aerosol optical thickness above each pixel (which is quite hard, I know).\n I hope it answers your question.\n\nBest regards,\nOlivier

  10. Dear Olivier, Am still unable to understand how to use SMAC.After applying coefficients and running the python code i get some value now how i can used that value for atmospheric correction.does i have to apply band pixel data to python code …

    1. Hi @gaurav\nI am not sure to understand what you did exactly.\nCould you please provide the commands you used ?\nOlivier

  11. Dear Olivier , I’m not able to understand of to use smac. i have appiled different cof dat file i.e Coef_S2A_CONT_B11.dat and after that i get r_toa, r_surf,r_toa2(Surface reflectance,TOA reflectance) i don’t know how to use this data for atm correction.

  12. Dear OlivierThis page shows an example with uh2O expressed in kg/m2. You say: »UH2O is the water vapour integrated content in kg/m². When I do quick and dirty atmospheric correction, I often use a value equal to 3, but I do not process spectral bands with strong water vapour absorption bands. »However the short documentation of SMAC indicates an uh2O input in g/cm2. This is confusing

    1. Merci Didier,\n you are right, SMAC works in g/cm2, I corrected the text above.\nOlivier

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.