JeffSeivert
Member
I have a bunch of darks that mistakenly have the OBJECT keyword as M1. Is there a way to batch edit the keyword for a group of files rather than one at a time?
Thanks,
Jeff
Thanks,
Jeff
/*
* Script to change a keyword value in a set of FITS files.
*/
var inputDirectory = "";
var outputDirectory = "";
var keywordName = "";
var oldKeywordValue = "";
var newKeywordValue = "";
// ----------------------------------------------------------------------------
if ( inputDirectory.length == 0 )
throw new Error( "Must specify an input directory" );
if ( outputDirectory.length == 0 )
throw new Error( "Must specify an output directory" );
if ( keywordName.length == 0 )
throw new Error( "Must specify a keyword name" );
if ( oldKeywordValue.length == 0 || newKeywordValue.length == 0 )
throw new Error( "Must specify old and new keyword values" );
if ( !inputDirectory.endsWith( '/' ) )
inputDirectory += '/';
if ( !outputDirectory.endsWith( '/' ) )
outputDirectory += '/';
for ( let D = searchDirectory( inputDirectory + "*.fit", false/*recursive*/ ), i = 0; i < D.length; ++i )
{
let w = ImageWindow.open( D[i] );
let k = w[0].keywords;
let found = false;
for ( let j = 0; j < k.length; ++j )
{
k[j].trim();
if ( k[j].name == keywordName )
if ( k[j].strippedValue == oldKeywordValue )
{
k[j].value = newKeywordValue;
found = true;
break;
}
}
if ( found )
{
console.writeln( "<end><cbr>" + D[i] );
w[0].keywords = k;
w[0].saveAs( outputDirectory + File.extractNameAndSuffix( D[i] ),
false/*queryOptions*/,
false/*allowMessages*/,
false/*strict*/,
true/*verifyOverwrite*/ );
}
w[0].forceClose();
}
var inputDirectory = "/path/to/images";
var outputDirectory = "/path/to/images/test";
var keywordName = "OBJECT";
var oldKeywordValue = "M1";
var newKeywordValue = "XXX";
Hi Juan!Juan Conejero said:What's the problem with the script? Have you tried it?