I have run into the 'minimum precision issue' that is discussed in https://ds.iris.edu/message-center/thread/7341/.
I have a solution. I am hoping that someone more familiar with SAC can tell me if my solution is legitimate. There is some conflicting supporting information...
(everything inside of [ ] is a SAC command/output)
Here is the error message when I read in the file, which is a full day (86400 seconds) of 250 Hz data (21600000 points).
[SAC> read /Users/Desktop/rmRespNodesTest/08242020/002.EHZ.08242020.sac
WARNING: minimum precision > sampling rate: e = 86400.000000
sampling rate (delta): 0.004000
32-bit minimum precision: 0.007812]
Following the suggestions I have found here (http://ds.iris.edu/files/sac-manual/manual/tutorial.html), I changed the NVHDR value from 6 to 7 using this command:
[SAC> chnhdr NVHDR 7]
(it seems that you can also use [CH NVDHR 7] instead but I can't tell if they have the same result...)
I then overwrite the existing file to retain the NVHDR 7 value.
[SAC> w over]
Then when I reopen the file again, it works fine and I do not get the warning message, which is great!
[SAC> read /Users/Desktop/rmRespNodesTest/08242020/002.EHZ.08242020.sac]
I thought I had it solved. But then I came across this note in the supporting documentation in the manual for 'CHNHDR' (http://ds.iris.edu/files/sac-manual/commands/chnhdr.html): "Note, in order to maintain internal consistency, the following header variables cannot be changed with CHNHDR: NVHDR, NPTS, NWFID, NORID, and NEVID."
Clearly you can use CHNHDR for NVHDR but I am wondering if doing so is corrupting my data...
I also came across this quote here (http://ds.iris.edu/files/sac-manual/manual/tutorial.html): "Switching a file from NVHDR = 6 to 7 does not magically produce a proper double-precision value. Values stored in 32 and 64 bits will only be modified when a value is changed through CHNHDR or equivalent methods."
Is what I am doing here a proper solution? Or am I corrupting my data and/or not actually achieving proper double-precision?
I have a solution. I am hoping that someone more familiar with SAC can tell me if my solution is legitimate. There is some conflicting supporting information...
(everything inside of [ ] is a SAC command/output)
Here is the error message when I read in the file, which is a full day (86400 seconds) of 250 Hz data (21600000 points).
[SAC> read /Users/Desktop/rmRespNodesTest/08242020/002.EHZ.08242020.sac
WARNING: minimum precision > sampling rate: e = 86400.000000
sampling rate (delta): 0.004000
32-bit minimum precision: 0.007812]
Following the suggestions I have found here (http://ds.iris.edu/files/sac-manual/manual/tutorial.html), I changed the NVHDR value from 6 to 7 using this command:
[SAC> chnhdr NVHDR 7]
(it seems that you can also use [CH NVDHR 7] instead but I can't tell if they have the same result...)
I then overwrite the existing file to retain the NVHDR 7 value.
[SAC> w over]
Then when I reopen the file again, it works fine and I do not get the warning message, which is great!
[SAC> read /Users/Desktop/rmRespNodesTest/08242020/002.EHZ.08242020.sac]
I thought I had it solved. But then I came across this note in the supporting documentation in the manual for 'CHNHDR' (http://ds.iris.edu/files/sac-manual/commands/chnhdr.html): "Note, in order to maintain internal consistency, the following header variables cannot be changed with CHNHDR: NVHDR, NPTS, NWFID, NORID, and NEVID."
Clearly you can use CHNHDR for NVHDR but I am wondering if doing so is corrupting my data...
I also came across this quote here (http://ds.iris.edu/files/sac-manual/manual/tutorial.html): "Switching a file from NVHDR = 6 to 7 does not magically produce a proper double-precision value. Values stored in 32 and 64 bits will only be modified when a value is changed through CHNHDR or equivalent methods."
Is what I am doing here a proper solution? Or am I corrupting my data and/or not actually achieving proper double-precision?
-
Dear Loring Schaible,
Sorry for the confusion.
Sac files, version 6, are limited to 32 bits (timing values stored as floats or real*4). Version 7 files have timing values stored in 64 bits (double precision or real*8).
Sac is reporting that any timing values near the end of your file *may* be not precise. The data is still fine it is just that you might not have the desired precision for timing marks. The ‘e’ value is considered a timing mark.
The note:
"Note, in order to maintain internal consistency, the following header variables cannot be changed with CHNHDR: NVHDR, NPTS, NWFID, NORID, and NEVID.”
This statement is correct with the exception of changing between header version 6 and 7.
The file you are working with at 250 Hz for a full day is one of the primary reasons for the Version 7 header sac files.
That begin said, if you made timing picks/marks with the file at version 6 and then transfer them to version 7, those timing values will still be incorrect. You would need to change to version 7, then make the timing marks.
The header value ‘e’ is automatically computed, so you should not need to worry about it specifically.
If you have questions, please let me know.
Thanks
Brian Savage
On Apr 22, 2022, at 2:56 PM, Loring Schaible (via IRIS) <sac-help-bounce<at>lists.ds.iris.edu> wrote:
I have run into the 'minimum precision issue' that is discussed in https://urldefense.proofpoint.com/v2/url?u=https-3A__ds.iris.edu_message-2Dcenter_thread_7341_&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=r8PMw9MGQnTqHD5JRDkAfovHT_qZVMdRcvPBVMGXd00&e= .
I have a solution. I am hoping that someone more familiar with SAC can tell me if my solution is legitimate. There is some conflicting supporting information...
(everything inside of [ ] is a SAC command/output)
Here is the error message when I read in the file, which is a full day (86400 seconds) of 250 Hz data (21600000 points).
[SAC> read /Users/Desktop/rmRespNodesTest/08242020/002.EHZ.08242020.sac
WARNING: minimum precision > sampling rate: e = 86400.000000
sampling rate (delta): 0.004000
32-bit minimum precision: 0.007812]
Following the suggestions I have found here (https://urldefense.proofpoint.com/v2/url?u=http-3A__ds.iris.edu_files_sac-2Dmanual_manual_tutorial.html&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=AtQ14LGBTFN9USS9UVmLN2VhUPI11r3ZXzmX1eUwA5A&e= ), I changed the NVHDR value from 6 to 7 using this command:
[SAC> chnhdr NVHDR 7]
(it seems that you can also use [CH NVDHR 7] instead but I can't tell if they have the same result...)
I then overwrite the existing file to retain the NVHDR 7 value.
[SAC> w over]
Then when I reopen the file again, it works fine and I do not get the warning message, which is great!
[SAC> read /Users/Desktop/rmRespNodesTest/08242020/002.EHZ.08242020.sac]
I thought I had it solved. But then I came across this note in the supporting documentation in the manual for 'CHNHDR' (https://urldefense.proofpoint.com/v2/url?u=http-3A__ds.iris.edu_files_sac-2Dmanual_commands_chnhdr.html&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=TJZMLhubEGst2321Ch58jgNu8HHU1gkP6IQ9GsxIU2I&e= ): "Note, in order to maintain internal consistency, the following header variables cannot be changed with CHNHDR: NVHDR, NPTS, NWFID, NORID, and NEVID."
Clearly you can use CHNHDR for NVHDR but I am wondering if doing so is corrupting my data...
I also came across this quote here (https://urldefense.proofpoint.com/v2/url?u=http-3A__ds.iris.edu_files_sac-2Dmanual_manual_tutorial.html&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=AtQ14LGBTFN9USS9UVmLN2VhUPI11r3ZXzmX1eUwA5A&e= ): "Switching a file from NVHDR = 6 to 7 does not magically produce a proper double-precision value. Values stored in 32 and 64 bits will only be modified when a value is changed through CHNHDR or equivalent methods."
Is what I am doing here a proper solution? Or am I corrupting my data and/or not actually achieving proper double-precision?
----------------------
SAC Help
Topic home: https://urldefense.proofpoint.com/v2/url?u=http-3A__ds.iris.edu_message-2Dcenter_topic_sac-2Dhelp_&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=qMV1vLhwImpclyo2wRGc6e8IPwWs9C_vkLn_KFfwXvI&e= | Unsubscribe: sac-help-unsubscribe<at>lists.ds.iris.edu
Sent from the IRIS Message Center (https://urldefense.proofpoint.com/v2/url?u=http-3A__ds.iris.edu_message-2Dcenter_&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=RH-EKvJhRfA6BFF2OBggUM5LkcD74DZwPr1-w2gJaAE&e= )
Update subscription preferences at https://urldefense.proofpoint.com/v2/url?u=http-3A__ds.iris.edu_account_profile_&d=DwICaQ&c=dWz0sRZOjEnYSN4E4J0dug&r=xlrnQuY_RWoRIvnCDJ5AfQ&m=Bsi-Vls5XQAmeSOgpZVn-FRjSPmlIM-qtK_8zC9z3C9hCEGMRhMB--Kid9tqBI33&s=YR7sOKsh556FkE7UplxBNJM_5UmAHDmGqqYgpyNBzlY&e=
-
Hi Brian,
Thank you for the explanation. It seems that my approach here is fine then. I haven't made any timing picks in the V6. As long as I change it to V7 first and then do everything, things should be okay. Is that right?
You said: "Sac is reporting that any timing values near the end of your file *may* be not precise." This is when SAC opens the V6 file, correct? When I convert to V7, the precision issues are alleviated, correct? When it has been converted to V7, the timing values throughout the whole day of data is precise, right?
Thanks again for the help!
-