Added try/catch to ignore problems when reading the header of the cbf

...
This commit is contained in:
ebner 2014-03-28 16:27:55 +01:00
parent 95d13f0a20
commit e2c0404e0c
2 changed files with 21 additions and 6 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>ch.psi.imagej</groupId>
<artifactId>ch.psi.imagej.cbf</artifactId>
<version>0.0.2</version>
<version>0.0.3</version>
<dependencies>
<dependency>

View File

@ -34,6 +34,8 @@ import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -53,6 +55,10 @@ import javax.imageio.stream.ImageInputStream;
* types.
*/
public class CbfImageReader extends ImageReader {
private static final Logger logger = Logger.getLogger(CbfImageReader.class.getName());
private CbfMetadata metadata;
public CbfImageReader(ImageReaderSpi originatingProvider) {
@ -557,7 +563,13 @@ public class CbfImageReader extends ImageReader {
CbfMetadata mdata = new CbfMetadata();
readMetadataIdentifier(stream, mdata);
readMetadataDataBlockName(stream, mdata);
try{
readMetadataHeader(stream, mdata);
}
catch(Exception e){
// We actuall do not care about the header content ...
logger.log(Level.INFO, "Problem reading header ... continue with mini header", e);
}
readMetadataMimeMiniHeader(stream, mdata);
metadata = mdata;
}
@ -593,9 +605,10 @@ public class CbfImageReader extends ImageReader {
throw new IIOException("Expected _array_data.header_convention tag");
}
String convention = trimQuotes(line.substring("_array_data.header_convention ".length()));
if (!convention.startsWith("SLS_1.")) {
throw new IIOException("Unrecognized header convention: " + convention);
}
// FIXME
// if (!convention.startsWith("SLS_1.")) {
// throw new IIOException("Unrecognized header convention: " + convention);
// }
mdata.setHeaderConvention(convention);
if (!convention.equals("SLS_1.0")) {
processWarningOccurred("Unrecognized header convention: " + convention);
@ -618,8 +631,9 @@ public class CbfImageReader extends ImageReader {
String value = line.substring("# Detector:".length());
mdata.setHeaderDetector(parseHeaderDetector(value));
} else if (datePattern.matcher(line).lookingAt()) {
String value = line.substring("# ".length());
mdata.setHeaderDate(parseHeaderDate(value));
// FIXME
// String value = line.substring("# ".length());
// mdata.setHeaderDate(parseHeaderDate(value));
} else if (line.startsWith("# Pixel_size ")) {
String value = line.substring("# Pixel_size ".length());
mdata.setHeaderPixelSize(parseHeaderPixelSize(value));
@ -717,6 +731,7 @@ public class CbfImageReader extends ImageReader {
}
}
} catch (IOException e) {
e.printStackTrace();
throw new IIOException("Error reading header", e);
}
}