diff --git a/scripts/convert to XISF b/scripts/convert to XISF
index 5c02c34..9a11d29 100644
--- a/scripts/convert to XISF
+++ b/scripts/convert to XISF
@@ -1,6 +1,8 @@
+core.log("This script convert any FITS file into XISF with ZSTD compression");
+
if(files.length == 0)
{
- core.files("No files");
+ core.log("No input files");
throw "";
}
diff --git a/scripts/example script b/scripts/example script
index 93d886f..0ffdec4 100644
--- a/scripts/example script
+++ b/scripts/example script
@@ -11,10 +11,9 @@ for(file of files)
if(file.suffix() == "fits" || file.suffix() == "fit" || file.suffix() == "xisf")
{
let keywords = file.fitsKeywords();
- let item = core.getItem(keywords);
+ let item = core.getItem(keywords, "Select keyword");
core.log("You selected keyword " + item); core.log(file.fitsKeywords());
-
- // some sample files
+
core.log("fileName() " + file.fileName());
core.log("absoluteFilePath() " + file.absoluteFilePath());
core.log("absolutePath() " + file.absolutePath());
@@ -24,6 +23,14 @@ for(file of files)
core.log("completeBase() " + file.completeBaseName());
core.log("suffix() " + file.suffix());
core.log("size() " + file.size());
+ let stats = file.stats();
+ core.log("Image statistics");
+ core.log("\tMinimum: " + stats.min);
+ core.log("\tMaximum: " + stats.max);
+ core.log("\tMedian:" + stats.median);
+ core.log("\tStandard deviation:" + stats.stddev);
+ core.log("\tMedian Absolute Deviation:" + stats.mad);
+
break;
}
}
diff --git a/scripts/median b/scripts/median
new file mode 100644
index 0000000..1bad80f
--- /dev/null
+++ b/scripts/median
@@ -0,0 +1,8 @@
+for(file of files)
+{
+ if(file.suffix() == "fits" || file.suffix() == "fit" || file.suffix() == "xisf")
+ {
+ let stats = file.stats();
+ core.log("File: \"" + file.fileName() + "\" - median: " + stats.median);
+ }
+}
diff --git a/scripts/modify FITS header b/scripts/modify FITS header
new file mode 100644
index 0000000..6edc4ee
--- /dev/null
+++ b/scripts/modify FITS header
@@ -0,0 +1,50 @@
+function checkFITS(key)
+{
+ const noEditableKey = ["SIMPLE", "BITPIX", "NAXIS", "NAXIS1", "NAXIS2", "NAXIS3", "EXTEND", "BZERO", "BSCALE"];
+ return noEditableKey.indexOf(key) < 0;
+}
+
+if(files.length == 0)
+{
+ core.log("No input files");
+ throw "";
+}
+
+let action = core.getItem(["UPDATE", "ADD", "REMOVE"], "Do you want update, add or remove record?");
+
+let modify = new FITSRecordModify();
+
+if(action == "UPDATE")
+{
+ let keywords = files[0].fitsKeywords().filter(checkFITS);
+ let keyword = core.getItem(keywords, "Select keyword to update");
+ let value = files[0].fitsValue(keyword);
+ if(isNaN(value))
+ value = core.getString("Enter new value", value);
+ else
+ value = core.getFloat("Enter new value", value);
+ modify.updateKeyword(keyword, value);
+}
+else if(action == "ADD")
+{
+ let keyword = core.getString("Enter keyword to add");
+ let value = core.getString("Enter new value");
+ keyword = keyword.toUpperCase();
+ modify.addKeyword(keyword, value);
+}
+else if(action == "REMOVE")
+{
+ let keywords = files[0].fitsKeywords().filter(checkFITS);
+ let keyword = core.getItem(keywords, "Select keyword to remove");
+ modify.removeKeyword(keyword);
+}
+
+for(file of files)
+{
+ if(file.suffix() == "fits" || file.suffix() == "fit" || file.suffix() == "xisf")
+ {
+ core.log("Modifing " + file.fileName());
+ file.modifyFITSRecords(modify);
+ }
+}
+
diff --git a/scripts/scripts.qrc b/scripts/scripts.qrc
index ba5272c..fabfd07 100644
--- a/scripts/scripts.qrc
+++ b/scripts/scripts.qrc
@@ -2,5 +2,7 @@
example script
convert to XISF
+ median
+ modify FITS header
diff --git a/space.nouspiro.tenmon.metainfo.xml b/space.nouspiro.tenmon.metainfo.xml
index c3e0461..4dcf43e 100644
--- a/space.nouspiro.tenmon.metainfo.xml
+++ b/space.nouspiro.tenmon.metainfo.xml
@@ -57,7 +57,7 @@
-
+
- Batch processing with JavaScript