Commit 89e65cd9 authored by Thibaut ROMAIN's avatar Thibaut ROMAIN

Merge branch 'improve-opticalibration-pleiades' into 'develop'

Improve opticalibration pleiades

Closes #2161 and #2123

See merge request !795
parents e43e0f28 1b8815b8
Pipeline #7194 passed with stages
in 5 minutes and 51 seconds
......@@ -4,15 +4,15 @@ GeometricLevel SENSOR
TileHintX 2048
TileHintY 2048
DataType 3
SunElevation 39.2604
SunAzimuth 32.4715
SunElevation 39.2072
SunAzimuth 32.444
SatElevation 74.254
SatAzimuth 102.95
AcquisitionDate 2012-06-05T06:30:06.4Z
ProductionDate 2012-06-20T08:39:43.745Z
RPC <RPCParam>
BandName B0
PhysicalGain 9.52
PhysicalGain 9.55
PhysicalBias 0
SolarIrradiance 1915.01
SpectralSensitivity LUT1D.DIM0.SIZE = 209
......@@ -20,7 +20,7 @@ LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 0.0098681 0.0293268 0.087732 0.128704 0.134124 0.245705 0.434552 0.513304 0.471097 0.512588 0.653037 0.770787 0.787942 0.764833 0.771838 0.801329 0.824079 0.835289 0.832615 0.824915 0.816816 0.816338 0.828542 0.862382 0.907506 0.9379 0.950571 0.957226 0.965057 0.963279 0.958726 0.956732 0.964676 0.980462 0.990024 0.983894 0.971911 0.971528 0.957489 0.877013 0.710391 0.494381 0.302199 0.172272 0.0943537 0.0543895 0.0345732 0.0261018 0.023001 0.0223203 0.0210136 0.0173172 0.0119112 0.0072895 0.0046311 0.0033297 0.0025865 0.0020232 0.001503 0.0010527 0.0007044 0.0005199 0.0004117 0.0004097 0.0005317 0.0009532 0.0013521 0.0014273 0.0009182 0.000344 0.0001323 7.83e-05 6.26e-05 5.11e-05 5.38e-05 5.33e-05 4.54e-05 4.04e-05 3.15e-05 3.27e-05 2.62e-05 3.03e-05 2.06e-05 2.41e-05 2.41e-05 2.73e-05 2.58e-05 2.08e-05 3.41e-05 3.79e-05 3.93e-05 4.29e-05 2.81e-05 2.77e-05 1.87e-05 2.72e-05 2.45e-05 2.09e-05 1.37e-05 1.71e-05 2.57e-05 3e-05 3.3e-05 4.46e-05 3.97e-05 3.99e-05 3.84e-05 3.36e-05 3.07e-05 3e-05 2.42e-05 2.24e-05 2.1e-05 3.25e-05 6.9e-05 0.0002195 0.0005063 0.0008373 0.0009464 0.0007099 0.000491 0.0004433 0.0006064 0.0012019 0.0016241 0.0016779 0.0009733 0.0003606 0.0001659 8.64e-05 5.64e-05 5.62e-05 5.9e-05 4.58e-05 3.82e-05 5.86e-05 6.85e-05 4.74e-05 8.72e-05 6.28e-05 9.48e-05 0.0001015 0.0001564 0.0002379 0.0003493 0.0005409 0.0007229 0.0007896 0.0007188 0.0005204 0.0003939 0.0003128 0.0002699 0.0002605 0.0002378 0.0002286 0.0002406 0.0002741 0.0003203 0.0003812 0.0004904 0.0006077 0.000821 0.0011791 0.001815 0.0030817 0.0055589 0.0103652 0.0166309 0.0211503 0.0216246 0.017691 0.0136927 0.0107136 0.0089555 0.007979 0.0079189 0.0080456 0.008892 0.0102062 0.0126157 0.0162251 0.0221306 0.0308295 0.041198 0.0498232 0.0531265 0.0484487 0.0391122 0.0291405 0.0212633 0.0162146 0.0128925 0.0108169 0.0094115 0.0084386 0.0077249 0.0074231 0.0072603 0.0073459 0.0074214 0.0076433 0.0077788 0.0078151 0.0077003 0.0072256 0.0065903 0.005712 0.0048136
BandName B1
PhysicalGain 9.62
PhysicalGain 9.15
PhysicalBias 0
SolarIrradiance 1830.57
SpectralSensitivity LUT1D.DIM0.SIZE = 209
......@@ -28,7 +28,7 @@ LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 1.44e-05 1.43e-05 2.59e-05 1.89e-05 1.32e-05 1.79e-05 2.24e-05 1.79e-05 1.24e-05 2.02e-05 2.76e-05 2.92e-05 4.2e-05 3.66e-05 2.61e-05 2.47e-05 4.45e-05 9.02e-05 0.0001144 8.23e-05 7.78e-05 0.0001923 0.0003401 0.0004085 0.0004936 0.0007849 0.0045979 0.0085122 0.0143014 0.024331 0.0480572 0.109736 0.235389 0.432837 0.649134 0.809577 0.884768 0.906664 0.913115 0.91867 0.927327 0.940521 0.951293 0.95875 0.966736 0.970975 0.972863 0.976956 0.985071 0.98925 0.986596 0.97433 0.957519 0.943555 0.943931 0.957135 0.971253 0.976158 0.961959 0.924489 0.873458 0.834984 0.816674 0.801596 0.743591 0.616035 0.432132 0.254454 0.136087 0.0769553 0.0479321 0.0342014 0.0266703 0.0212632 0.0160541 0.0106967 0.0060543 0.0030797 0.0015416 0.0008333 0.0004706 0.0002918 0.0001917 0.0001472 0.0001063 9.12e-05 5.89e-05 5.52e-05 7.52e-05 8.84e-05 9.85e-05 0.0001125 0.0001368 0.0001947 0.0002284 0.0002088 0.0001498 6.37e-05 3.07e-05 2.83e-05 3.11e-05 3.31e-05 2.15e-05 2.36e-05 2.05e-05 1.86e-05 2.33e-05 2.33e-05 1.98e-05 1.95e-05 1.61e-05 3.08e-05 4.64e-05 2.9e-05 2.64e-05 2.33e-05 3.95e-05 0.0001113 0.0001903 0.000229 0.0002229 0.0001322 5.48e-05 6.08e-05 4.14e-05 3.82e-05 3.81e-05 2.69e-05 2.33e-05 1.98e-05 2.08e-05 3.02e-05 4.19e-05 3.05e-05 3.4e-05 3.34e-05 3.62e-05 2.82e-05 3.37e-05 3.3e-05 4.24e-05 4.2e-05 4.7e-05 4.17e-05 2.33e-05 4.39e-05 5.03e-05 4.46e-05 4.28e-05 5.97e-05 6.71e-05 0.0001142 0.000178 0.0003546 0.000961 0.004126 0.0066679 0.0078563 0.0068645 0.0029441 0.001132 0.0007028 0.0005471 0.0004967 0.0004929 0.0005351 0.0006223 0.0007957 0.0010708 0.0016699 0.0030334 0.0054959 0.009139 0.0125045 0.0144212 0.0141099 0.0117418 0.0089824 0.0067916 0.0056849 0.0051998 0.005364 0.006035 0.0067668 0.0083174 0.0106521 0.013911 0.0183736 0.0231289 0.0272661 0.0298126 0.0300318 0.0286507 0.0266172 0.0247529 0.0236974 0.0232734 0.0236733 0.0245808 0.0257173 0.0267721 0.0267455 0.0254447 0.0227056 0.0188513 0.0147988 0.0109864 0.0079795 0.0057516
BandName B2
PhysicalGain 10.55
PhysicalGain 10.2
PhysicalBias 0
SolarIrradiance 1594.06
SpectralSensitivity LUT1D.DIM0.SIZE = 209
......@@ -36,10 +36,11 @@ LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 0.0097386 0.0035306 0.0035374 0.0114418 0.0266686 0.0373494 0.0904431 0.090758 0.0399312 0.0208748 0.0080694 0.0027002 0.0011241 0.000646 0.0005029 0.0006051 0.0009979 0.0019446 0.0014554 0.000609 0.000323 0.0002503 0.0002538 0.000336 0.0005377 0.0007773 0.0004895 0.0002045 8.75e-05 5.94e-05 2.17e-05 2.9e-05 2.97e-05 4.08e-05 4.56e-05 4.47e-05 3.22e-05 2.22e-05 1.47e-05 9.5e-06 7.2e-06 1.13e-05 3.13e-05 1.23e-05 1.22e-05 2.8e-05 1.8e-05 2.61e-05 1.38e-05 3.92e-05 5.17e-05 6.95e-05 7.97e-05 7.85e-05 0.0001004 0.000117 0.0001483 0.0001837 0.000211 0.0002973 0.0004162 0.0006371 0.0010012 0.0032888 0.0100109 0.0181837 0.033051 0.0624784 0.118367 0.221874 0.375682 0.557483 0.734222 0.863684 0.931992 0.952701 0.962009 0.952734 0.943722 0.94563 0.956233 0.969312 0.983964 0.994916 0.99927 0.99933 0.996343 0.994413 0.988305 0.985758 0.980756 0.968379 0.95447 0.937175 0.917035 0.892282 0.866271 0.844275 0.822042 0.788807 0.737292 0.662508 0.566212 0.449312 0.326 0.219404 0.14165 0.0925669 0.0619437 0.0456444 0.0355683 0.0310879 0.0295168 0.0233351 0.0189628 0.0158627 0.0132266 0.0107473 0.0083969 0.0063847 0.0046601 0.0033814 0.0024167 0.0017478 0.0012949 0.0009939 0.0007442 0.0006312 0.0005142 0.0004354 0.0003549 0.0003156 0.0003079 0.0002906 0.0002867 0.0002751 0.0003048 0.000301 0.0003342 0.000431 0.0004955 0.0005488 0.0005838 0.0006687 0.0006968 0.000665 0.0005866 0.0004688 0.0004086 0.0003611 0.0002404 0.0002609 0.0002476 0.0002133 0.0002098 0.0001916 0.0001642 0.0001799 0.000218 0.0002003 0.000203 0.0002348 0.0002735 0.0002652 0.0002944 0.0004666 0.0004882 0.0006642 0.0007798 0.0010588 0.0014008 0.0019011 0.0024917 0.0034379 0.0042182 0.0053618 0.0062814 0.0068774 0.0071141 0.0070399 0.0065876 0.0067873 0.0066877 0.0068572 0.0070486 0.0073911 0.0081201 0.0087391 0.0096581 0.0106625 0.0120129 0.0137222 0.0159817 0.0180896 0.0206562 0.0236408 0.0269627 0.0310497 0.0353146 0.0398729 0.0438795 0.0462377 0.0454916 0.0408754 0.0333175 0.0251186 0.0179089 0.0125129 0.0086117
BandName B3
PhysicalGain 15.73
PhysicalGain 15.49
PhysicalBias 0
SolarIrradiance 1060.01
SpectralSensitivity LUT1D.DIM0.SIZE = 209
LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 0.0024163 0.0017305 0.0020803 0.0020499 0.001266 0.0007361 0.0006198 0.0006344 0.0007721 0.0011837 0.0020819 0.0023991 0.0013377 0.0006328 0.0003544 0.000289 0.0002498 0.0002541 0.0003346 0.0005048 0.0008684 0.0009871 0.0006587 0.0003833 0.0002606 0.0002356 0.0002364 0.0002791 0.0003613 0.0005575 0.0007414 0.0007413 0.0005768 0.000423 0.0003206 0.0003044 0.0003019 0.0003201 0.0003813 0.000463 0.000593 0.000708 0.0008577 0.0009017 0.0008813 0.0007801 0.0006583 0.0005863 0.0005224 0.0005506 0.0006403 0.0008293 0.0013444 0.0023942 0.0027274 0.001433 0.0006388 0.0003596 0.0002416 0.0001718 0.0001566 0.0001642 0.0001892 0.0002351 0.0003227 0.0006734 0.0014311 0.0013325 0.0005796 0.0002424 0.0001263 0.0001022 4.46e-05 6.52e-05 5.44e-05 5.73e-05 5.18e-05 5.04e-05 6.49e-05 7.23e-05 8.33e-05 7.39e-05 6.91e-05 0.0001382 0.0001692 0.000224 0.0002296 0.0001553 0.0001492 0.0001121 0.0001058 0.0001068 0.0001012 8.64e-05 5.33e-05 3.54e-05 4.4e-05 3.71e-05 6.91e-05 7.69e-05 7.91e-05 0.0001333 0.0001244 0.0002048 0.0002455 0.0002721 0.0003812 0.0004568 0.0006255 0.0008185 0.0009733 0.0012281 0.0013528 0.0015758 0.0017458 0.0019104 0.0020863 0.0023053 0.0025241 0.0037234 0.0044186 0.0053574 0.0066118 0.0083509 0.0107509 0.0150393 0.0212756 0.0292566 0.0414246 0.0586633 0.0834879 0.119038 0.167185 0.232637 0.312406 0.407047 0.509193 0.614827 0.714087 0.801755 0.871484 0.924126 0.958721 0.978299 0.988204 0.992294 0.990203 0.985402 0.977756 0.96602 0.953207 0.942125 0.930356 0.924149 0.921222 0.920382 0.921702 0.922742 0.923 0.923767 0.924307 0.920652 0.915484 0.909091 0.900338 0.890562 0.877642 0.86686 0.853729 0.842859 0.830531 0.819574 0.806909 0.792108 0.779167 0.766051 0.752119 0.737527 0.721732 0.704322 0.685317 0.66425 0.641385 0.617303 0.591954 0.567231 0.543013 0.518456 0.495754 0.473434 0.452822 0.433227 0.413192 0.391912 0.365966 0.332542 0.291768 0.245391 0.196254 0.148685 0.106886 0.073826 0.0491777 0.0327991 0.0215831 0.0145386 0.0103219 0.0076144 0.0061346
SensorID PHR 1A
Mission Pléiades
GeometricLevel SENSOR
TileHintX 128
TileHintY 128
DataType 3
SunElevation 39.2072
SunAzimuth 32.444
SatElevation 74.254
SatAzimuth 102.95
AcquisitionDate 2012-06-05T06:30:06.4Z
ProductionDate 2012-06-20T08:39:43.745Z
ProjectionWKT GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AXIS["Latitude",NORTH],
AXIS["Longitude",EAST],
AUTHORITY["EPSG","4326"]]
RPC <RPCParam>
BandName B0
PhysicalGain 9.55
PhysicalBias 0
SolarIrradiance 1915.01
SpectralSensitivity LUT1D.DIM0.SIZE = 209
LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 0.0098681 0.0293268 0.087732 0.128704 0.134124 0.245705 0.434552 0.513304 0.471097 0.512588 0.653037 0.770787 0.787942 0.764833 0.771838 0.801329 0.824079 0.835289 0.832615 0.824915 0.816816 0.816338 0.828542 0.862382 0.907506 0.9379 0.950571 0.957226 0.965057 0.963279 0.958726 0.956732 0.964676 0.980462 0.990024 0.983894 0.971911 0.971528 0.957489 0.877013 0.710391 0.494381 0.302199 0.172272 0.0943537 0.0543895 0.0345732 0.0261018 0.023001 0.0223203 0.0210136 0.0173172 0.0119112 0.0072895 0.0046311 0.0033297 0.0025865 0.0020232 0.001503 0.0010527 0.0007044 0.0005199 0.0004117 0.0004097 0.0005317 0.0009532 0.0013521 0.0014273 0.0009182 0.000344 0.0001323 7.83e-05 6.26e-05 5.11e-05 5.38e-05 5.33e-05 4.54e-05 4.04e-05 3.15e-05 3.27e-05 2.62e-05 3.03e-05 2.06e-05 2.41e-05 2.41e-05 2.73e-05 2.58e-05 2.08e-05 3.41e-05 3.79e-05 3.93e-05 4.29e-05 2.81e-05 2.77e-05 1.87e-05 2.72e-05 2.45e-05 2.09e-05 1.37e-05 1.71e-05 2.57e-05 3e-05 3.3e-05 4.46e-05 3.97e-05 3.99e-05 3.84e-05 3.36e-05 3.07e-05 3e-05 2.42e-05 2.24e-05 2.1e-05 3.25e-05 6.9e-05 0.0002195 0.0005063 0.0008373 0.0009464 0.0007099 0.000491 0.0004433 0.0006064 0.0012019 0.0016241 0.0016779 0.0009733 0.0003606 0.0001659 8.64e-05 5.64e-05 5.62e-05 5.9e-05 4.58e-05 3.82e-05 5.86e-05 6.85e-05 4.74e-05 8.72e-05 6.28e-05 9.48e-05 0.0001015 0.0001564 0.0002379 0.0003493 0.0005409 0.0007229 0.0007896 0.0007188 0.0005204 0.0003939 0.0003128 0.0002699 0.0002605 0.0002378 0.0002286 0.0002406 0.0002741 0.0003203 0.0003812 0.0004904 0.0006077 0.000821 0.0011791 0.001815 0.0030817 0.0055589 0.0103652 0.0166309 0.0211503 0.0216246 0.017691 0.0136927 0.0107136 0.0089555 0.007979 0.0079189 0.0080456 0.008892 0.0102062 0.0126157 0.0162251 0.0221306 0.0308295 0.041198 0.0498232 0.0531265 0.0484487 0.0391122 0.0291405 0.0212633 0.0162146 0.0128925 0.0108169 0.0094115 0.0084386 0.0077249 0.0074231 0.0072603 0.0073459 0.0074214 0.0076433 0.0077788 0.0078151 0.0077003 0.0072256 0.0065903 0.005712 0.0048136
BandName B1
PhysicalGain 9.15
PhysicalBias 0
SolarIrradiance 1830.57
SpectralSensitivity LUT1D.DIM0.SIZE = 209
LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 1.44e-05 1.43e-05 2.59e-05 1.89e-05 1.32e-05 1.79e-05 2.24e-05 1.79e-05 1.24e-05 2.02e-05 2.76e-05 2.92e-05 4.2e-05 3.66e-05 2.61e-05 2.47e-05 4.45e-05 9.02e-05 0.0001144 8.23e-05 7.78e-05 0.0001923 0.0003401 0.0004085 0.0004936 0.0007849 0.0045979 0.0085122 0.0143014 0.024331 0.0480572 0.109736 0.235389 0.432837 0.649134 0.809577 0.884768 0.906664 0.913115 0.91867 0.927327 0.940521 0.951293 0.95875 0.966736 0.970975 0.972863 0.976956 0.985071 0.98925 0.986596 0.97433 0.957519 0.943555 0.943931 0.957135 0.971253 0.976158 0.961959 0.924489 0.873458 0.834984 0.816674 0.801596 0.743591 0.616035 0.432132 0.254454 0.136087 0.0769553 0.0479321 0.0342014 0.0266703 0.0212632 0.0160541 0.0106967 0.0060543 0.0030797 0.0015416 0.0008333 0.0004706 0.0002918 0.0001917 0.0001472 0.0001063 9.12e-05 5.89e-05 5.52e-05 7.52e-05 8.84e-05 9.85e-05 0.0001125 0.0001368 0.0001947 0.0002284 0.0002088 0.0001498 6.37e-05 3.07e-05 2.83e-05 3.11e-05 3.31e-05 2.15e-05 2.36e-05 2.05e-05 1.86e-05 2.33e-05 2.33e-05 1.98e-05 1.95e-05 1.61e-05 3.08e-05 4.64e-05 2.9e-05 2.64e-05 2.33e-05 3.95e-05 0.0001113 0.0001903 0.000229 0.0002229 0.0001322 5.48e-05 6.08e-05 4.14e-05 3.82e-05 3.81e-05 2.69e-05 2.33e-05 1.98e-05 2.08e-05 3.02e-05 4.19e-05 3.05e-05 3.4e-05 3.34e-05 3.62e-05 2.82e-05 3.37e-05 3.3e-05 4.24e-05 4.2e-05 4.7e-05 4.17e-05 2.33e-05 4.39e-05 5.03e-05 4.46e-05 4.28e-05 5.97e-05 6.71e-05 0.0001142 0.000178 0.0003546 0.000961 0.004126 0.0066679 0.0078563 0.0068645 0.0029441 0.001132 0.0007028 0.0005471 0.0004967 0.0004929 0.0005351 0.0006223 0.0007957 0.0010708 0.0016699 0.0030334 0.0054959 0.009139 0.0125045 0.0144212 0.0141099 0.0117418 0.0089824 0.0067916 0.0056849 0.0051998 0.005364 0.006035 0.0067668 0.0083174 0.0106521 0.013911 0.0183736 0.0231289 0.0272661 0.0298126 0.0300318 0.0286507 0.0266172 0.0247529 0.0236974 0.0232734 0.0236733 0.0245808 0.0257173 0.0267721 0.0267455 0.0254447 0.0227056 0.0188513 0.0147988 0.0109864 0.0079795 0.0057516
BandName B2
PhysicalGain 10.2
PhysicalBias 0
SolarIrradiance 1594.06
SpectralSensitivity LUT1D.DIM0.SIZE = 209
LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 0.0097386 0.0035306 0.0035374 0.0114418 0.0266686 0.0373494 0.0904431 0.090758 0.0399312 0.0208748 0.0080694 0.0027002 0.0011241 0.000646 0.0005029 0.0006051 0.0009979 0.0019446 0.0014554 0.000609 0.000323 0.0002503 0.0002538 0.000336 0.0005377 0.0007773 0.0004895 0.0002045 8.75e-05 5.94e-05 2.17e-05 2.9e-05 2.97e-05 4.08e-05 4.56e-05 4.47e-05 3.22e-05 2.22e-05 1.47e-05 9.5e-06 7.2e-06 1.13e-05 3.13e-05 1.23e-05 1.22e-05 2.8e-05 1.8e-05 2.61e-05 1.38e-05 3.92e-05 5.17e-05 6.95e-05 7.97e-05 7.85e-05 0.0001004 0.000117 0.0001483 0.0001837 0.000211 0.0002973 0.0004162 0.0006371 0.0010012 0.0032888 0.0100109 0.0181837 0.033051 0.0624784 0.118367 0.221874 0.375682 0.557483 0.734222 0.863684 0.931992 0.952701 0.962009 0.952734 0.943722 0.94563 0.956233 0.969312 0.983964 0.994916 0.99927 0.99933 0.996343 0.994413 0.988305 0.985758 0.980756 0.968379 0.95447 0.937175 0.917035 0.892282 0.866271 0.844275 0.822042 0.788807 0.737292 0.662508 0.566212 0.449312 0.326 0.219404 0.14165 0.0925669 0.0619437 0.0456444 0.0355683 0.0310879 0.0295168 0.0233351 0.0189628 0.0158627 0.0132266 0.0107473 0.0083969 0.0063847 0.0046601 0.0033814 0.0024167 0.0017478 0.0012949 0.0009939 0.0007442 0.0006312 0.0005142 0.0004354 0.0003549 0.0003156 0.0003079 0.0002906 0.0002867 0.0002751 0.0003048 0.000301 0.0003342 0.000431 0.0004955 0.0005488 0.0005838 0.0006687 0.0006968 0.000665 0.0005866 0.0004688 0.0004086 0.0003611 0.0002404 0.0002609 0.0002476 0.0002133 0.0002098 0.0001916 0.0001642 0.0001799 0.000218 0.0002003 0.000203 0.0002348 0.0002735 0.0002652 0.0002944 0.0004666 0.0004882 0.0006642 0.0007798 0.0010588 0.0014008 0.0019011 0.0024917 0.0034379 0.0042182 0.0053618 0.0062814 0.0068774 0.0071141 0.0070399 0.0065876 0.0067873 0.0066877 0.0068572 0.0070486 0.0073911 0.0081201 0.0087391 0.0096581 0.0106625 0.0120129 0.0137222 0.0159817 0.0180896 0.0206562 0.0236408 0.0269627 0.0310497 0.0353146 0.0398729 0.0438795 0.0462377 0.0454916 0.0408754 0.0333175 0.0251186 0.0179089 0.0125129 0.0086117
BandName B3
PhysicalGain 15.49
PhysicalBias 0
SolarIrradiance 1060.01
SpectralSensitivity LUT1D.DIM0.SIZE = 209
LUT1D.DIM0.ORIGIN = 0.43
LUT1D.DIM0.SPACING = 0.0025
LUT1D.ARRAY = 0.0024163 0.0017305 0.0020803 0.0020499 0.001266 0.0007361 0.0006198 0.0006344 0.0007721 0.0011837 0.0020819 0.0023991 0.0013377 0.0006328 0.0003544 0.000289 0.0002498 0.0002541 0.0003346 0.0005048 0.0008684 0.0009871 0.0006587 0.0003833 0.0002606 0.0002356 0.0002364 0.0002791 0.0003613 0.0005575 0.0007414 0.0007413 0.0005768 0.000423 0.0003206 0.0003044 0.0003019 0.0003201 0.0003813 0.000463 0.000593 0.000708 0.0008577 0.0009017 0.0008813 0.0007801 0.0006583 0.0005863 0.0005224 0.0005506 0.0006403 0.0008293 0.0013444 0.0023942 0.0027274 0.001433 0.0006388 0.0003596 0.0002416 0.0001718 0.0001566 0.0001642 0.0001892 0.0002351 0.0003227 0.0006734 0.0014311 0.0013325 0.0005796 0.0002424 0.0001263 0.0001022 4.46e-05 6.52e-05 5.44e-05 5.73e-05 5.18e-05 5.04e-05 6.49e-05 7.23e-05 8.33e-05 7.39e-05 6.91e-05 0.0001382 0.0001692 0.000224 0.0002296 0.0001553 0.0001492 0.0001121 0.0001058 0.0001068 0.0001012 8.64e-05 5.33e-05 3.54e-05 4.4e-05 3.71e-05 6.91e-05 7.69e-05 7.91e-05 0.0001333 0.0001244 0.0002048 0.0002455 0.0002721 0.0003812 0.0004568 0.0006255 0.0008185 0.0009733 0.0012281 0.0013528 0.0015758 0.0017458 0.0019104 0.0020863 0.0023053 0.0025241 0.0037234 0.0044186 0.0053574 0.0066118 0.0083509 0.0107509 0.0150393 0.0212756 0.0292566 0.0414246 0.0586633 0.0834879 0.119038 0.167185 0.232637 0.312406 0.407047 0.509193 0.614827 0.714087 0.801755 0.871484 0.924126 0.958721 0.978299 0.988204 0.992294 0.990203 0.985402 0.977756 0.96602 0.953207 0.942125 0.930356 0.924149 0.921222 0.920382 0.921702 0.922742 0.923 0.923767 0.924307 0.920652 0.915484 0.909091 0.900338 0.890562 0.877642 0.86686 0.853729 0.842859 0.830531 0.819574 0.806909 0.792108 0.779167 0.766051 0.752119 0.737527 0.721732 0.704322 0.685317 0.66425 0.641385 0.617303 0.591954 0.567231 0.543013 0.518456 0.495754 0.473434 0.452822 0.433227 0.413192 0.391912 0.365966 0.332542 0.291768 0.245391 0.196254 0.148685 0.106886 0.073826 0.0491777 0.0327991 0.0215831 0.0145386 0.0103219 0.0076144 0.0061346
......@@ -40,7 +40,6 @@
#include <vector>
#include <itkVariableLengthVector.h>
namespace otb
{
......@@ -141,7 +140,7 @@ private:
"- solar illuminations, one value for each band (passed by a file).\n\n"
"For the conversion from DN (for Digital Numbers) to spectral radiance (or 'TOA radiance') L, the following formula is used:\n\n"
"(1)\tL(b) = DN(b)/gain(b)+bias(b)\t(in W/m2/steradians/micrometers)\twith b being a band ID.\n\n"
"**(1)\tL(b) = DN(b)/gain(b)+bias(b)\t(in W/m2/steradians/micrometers)**\twith b being a band ID.\n\n"
"These values are provided by the user thanks to a simple txt file with two lines, one for the gains and one for the biases.\n"
"Each value must be separated with colons (:), with eventual spaces. Blank lines are not allowed. If a line begins with the '#' symbol, then it is "
......@@ -151,7 +150,7 @@ private:
"In order to convert TOA radiance to TOA reflectance, the following formula is used:\n\n"
"(2)\tR(b) = (pi*L(b)*d*d) / (ESUN(b)*cos(θ))\t(no dimension)\twhere: \n\n"
"**(2)\tR(b) = (pi*L(b)*d*d) / (ESUN(b)*cos(θ))\t(no dimension)**\twhere: \n\n"
"- L(b) is the spectral radiance for band b \n"
"- pi is the famous mathematical constant (3.14159...) \n"
......@@ -165,20 +164,22 @@ private:
"These values are provided by the user thanks to a txt file following the same convention as before.\n"
"Instead of providing the date of acquisition, the user can also provide a flux normalization coefficient or a solar distance (in AU) 'fn'. "
"The formula used instead will be the following : \n\n"
"(3) \tR(b) = (pi*L(b)) / (ESUN(b)*fn*fn*cos(θ)) \n\n"
"**(3) \tR(b) = (pi*L(b)) / (ESUN(b)*fn*fn*cos(θ))** \n\n"
"Whatever the formula used (2 or 3), the user should pay attention to the interpretation of the parameters he will provide to the application, "
"by taking into account the original formula that the metadata files assumes.\n\n"
"Below, we give two examples of txt files containing information about gains/biases and solar illuminations :\n\n"
"- gainbias.txt :\n\n"
"# Gain values for each band. Each value must be separated with colons (:), with eventual spaces. Blank lines not allowed.\n"
"10.4416 : 9.529 : 8.5175 : 14.0063\n"
"# Bias values for each band.\n"
"0.0 : 0.0 : 0.0 : 0.0\n\n"
"| # Gain values for each band. Each value must be separated with colons (:), with eventual spaces.\n"
"| # Blank lines not allowed.\n"
"| 10.4416 : 9.529 : 8.5175 : 14.0063\n"
"| # Bias values for each band.\n"
"| 0.0 : 0.0 : 0.0 : 0.0\n\n"
"Important Note : For Pleiade image calibration, the band order is important, it should be given as : Red, Green, Blue, NIR (B2,B1,B0,B3).\n\n"
"- solarillumination.txt : \n\n"
"# Solar illumination values in watt/m2/micron ('micron' means actually 'for each band').\n"
"# Each value must be separated with colons (:), with eventual spaces. Blank lines not allowed.\n"
"1540.494123 : 1826.087443 : 1982.671954 : 1094.747446\n\n"
"| # Solar illumination values in watt/m2/micron ('micron' means actually 'for each band').\n"
"| # Each value must be separated with colons (:), with eventual spaces. Blank lines not allowed.\n"
"| 1540.494123 : 1826.087443 : 1982.671954 : 1094.747446\n\n"
"Finally, the 'Logs' tab provides useful messages that can help the user in knowing the process different status.");
......@@ -284,8 +285,10 @@ private:
SetDefaultParameterFloat("acqui.view.azim", 0.0);
// Gain & bias
AddParameter(ParameterType_InputFilename, "acqui.gainbias", "Gains or biases");
SetParameterDescription("acqui.gainbias", "Gains or biases");
AddParameter(ParameterType_InputFilename, "acqui.gainbias", "Gains and biases");
SetParameterDescription("acqui.gainbias", "A text file containing user defined gains and biases\n\n"
"Note: for Pleiades products, if the user does not give this parameter, the gain and bias values are read by default in the DIMAP.\n"
"If they are not found in the DIMAP, they are taken from hard-coded tables, given by the calibration team.\n");
MandatoryOff("acqui.gainbias");
// Solar illuminations
AddParameter(ParameterType_InputFilename, "acqui.solarilluminations", "Solar illuminations");
......@@ -413,17 +416,9 @@ private:
<< "\tAcquisition Viewing Elevation Angle: " << metadata[MDNum::SatElevation] << std::endl
<< "\tAcquisition Viewing Azimuth Angle: " << metadata[MDNum::SatAzimuth] << std::endl;
vlvector = metadata.GetAsVector(MDNum::PhysicalGain);
ossOutput << "\tAcquisition gain (per band): ";
for (unsigned int k = 0; k < vlvector.Size(); k++)
ossOutput << vlvector[k] << " ";
ossOutput << std::endl;
vlvector = metadata.GetAsVector(MDNum::PhysicalBias);
ossOutput << "\tAcquisition bias (per band): ";
for (unsigned int k = 0; k < vlvector.Size(); k++)
ossOutput << vlvector[k] << " ";
ossOutput << std::endl;
// The Gain and Bias are read in the GetImageMetadata, we will display in DoExecute what gain and bias the user finally chose.
// For now we have gain and bias values from dimap if available, else from hard-coded tables in MTD, so we can disable the parameter and use those values as default
// The user is able to enable it by giving a txt file containing its own values (-acqui.gainbias PathToTxtFile)
DisableParameter("acqui.gainbias");
MandatoryOff("acqui.gainbias");
......@@ -688,20 +683,20 @@ private:
switch (numLine)
{
case 1:
m_ImageToRadianceFilter->SetAlpha(vlvector);
m_RadianceToImageFilter->SetAlpha(vlvector);
GetLogger()->Info("Trying to get gains/biases information... OK (1/2)\n");
case 1:
m_ImageToRadianceFilter->SetAlpha(vlvector);
m_RadianceToImageFilter->SetAlpha(vlvector);
otbAppLogINFO("Using Acquisition gain from the user file (per band): " << vlvector);
break;
case 2:
m_ImageToRadianceFilter->SetBeta(vlvector);
m_RadianceToImageFilter->SetBeta(vlvector);
GetLogger()->Info("Trying to get gains/biases information... OK (2/2)\n");
case 2:
m_ImageToRadianceFilter->SetBeta(vlvector);
m_RadianceToImageFilter->SetBeta(vlvector);
otbAppLogINFO("Using Acquisition biases from the user file (per band): " << vlvector);
break;
default:
itkExceptionMacro(<< "File : " << filename << " contains wrong number of lines (needs two, one for gains and one for biases)");
default:
itkExceptionMacro(<< "File : " << filename << " contains wrong number of lines (needs two, one for gains and one for biases)");
}
}
}
......@@ -712,12 +707,14 @@ private:
}
else
{
// Try to retrieve information from image metadata
// Try to retrieve information from image metadata (either DIMAP if available, or hard-coded tables)
if (hasOpticalSensorMetadata)
{
otbAppLogINFO("Using Acquisition gain from image metadata (per band): " << metadata.GetAsVector(MDNum::PhysicalGain));
m_ImageToRadianceFilter->SetAlpha(metadata.GetAsVector(MDNum::PhysicalGain));
m_RadianceToImageFilter->SetAlpha(metadata.GetAsVector(MDNum::PhysicalGain));
otbAppLogINFO("Using Acquisition bias from image metadata (per band): " << metadata.GetAsVector(MDNum::PhysicalBias));
m_ImageToRadianceFilter->SetBeta(metadata.GetAsVector(MDNum::PhysicalBias));
m_RadianceToImageFilter->SetBeta(metadata.GetAsVector(MDNum::PhysicalBias));
}
......@@ -793,7 +790,7 @@ private:
{
case Level_IM_TOA:
{
GetLogger()->Info("Compute Top of Atmosphere reflectance\n");
otbAppLogINFO("Compute Top of Atmosphere reflectance\n");
// Pipeline
m_ImageToRadianceFilter->SetInput(inImage);
......@@ -801,7 +798,7 @@ private:
if (GetParameterInt("clamp"))
{
GetLogger()->Info("Clamp values between [0, 100]\n");
otbAppLogINFO("Clamp values between [0, 100]\n");
}
m_RadianceToReflectanceFilter->SetUseClamp(GetParameterInt("clamp"));
......@@ -811,7 +808,7 @@ private:
break;
case Level_TOA_IM:
{
GetLogger()->Info("Convert Top of Atmosphere reflectance to image DN\n");
otbAppLogINFO("Convert Top of Atmosphere reflectance to image DN\n");
// Pipeline
m_ReflectanceToRadianceFilter->SetInput(inImage);
......@@ -822,7 +819,7 @@ private:
break;
case Level_TOC:
{
GetLogger()->Info("Compute Top of Canopy reflectance\n");
otbAppLogINFO("Compute Top of Canopy reflectance\n");
// Pipeline
m_ImageToRadianceFilter->SetInput(inImage);
......@@ -902,7 +899,7 @@ private:
// Aeronet file
if (IsParameterEnabled("atmo.aeronet"))
{
GetLogger()->Info("Use Aeronet file to retrieve atmospheric parameters\n");
otbAppLogINFO("Use Aeronet file to retrieve atmospheric parameters\n");
m_paramAtmo->SetAeronetFileName(GetParameterString("atmo.aeronet"));
m_paramAtmo->UpdateAeronetData(GetParameterInt("acqui.year"), GetParameterInt("acqui.month"), GetParameterInt("acqui.day"),
GetParameterInt("acqui.hour"), GetParameterInt("acqui.minute"), 0.4);
......@@ -926,12 +923,12 @@ private:
AtmosphericRadiativeTerms::Pointer atmoTerms = m_ReflectanceToSurfaceReflectanceFilter->GetAtmosphericRadiativeTerms();
oss << std::endl << std::endl << atmoTerms << std::endl;
GetLogger()->Info("Atmospheric correction parameters compute by 6S : " + oss.str());
otbAppLogINFO("Atmospheric correction parameters compute by 6S : " + oss.str());
bool adjComputation = false;
if (IsParameterEnabled("atmo.radius"))
{
GetLogger()->Info("Compute adjacency effects\n");
otbAppLogINFO("Compute adjacency effects\n");
adjComputation = true;
// Compute adjacency effect
m_SurfaceAdjacencyEffectCorrectionSchemeFilter = SurfaceAdjacencyEffectCorrectionSchemeFilterType::New();
......@@ -955,7 +952,7 @@ private:
}
else
{
GetLogger()->Info("Clamp values between [0, 100]\n");
otbAppLogINFO("Clamp values between [0, 100]\n");
if (!adjComputation)
m_ClampFilter->SetInput(m_ReflectanceToSurfaceReflectanceFilter->GetOutput());
......@@ -974,7 +971,7 @@ private:
if (GetParameterInt("milli"))
{
GetLogger()->Info("Use milli-reflectance\n");
otbAppLogINFO("Use milli-reflectance\n");
if ((GetParameterInt("level") == Level_IM_TOA) || (GetParameterInt("level") == Level_TOC))
scale = 1000.;
if (GetParameterInt("level") == Level_TOA_IM)
......
......@@ -311,73 +311,74 @@ public:
}
void ParseDimapV2(const MetadataSupplierInterface & mds)
void ParseDimapV2(const MetadataSupplierInterface & mds, const std::string & prefix = "Dimap_Document.")
{
std::vector<std::string> missionVec;
ParseVector(mds, "IMD/Dataset_Sources.Source_Identification"
ParseVector(mds, prefix + "Dataset_Sources.Source_Identification"
,"Strip_Source.MISSION", missionVec);
m_Data.mission = missionVec[0];
std::vector<std::string> missionIndexVec;
ParseVector(mds, "IMD/Dataset_Sources.Source_Identification"
ParseVector(mds, prefix + "Dataset_Sources.Source_Identification"
,"Strip_Source.MISSION_INDEX", missionIndexVec);
m_Data.missionIndex = missionIndexVec[0];
ParseVector(mds, "IMD/Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Radiance",
ParseVector(mds, prefix + "Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Radiance",
"BAND_ID", m_Data.BandIDs);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Solar_Incidences.SUN_ELEVATION", m_Data.SunElevation);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Solar_Incidences.SUN_AZIMUTH", m_Data.SunAzimuth);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Acquisition_Angles.INCIDENCE_ANGLE", m_Data.IncidenceAngle);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Acquisition_Angles.INCIDENCE_ANGLE_ALONG_TRACK", m_Data.AlongTrackIncidenceAngle);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Acquisition_Angles.INCIDENCE_ANGLE_ACROSS_TRACK", m_Data.AcrossTrackIncidenceAngle);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Acquisition_Angles.VIEWING_ANGLE", m_Data.ViewingAngle);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Acquisition_Angles.AZIMUTH_ANGLE", m_Data.AzimuthAngle);
ParseVector(mds, "IMD/Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Radiance",
"BIAS", m_Data.PhysicalBias);
std::vector<double> gainbiasUnavail={};
ParseVector(mds, prefix + "Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Radiance",
"BIAS", m_Data.PhysicalBias,gainbiasUnavail);
ParseVector(mds, "IMD/Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Radiance",
"GAIN", m_Data.PhysicalGain);
ParseVector(mds, "IMD/Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Solar_Irradiance",
ParseVector(mds, prefix + "Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Radiance",
"GAIN", m_Data.PhysicalGain,gainbiasUnavail);
ParseVector(mds, prefix + "Radiometric_Data.Radiometric_Calibration.Instrument_Calibration.Band_Measurement_List.Band_Solar_Irradiance",
"VALUE" , m_Data.SolarIrradiance);
ParseVector(mds, "IMD/Geometric_Data.Use_Area.Located_Geometric_Values",
ParseVector(mds, prefix + "Geometric_Data.Use_Area.Located_Geometric_Values",
"Acquisition_Angles.AZIMUTH_ANGLE" , m_Data.SceneOrientation);
std::string path = "IMD/Product_Information.Delivery_Identification.JOB_ID";
std::string path = prefix + "Product_Information.Delivery_Identification.JOB_ID";
m_Data.ImageID =mds.GetAs<std::string>(path);
path = "IMD/Product_Information.Delivery_Identification.PRODUCTION_DATE";
path = prefix + "Product_Information.Delivery_Identification.PRODUCTION_DATE";
m_Data.ProductionDate = mds.GetAs<std::string>(path);
auto imagingDate = GetSingleValueFromList<std::string>(mds, "IMD/Dataset_Sources.Source_Identification", "Strip_Source.IMAGING_DATE" );
auto imagingTime = GetSingleValueFromList<std::string>(mds, "IMD/Dataset_Sources.Source_Identification", "Strip_Source.IMAGING_TIME" );
auto imagingDate = GetSingleValueFromList<std::string>(mds, prefix + "Dataset_Sources.Source_Identification", "Strip_Source.IMAGING_DATE" );
auto imagingTime = GetSingleValueFromList<std::string>(mds, prefix + "Dataset_Sources.Source_Identification", "Strip_Source.IMAGING_TIME" );
m_Data.AcquisitionDate = imagingDate + "T" + imagingTime;
m_Data.Instrument = GetSingleValueFromList<std::string>(mds, "IMD/Dataset_Sources.Source_Identification", "Strip_Source.INSTRUMENT" );
m_Data.InstrumentIndex = GetSingleValueFromList<std::string>(mds, "IMD/Dataset_Sources.Source_Identification", "Strip_Source.INSTRUMENT_INDEX" );
m_Data.Instrument = GetSingleValueFromList<std::string>(mds, prefix + "Dataset_Sources.Source_Identification", "Strip_Source.INSTRUMENT" );
m_Data.InstrumentIndex = GetSingleValueFromList<std::string>(mds, prefix + "Dataset_Sources.Source_Identification", "Strip_Source.INSTRUMENT_INDEX" );
m_Data.ProcessingLevel = mds.GetAs<std::string>
("IMD/Processing_Information.Product_Settings.PROCESSING_LEVEL");
(prefix + "Processing_Information.Product_Settings.PROCESSING_LEVEL");
m_Data.SpectralProcessing = mds.GetAs<std::string>
("IMD/Processing_Information.Product_Settings.SPECTRAL_PROCESSING");
(prefix + "Processing_Information.Product_Settings.SPECTRAL_PROCESSING");
}
protected:
......
......@@ -34,6 +34,8 @@
#include "itksys/SystemTools.hxx"
#include "otbXMLMetadataSupplier.h"
namespace otb
{
using boost::lexical_cast;
......@@ -1839,21 +1841,119 @@ void PleiadesImageMetadataInterface::FetchTabulatedPhysicalGain(const MetaData::
(date.tm_year == 113 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 11.73},
{"B0", 9.45}, {"B1", 9.48}, {"B2", 10.51}, {"B3", 15.71}};
{"B0", 9.47}, {"B1", 9.53}, {"B2", 10.48}, {"B3", 15.66}};
}
// After 01/03/2013
else
// From 01/03/2013 to 01/03/2014
else if ((date.tm_year == 113 && date.tm_mon >= 3) ||
(date.tm_year == 114 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 11.70},
{"B0", 9.38}, {"B1", 9.34}, {"B2", 10.46}, {"B3", 15.69}};
{"B0", 9.40}, {"B1", 9.47}, {"B2", 10.44}, {"B3", 15.62}};
}
// From 01/03/2014 to 01/03/2015
else if ((date.tm_year == 114 && date.tm_mon >= 3) ||
(date.tm_year == 115 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 11.67},
{"B0", 9.33}, {"B1", 9.39}, {"B2", 10.38}, {"B3", 15.57}};
}
// From 01/03/2015 to 01/03/2016
else if ((date.tm_year == 115 && date.tm_mon >= 3) ||
(date.tm_year == 116 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 11.64},
{"B0", 9.25}, {"B1", 9.31}, {"B2", 10.32}, {"B3", 15.51}};
}
// From 01/03/2016 to 31/12/2016
else if ((date.tm_year == 116 && date.tm_mon >= 3) ||
(date.tm_year == 116 && date.tm_mon <=12 ))
{
bandNameToPhysicalGain = { {"P", 11.61},
{"B0", 9.18}, {"B1", 9.25}, {"B2", 10.27}, {"B3", 15.46}};
}
// From 01/01/2017 to 31/12/2017
else if ((date.tm_year == 117 && date.tm_mon >= 1) ||
(date.tm_year == 117 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 11.58},
{"B0", 9.11}, {"B1", 9.17}, {"B2", 10.22}, {"B3", 15.41}};
}
// From 01/01/2018 to 31/12/2018
else if ((date.tm_year == 118 && date.tm_mon >= 1) ||
(date.tm_year == 118 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 11.55},
{"B0", 9.03}, {"B1", 9.09}, {"B2", 10.16}, {"B3", 15.36}};
}
// From 01/10/2018 to 31/12/2019
else if ((date.tm_year == 119 && date.tm_mon >= 1) ||
(date.tm_year == 119 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 11.52},
{"B0", 8.96}, {"B1", 9.01}, {"B2", 10.09}, {"B3", 15.31}};
}
// From 01/01/2020 to nowadays
else
{
bandNameToPhysicalGain = { {"P", 11.49},
{"B0", 8.91}, {"B1", 8.95}, {"B2", 10.01}, {"B3", 15.27}};
}
}
else if (sensorId == "PHR 1B")
{
if ((date.tm_year < 113) ||
(date.tm_year == 113 && date.tm_mon < 9))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 10.46}, {"B1", 10.47}, {"B2", 11.32}, {"B3", 17.21}};
{"B0", 10.37}, {"B1", 10.50}, {"B2", 11.55}, {"B3", 17.53}};
}
else if ((date.tm_year == 113 && date.tm_mon >= 9) ||
(date.tm_year == 114 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 10.29}, {"B1", 10.41}, {"B2", 11.48}, {"B3", 17.45}};
}
else if ((date.tm_year == 114 && date.tm_mon >= 3) ||
(date.tm_year == 115 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 10.22}, {"B1", 10.34}, {"B2", 11.41}, {"B3", 17.39}};
}
else if ((date.tm_year == 115 && date.tm_mon >= 3) ||
(date.tm_year == 116 && date.tm_mon < 3))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 10.12}, {"B1", 10.23}, {"B2", 11.33}, {"B3", 17.31}};
}
else if ((date.tm_year == 116 && date.tm_mon >= 3) ||
(date.tm_year == 116 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 10.04}, {"B1", 10.14}, {"B2", 11.25}, {"B3", 17.24}};
}
else if ((date.tm_year == 117 && date.tm_mon >= 1) ||
(date.tm_year == 117 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 9.96}, {"B1", 10.04}, {"B2", 11.17}, {"B3", 17.16}};
}
else if ((date.tm_year == 118 && date.tm_mon >= 1) ||
(date.tm_year == 118 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 9.87}, {"B1", 9.94}, {"B2", 11.09}, {"B3", 17.08}};
}
else if ((date.tm_year == 119 && date.tm_mon >= 1) ||
(date.tm_year == 119 && date.tm_mon <= 12))
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 9.80}, {"B1", 9.87}, {"B2", 11.02}, {"B3", 17.02}};
}
else
{
bandNameToPhysicalGain = { {"P", 12.04},
{"B0", 9.74}, {"B1", 9.81}, {"B2", 10.96}, {"B3", 16.98}};
}
}
else
{
......@@ -2217,15 +2317,33 @@ void PleiadesImageMetadataInterface::FetchSpectralSensitivity(const std::string
void PleiadesImageMetadataInterface::Parse(const MetadataSupplierInterface & mds)
{
//auto dimapV1Filename = itksys::SystemTools::GetParentDirectory(mds.GetResourceFile()) + "/PHRDIMAP.XML";
DimapMetadataHelper helper;
// Satellite ID is either PHR 1A or PHR 1B
// DimapV2 case
// Product read by the TIFF/JP2 GDAL driver
if (mds.GetAs<std::string>("", "IMAGERY/SATELLITEID").find("PHR") != std::string::npos)