Jump to content
PDS Geosciences Node Community

Recommended Posts

Posted

Hi All,

What I am seeking to do is to replicate/verify the calculation of the various bands contained within su164j MTRDR files and apply the same calculations to spectral data of minerals from a lab so I can compare like to like thereafter. I can replicate all of the MTRDR bands I have selected from the su164j file (with convincing accuracy) via the spectral data contained in the if164j file – except for BD1900_2 and BD1900r2 and thus the reason for my post.

I am wondering if anyone else has tried to replicate the same and found an error with the specified formula? I have found an error in the CRISM DPSIS when trying to replicate other bands via cross referencing different sources… but this one I can’t resolve.

I've detailed all my calculations:

  1. The formula

    From the CRISM DPSIS document:

    image.png.212a9f8d69211c6c48c438c268ead054.png
     
  2. The data

    From the file frt0000b385_07_su164j_mtr3.img and cell reference [580,595] I get BD1900_2 = -0.009848237.

    I am now going to try and replicate this result using the spectral data contained within frt0000b385_07_if164j_mtr3.img.
     
  3. Kernel Width

    As I understand it, I need to retrieve the five closest wavelengths to 1850, 1930, 1985 and 2067, extract the reflectance values and calculate the median, this is as follows:

    image.png.3b1bd82f977b1f4a2902e80223d513c8.png
     
  4. Calculating "a" and "b" values:

    The formula for this is:

    image.png.bb1ae66a6e3c786a5095ec7700d5efff.png
    However, I could interpret this in 3 ways:|
    1) Ideal - Stick strictly to the formula in the CRISM DPSIS document and use the wavelengths of 1850, 1930, 1985 and 2067; OR
    2) Closest to Ideal - Use the wavelength closest to those ideal wavelengths, so for example instead of 1850 I would use 1848.95; OR
    3) Median - Use the wavelength corresponding to where the median reflectance value come from in the case of R1850:5 that would be 1842.34.

    Calculating all 3 possibilities gives:

    image.png.46a92a285db2bc65b85bf84ac566ac4b.png
     
  5. Calculating BD1900_2
    Following the formula for BD1900_2 from there, with the 3 possibilities for the calculation of "a" and "b" gives:
    image.png.619919dc0fe5aa9b9f5be9342e3ee285.png
     
  6. Results discussion

    As per the file frt0000b385_07_su164j_mtr3.img at cell reference [580,595], the value of BD1900_2 is -0.009848237.

    Trying to calculate the same, but from first principals via the spectral data contained in the file frt0000b385_07_if164j_mtr3.img does not give the same result - not even the same sign... in fact for any cell there is a concerning difference between the BD1900_2 values in the su164j file and that calculated from the if164j.

    With other bands, I can pretty much reproduce nearly identical result (to 6-7 decimal places typically), which leads me to ask:
    - Is there a typo or something in the stated formula for BD1900_2 that is preventing me from replicating the same?


Attached are my excel workings if someone can assist.

Note: I am a Financial Math Masters student whose designated research project is identifying minerals on Mars via machine learning so if my lingo is not up to scratch, it's because just 5 weeks ago I didn't have any clue about spectral data!

Thank you!!

BD1900_2.xlsx

Posted

Upon looking in this further, all BD1900_2 seems to be returning is BD1930:

image.png.d899d4b35f12e5392875a0ad09e7a4b2.png

 

image.png.d81131d3d65fd53ccfc27ec78911be14.png


The error between BD1900_2 as per the CRISM DPSIS documentation is this:

image.png.1070920f0a74bd14558701a1d16f71a3.png

But when I just return BD1930 instead:

image.png.65905bdc4357eacb92dfd0f8083eb610.png

 

Is anyone able to verify my suspicion.

The next question is how is BD1900r2 really calculated as that one is going to be a lot hard to tease out?

Posted

Hi Tejay,

 

Thanks for bringing this to our attention! There's definitely something odd going on with those two parameters in the SU file you referenced, and I agree with your initial assessment that the BD1900_2 values reported look like they're reporting BD1930, instead. I'll look into this in more detail, and report back here once I figure out what's going on.

 

John

Posted

Hi Tejay,

 

I've confirmed your assessment that the BD1900_2 values reported are actually calculations for BD1930, instead. I've also tracked down the issue with BD1900R2 - in the SU file you referenced, the slopes for RC#### were calculated using R1815 and R2132, instead of R1850 and R2060.

 

Your calculations for BD1900_2 and BD1900R2 are correct, so I would recommend you keep using those. I'll reach out to the CRISM team regarding these issues you identified in the parameter calculations so we can get them corrected.

 

John

Posted

Hi John,

Thanks for confirming and letting me know about BD1900_2.

Whilst we are on this topic - for MIN2200, there is no stated kernel width for R2210 in the documentation:

image.png.7a7bbd666b9c6fc0fbc38e06da284020.png


I found a kernel width of 3 is required to replicate the results, so either that needs to be added to the documentation or maybe the calculation is a little amiss there.

Thanks, and have a good weekend.

Tejay

Posted
On 3/13/2025 at 11:10 PM, John Christian said:

I've also tracked down the issue with BD1900R2 - in the SU file you referenced, the slopes for RC#### were calculated using R1815 and R2132, instead of R1850 and R2060.

Hi John,

Once again thanks - I was just following up on this - I can also confirm that to replicate BD1900R2 with these slopes (which I will revert back to 1850/2060 once I've verified the rest) I needed to use:

  • A kernel width of 5 for the anchor points of R1815 and R2132.
  • A kernel width of 3 for all the others.

Do you know what the correct kernel widths should also be as the documentation says a kernel width of one (which I take to mean the closest frequency to):

image.png.1054d5bab11ad469279ddbdb34e796b0.png

I've got my 28 summary products I want now so this is as far as my verification goes :).

Thank you

Tejay

Posted

Hi Tejay,

 

For MIN2200 - yes, that currently uses a kernel width of 3 for R2210. That looks like a typo in the documentation (they have R2120 listed twice), so I'll pass it along to the team to get fixed.

 

For BD1900R2 - I'll check with the CRISM team on what kernel widths were used to generate the SU product. The calculations that I can see suggest a kernel width of 5 for the two anchor points and a kernel width of 1 for all the others, but it looks to me like the kernel width of 3 you suggest does a slightly better job of reproducing the data in the SU product.

 

John

Posted

Hi Tejay,

 

I've spoken with the CRISM team about this issue, and they let me know that they updated the formulations of the BD1900_2 and BD1900R2 parameters in order to make the products less noisy. The preferred formulations these parameters for hyperspectral data are now:

  • BD1900_2: just BD1930 with slopes anchored at 1850 and 2067, with kernels of 5 for all wavelengths
  • BD1900R2: as listed in the SIS except with slopes anchored at 1815 and 2132, with kernels of 5 for the anchors and 1 for all other wavelengths

I'll be working with the CRISM team to make sure the documentation gets updated to reflect this.

 

As an additional note, many of the parameters have slightly different formulations for hyperspectral vs. multispectral data. In most cases, the main difference is kernel width (multispectral products always use a kernel width of 1, since there are fewer wavelengths available), but the following products all have other differences: RPEAK1, BDI1000VIS, BDI1000IR, VAR, BD1500_2, BD1900_2, BD1900R2, BDI2000, BD2100, BD2100_2, BD3400, BD3400_2. I'll be working with the CRISM team to make sure these differences are fully documented in the SIS.

 

Best,

John

  • 5 weeks later...
Posted

Thank you for following up on all this John.

We had quite a bit of success using a Self Organised Map with these Summary Products as features to cluster and then identify minerals on Mars with relation to the MRO CRISM Type Spectra Library to identify those clusters. If our paper gets published (I am a Master's student so not my decision), I'll share it. In particular the Self Organised Map not only clusters the data but also preserved topology of the data - which had some interesting consequences - and something other clustering algorithms don't preserve.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...