diff --git a/CMakeLists.txt b/CMakeLists.txt index eb0c9786..781520f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,7 @@ if(ITK_VERSION_MAJOR EQUAL 4) elseif(ITK_VERSION_MAJOR EQUAL 5) #message(STATUS "Using ITK v5") # Put ITK 5 Specific Modyles in here - set( ADDITIONAL_ITK_MODULES ${ADDITIONAL_ITK_MODULES} Montage) + set( ADDITIONAL_ITK_MODULES ${ADDITIONAL_ITK_MODULES} Montage TotalVariation) endif() option(${PLUGIN_NAME}_ENABLE_SCIFIO "Enable SCIFIO ITK Modules" OFF) diff --git a/Documentation/ITKImageProcessingFilters/ITKProxTVImage.md b/Documentation/ITKImageProcessingFilters/ITKProxTVImage.md new file mode 100644 index 00000000..0a7adf15 --- /dev/null +++ b/Documentation/ITKImageProcessingFilters/ITKProxTVImage.md @@ -0,0 +1,56 @@ +ITK::Prox T V Image Filter (KW) {#itkproxtvimage} +============== + +## Group (Subgroup) ## + +ITKImageProcessing (ITKImageProcessing) + +## Description ## + +Applies a total variation noise reduction filter to an image. + +ProxTVImageFilter from https://github.com/InsightSoftwareConsortium/ITKTotalVariation + +## Parameters ## + +| Name | Type | Description | +|------|------|-------------| +| MaximumNumberOfIterations | double| Get and set the maximum number of iterations. | +| Weights | FloatVec3Type| N/A | +| Norms | FloatVec3Type| N/A | + + +## Required Geometry ## + +Image + +## Required Objects ## + +| Kind | Default Name | Type | Component Dimensions | Description | +|------|--------------|------|----------------------|-------------| +| **Cell Attribute Array** | None | N/A | (1) | Array containing input image + +## Created Objects ## + +| Kind | Default Name | Type | Component Dimensions | Description | +|------|--------------|------|----------------------|-------------| +| **Cell Attribute Array** | None | | (1) | Array containing filtered image + +## References ## + +[1] T.S. Yoo, M. J. Ackerman, W. E. Lorensen, W. Schroeder, V. Chalana, S. Aylward, D. Metaxas, R. Whitaker. Engineering and Algorithm Design for an Image Processing API: A Technical Report on ITK - The Insight Toolkit. In Proc. of Medicine Meets Virtual Reality, J. Westwood, ed., IOS Press Amsterdam pp 586-592 (2002). +[2] H. Johnson, M. McCormick, L. Ibanez. The ITK Software Guide: Design and Functionality. Fourth Edition. Published by Kitware Inc. 2015 ISBN: 9781-930934-28-3 +[3] H. Johnson, M. McCormick, L. Ibanez. The ITK Software Guide: Introduction and Development Guidelines. Fourth Edition. Published by Kitware Inc. 2015 ISBN: 9781-930934-27-6 + +## Example Pipelines ## + + + +## License & Copyright ## + +Please see the description file distributed with this plugin. + +## DREAM3D Mailing Lists ## + +If you need more help with a filter, please consider asking your question on the DREAM3D Users mailing list: +https://groups.google.com/forum/?hl=en#!forum/dream3d-users diff --git a/ITKImageProcessingFilters/ITKProxTVImage.cpp b/ITKImageProcessingFilters/ITKProxTVImage.cpp new file mode 100644 index 00000000..415cef89 --- /dev/null +++ b/ITKImageProcessingFilters/ITKProxTVImage.cpp @@ -0,0 +1,167 @@ +// File automatically generated + +/* + * Your License or Copyright can go here + */ + +#include "ITKImageProcessing/ITKImageProcessingFilters/ITKProxTVImage.h" +#include "SIMPLib/ITK/SimpleITKEnums.h" + +#include "SIMPLib/Common/Constants.h" +#include "SIMPLib/FilterParameters/AbstractFilterParametersReader.h" +#include "SIMPLib/FilterParameters/DataArraySelectionFilterParameter.h" +#include "SIMPLib/FilterParameters/LinkedBooleanFilterParameter.h" +#include "SIMPLib/FilterParameters/SeparatorFilterParameter.h" +#include "SIMPLib/FilterParameters/StringFilterParameter.h" + +#include "SIMPLib/Geometry/ImageGeom.h" + +#include "SIMPLib/ITK/Dream3DTemplateAliasMacro.h" +#include "SIMPLib/ITK/itkDream3DImage.h" + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +ITKProxTVImage::ITKProxTVImage() +{ + m_MaximumNumberOfIterations = StaticCastScalar(10u); + m_Weights = CastStdToVec3, FloatVec3Type, float>(std::vector(3, 1.0)); + m_Norms = CastStdToVec3, FloatVec3Type, float>(std::vector(3, 1.0)); + + setupFilterParameters(); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +ITKProxTVImage::~ITKProxTVImage() = default; + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +void ITKProxTVImage::setupFilterParameters() +{ + FilterParameterVectorType parameters; + + parameters.push_back(SIMPL_NEW_DOUBLE_FP("MaximumNumberOfIterations", MaximumNumberOfIterations, FilterParameter::Parameter, ITKProxTVImage)); + parameters.push_back(SIMPL_NEW_FLOAT_VEC3_FP("Weights", Weights, FilterParameter::Parameter, ITKProxTVImage)); + parameters.push_back(SIMPL_NEW_FLOAT_VEC3_FP("Norms", Norms, FilterParameter::Parameter, ITKProxTVImage)); + + + QStringList linkedProps; + linkedProps << "NewCellArrayName"; + parameters.push_back(SIMPL_NEW_LINKED_BOOL_FP("Save as New Array", SaveAsNewArray, FilterParameter::Parameter, ITKProxTVImage, linkedProps)); + parameters.push_back(SeparatorFilterParameter::New("Cell Data", FilterParameter::RequiredArray)); + { + DataArraySelectionFilterParameter::RequirementType req = + DataArraySelectionFilterParameter::CreateRequirement(SIMPL::Defaults::AnyPrimitive, SIMPL::Defaults::AnyComponentSize, AttributeMatrix::Type::Cell, IGeometry::Type::Image); + parameters.push_back(SIMPL_NEW_DA_SELECTION_FP("Attribute Array to filter", SelectedCellArrayPath, FilterParameter::RequiredArray, ITKProxTVImage, req)); + } + parameters.push_back(SeparatorFilterParameter::New("Cell Data", FilterParameter::CreatedArray)); + parameters.push_back(SIMPL_NEW_STRING_FP("Filtered Array", NewCellArrayName, FilterParameter::CreatedArray, ITKProxTVImage)); + + setFilterParameters(parameters); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +void ITKProxTVImage::readFilterParameters(AbstractFilterParametersReader* reader, int index) +{ + reader->openFilterGroup(this, index); + setSelectedCellArrayPath(reader->readDataArrayPath("SelectedCellArrayPath", getSelectedCellArrayPath())); + setNewCellArrayName(reader->readString("NewCellArrayName", getNewCellArrayName())); + setSaveAsNewArray(reader->readValue("SaveAsNewArray", getSaveAsNewArray())); + setMaximumNumberOfIterations(reader->readValue("MaximumNumberOfIterations", getMaximumNumberOfIterations())); + setWeights(reader->readFloatVec3("Weights", getWeights())); + setNorms(reader->readFloatVec3("Norms", getNorms())); + + reader->closeFilterGroup(); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +template void ITKProxTVImage::dataCheck() +{ + clearErrorCode(); + clearWarningCode(); + + // Check consistency of parameters + this->CheckIntegerEntry(m_MaximumNumberOfIterations, "MaximumNumberOfIterations", 1); + this->CheckVectorEntry(m_Weights, "Weights", 0); + this->CheckVectorEntry(m_Norms, "Norms", 0); + + ITKImageProcessingBase::dataCheck(); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +void ITKProxTVImage::dataCheckInternal() +{ + Dream3DArraySwitchMacro(this->dataCheck, getSelectedCellArrayPath(), -4); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- + +template void ITKProxTVImage::filter() +{ + typedef itk::Dream3DImage InputImageType; + typedef itk::Dream3DImage OutputImageType; + // define filter + typedef itk::ProxTVImageFilter FilterType; + typename FilterType::Pointer filter = FilterType::New(); + filter->SetMaximumNumberOfIterations(static_cast(m_MaximumNumberOfIterations)); + filter->SetWeights(CastVec3ToITK(m_Weights, FilterType::ArrayType::Dimension)); + filter->SetNorms(CastVec3ToITK(m_Norms, FilterType::ArrayType::Dimension)); + this->ITKImageProcessingBase::filter(filter); + +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +void ITKProxTVImage::filterInternal() +{ + Dream3DArraySwitchMacro(this->filter, getSelectedCellArrayPath(), -4); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +AbstractFilter::Pointer ITKProxTVImage::newFilterInstance(bool copyFilterParameters) const +{ + ITKProxTVImage::Pointer filter = ITKProxTVImage::New(); + if(copyFilterParameters) + { + copyFilterParameterInstanceVariables(filter.get()); + } + return filter; +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +const QString ITKProxTVImage::getHumanLabel() const +{ + return "ITK::Prox T V Image Filter"; +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +const QUuid ITKProxTVImage::getUuid() +{ + return QUuid("{d3856d4c-5651-5eab-8740-489a87fa8bdd}"); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +const QString ITKProxTVImage::getSubGroupName() const +{ + return "ITK NoModule"; +} diff --git a/ITKImageProcessingFilters/ITKProxTVImage.h b/ITKImageProcessingFilters/ITKProxTVImage.h new file mode 100644 index 00000000..b5395d40 --- /dev/null +++ b/ITKImageProcessingFilters/ITKProxTVImage.h @@ -0,0 +1,111 @@ +// File automatically generated + +/* + * Your License or Copyright can go here + */ +#pragma once + + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winconsistent-missing-override" +#endif + +#include "ITKImageProcessingBase.h" + +#include "SIMPLib/Common/SIMPLibSetGetMacros.h" +#include "SIMPLib/SIMPLib.h" + +// Auto includes +#include +#include +#include + + +/** + * @brief The ITKProxTVImage class. See [Filter documentation](@ref ITKProxTVImage) for details. + */ +class ITKProxTVImage : public ITKImageProcessingBase +{ + Q_OBJECT + +public: + SIMPL_SHARED_POINTERS(ITKProxTVImage) + SIMPL_FILTER_NEW_MACRO(ITKProxTVImage) + SIMPL_TYPE_MACRO_SUPER_OVERRIDE(ITKProxTVImage, AbstractFilter) + + ~ITKProxTVImage() override; + + SIMPL_FILTER_PARAMETER(double, MaximumNumberOfIterations) + Q_PROPERTY(double MaximumNumberOfIterations READ getMaximumNumberOfIterations WRITE setMaximumNumberOfIterations) + + SIMPL_FILTER_PARAMETER(FloatVec3Type, Weights) + Q_PROPERTY(FloatVec3Type Weights READ getWeights WRITE setWeights) + + SIMPL_FILTER_PARAMETER(FloatVec3Type, Norms) + Q_PROPERTY(FloatVec3Type Norms READ getNorms WRITE setNorms) + + + /** + * @brief newFilterInstance Reimplemented from @see AbstractFilter class + */ + AbstractFilter::Pointer + newFilterInstance(bool copyFilterParameters) const override; + + /** + * @brief getHumanLabel Reimplemented from @see AbstractFilter class + */ + const QString getHumanLabel() const override; + + /** + * @brief getSubGroupName Reimplemented from @see AbstractFilter class + */ + const QString getSubGroupName() const override; + + /** + * @brief getUuid Return the unique identifier for this filter. + * @return A QUuid object. + */ + const QUuid getUuid() override; + + /** + * @brief setupFilterParameters Reimplemented from @see AbstractFilter class + */ + void setupFilterParameters() override; + + /** + * @brief readFilterParameters Reimplemented from @see AbstractFilter class + */ + void readFilterParameters(AbstractFilterParametersReader * reader, int index) override; + +protected: + ITKProxTVImage(); + + /** + * @brief dataCheckInternal overloads dataCheckInternal in ITKImageBase and calls templated dataCheck + */ + void dataCheckInternal() override; + + /** + * @brief dataCheck Checks for the appropriate parameter values and availability of arrays + */ + template void dataCheck(); + + /** + * @brief filterInternal overloads filterInternal in ITKImageBase and calls templated filter + */ + void filterInternal() override; + + /** + * @brief Applies the filter + */ + template void filter(); + +private: + ITKProxTVImage(const ITKProxTVImage&) = delete; // Copy Constructor Not Implemented + void operator=(const ITKProxTVImage&) = delete; // Move assignment Not Implemented +}; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif diff --git a/ITKImageProcessingFilters/SourceList.cmake b/ITKImageProcessingFilters/SourceList.cmake index aec6673b..5d2795fb 100644 --- a/ITKImageProcessingFilters/SourceList.cmake +++ b/ITKImageProcessingFilters/SourceList.cmake @@ -151,6 +151,7 @@ if(NOT ITKImageProcessing_LeanAndMean) ITKFFTNormalizedCorrelationImage ITKVectorRescaleIntensityImage ITKPatchBasedDenoisingImage + ITKProxTVImage ) endif() diff --git a/Test/CMakeLists.txt b/Test/CMakeLists.txt index 17273b9f..6eac48a9 100644 --- a/Test/CMakeLists.txt +++ b/Test/CMakeLists.txt @@ -126,6 +126,7 @@ if(NOT ITKImageProcessing_LeanAndMean) ITKFFTNormalizedCorrelationImageTest ITKVectorRescaleIntensityImageTest ITKPatchBasedDenoisingImageTest + ITKProxTVImageTest ) endif() diff --git a/Test/ITKProxTVImageTest.cpp b/Test/ITKProxTVImageTest.cpp new file mode 100644 index 00000000..9591b730 --- /dev/null +++ b/Test/ITKProxTVImageTest.cpp @@ -0,0 +1,78 @@ +// File automatically generated + +// ----------------------------------------------------------------------------- +// Insert your license & copyright information here +// ----------------------------------------------------------------------------- + +#include "ITKTestBase.h" +// Auto includes +#include +#include + + +class ITKProxTVImageTest : public ITKTestBase +{ + +public: + ITKProxTVImageTest() + { + } + virtual ~ITKProxTVImageTest() + { + } + + int TestITKProxTVImagedefaultsTest() +{ + QString input_filename = UnitTest::DataDir + QString("/Data/JSONFilters/Input/VM1111Shrink-RGBFloat.nrrd"); + DataArrayPath input_path("TestContainer", "TestAttributeMatrixName", "TestAttributeArrayName"); + DataContainerArray::Pointer containerArray = DataContainerArray::New(); + this->ReadImage(input_filename, containerArray, input_path); + QString filtName = "ITKProxTVImage"; + FilterManager* fm = FilterManager::Instance(); + IFilterFactory::Pointer filterFactory = fm->getFactoryFromClassName(filtName); + DREAM3D_REQUIRE_NE(filterFactory.get(), 0); + AbstractFilter::Pointer filter = filterFactory->create(); + QVariant var; + bool propWasSet; + var.setValue(input_path); + propWasSet = filter->setProperty("SelectedCellArrayPath", var); + DREAM3D_REQUIRE_EQUAL(propWasSet, true); + var.setValue(false); + propWasSet = filter->setProperty("SaveAsNewArray", var); + DREAM3D_REQUIRE_EQUAL(propWasSet, true); + filter->setDataContainerArray(containerArray); + filter->execute(); + DREAM3D_REQUIRED(filter->getErrorCode(), >=, 0); + DREAM3D_REQUIRED(filter->getWarningCode(), >=, 0); + WriteImage("ITKProxTVImagedefaults.nrrd", containerArray, input_path); + QString baseline_filename = UnitTest::DataDir + QString("/Data/JSONFilters/Baseline/BasicFilters_ProxTVImageFilter_defaults.nrrd"); + DataArrayPath baseline_path("BContainer", "BAttributeMatrixName", "BAttributeArrayName"); + this->ReadImage(baseline_filename, containerArray, baseline_path); + int res = this->CompareImages(containerArray, input_path, baseline_path, 0.0); + DREAM3D_REQUIRE_EQUAL(res, 0); + return 0; +} + + + + // ----------------------------------------------------------------------------- + // + // ----------------------------------------------------------------------------- + void operator()() override + { + int err = EXIT_SUCCESS; + + DREAM3D_REGISTER_TEST(this->TestFilterAvailability("ITKProxTVImage")); + + DREAM3D_REGISTER_TEST( TestITKProxTVImagedefaultsTest()); + + if(SIMPL::unittest::numTests == SIMPL::unittest::numTestsPass) + { + DREAM3D_REGISTER_TEST(this->RemoveTestFiles()) + } + } + +private: + ITKProxTVImageTest(const ITKProxTVImageTest&); // Copy Constructor Not Implemented + void operator=(const ITKProxTVImageTest&); // Operator '=' Not Implemented +}; diff --git a/Test/TestFiles/_meta.xml b/Test/TestFiles/_meta.xml index 44f66dd0..e5175267 100755 --- a/Test/TestFiles/_meta.xml +++ b/Test/TestFiles/_meta.xml @@ -1,2454 +1,2454 @@ - - - - <__Version>536875008 - 140 - Image - 1546 - 0 - - 530 - 0 - - 1549 - 0 - - 1550 - 0 - - 1551 - 0 - 05MAR09_run2_64-Raw.bmp - 1553 - 0 - - 261 - 0 - - 1537 - 0 - - 1538 - 0 - - 1540 - 0 - - 1539 - 0 - - 1542 - 0 - - 1800 - 0 - - 1801 - 0 - - 1802 - 0 - - 1803 - 0 - - 1805 - 0 - - 1806 - 0 - - 1804 - 0 - - 1795 - 0 - - 1796 - 0 - - 257 - 0 - 95 - 513 - 0 - 6 - 519 - 0 - 6 - 517 - 0 - 2520 - 515 - 0 - 2808 - 516 - 0 - 8 - 518 - 0 - 76 - 770 - 0 - 1.05596620908131 - 769 - 0 - 2661.0348468849 - 771 - 0 - 76 - 773 - 0 - 1.05596620908131 - 772 - 0 - 2965.15311510032 - 774 - 0 - 0 - 776 - 0 - 1 - 775 - 0 - - 777 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 1 - 262 - 0 - 45035616 - 532 - 0 - - 20478 - 0 - 0 - 2823 - 0 - 0 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 62049.5 - 2073 - 0 - 52194.75 - 2074 - 0 - 12:00:00 AM - 300 - 0 - 12:00:00 AM - 265 - 0 - 12:00:00 AM - 266 - 0 - 12:00:00 AM - 267 - 0 - 12:00:00 AM - 268 - 0 - 0 - 2071 - 0 - 0 - 333 - 0 - 0 - 334 - 0 - 0 - 2817 - 0 - 0 - 2818 - 0 - 3/5/2009 2:03:56 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 62049.5 - 2841 - 0 - 52194.75 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2528.157 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 2 - 2838 - 0 - 3 - 2839 - 0 - Administrator - 1794 - 0 - 39877.5860635726 - 1047 - 0 - - - <__Version>536875010 - Scaling120 - 0 - 1.05596620908131 - 76 - - 0 - 0 - 1.05596620908131 - 76 - - 0 - 0 - 1 - 0 - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - {04B3BCCA-84C1-11D5-960F-0001021EF207} - <__Version>536875008 - 20 - - 1546 - 137 - - 530 - 129 - - 1549 - 137 - - 1550 - 137 - - 1551 - 137 - - 1553 - 137 - Pixel - 1537 - 0 - - 1538 - 0 - - 1540 - 0 - - 1539 - 0 - - 1542 - 0 - - 1800 - 0 - - 1801 - 0 - - 1802 - 0 - - 1803 - 0 - - 1805 - 0 - - 1806 - 0 - - 1804 - 0 - - 1795 - 0 - - 1796 - 0 - - - - - <__Version>536875008 - 105 - - 1553 - 0 - - 20478 - 0 - - 257 - 0 - 1292 - 515 - 0 - 968 - 516 - 0 - 8 - 518 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 7504000 - 532 - 0 - 0 - 2823 - 0 - 0 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 62049.5 - 2073 - 0 - 52194.75 - 2074 - 0 - 12:00:00 AM - 300 - 0 - 12:00:00 AM - 265 - 0 - 12:00:00 AM - 266 - 0 - 12:00:00 AM - 267 - 0 - 12:00:00 AM - 268 - 0 - 0 - 2071 - 0 - 0 - 333 - 0 - 0 - 334 - 0 - 1 - 262 - 0 - 0 - 2817 - 0 - 0 - 2818 - 0 - 3/5/2009 2:03:56 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 62049.5 - 2841 - 0 - 52194.75 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2528.157 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 39877.5860635726 - 1047 - 0 - - - - - <__Version>536875008 - 105 - - 1553 - 0 - - 20478 - 0 - - 257 - 0 - 1292 - 515 - 0 - 968 - 516 - 0 - 8 - 518 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 7504000 - 532 - 0 - 0 - 2823 - 0 - 1 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 63345.75 - 2073 - 0 - 52194.75 - 2074 - 0 - 12:00:04 AM - 300 - 0 - 12:00:04 AM - 265 - 0 - 12:00:04 AM - 266 - 0 - 12:00:04 AM - 267 - 0 - 12:00:04 AM - 268 - 0 - 3.01999999999998 - 2071 - 0 - 3.01999999999998 - 333 - 0 - 3.01999999999998 - 334 - 0 - 1 - 262 - 0 - 1 - 2817 - 0 - 0 - 2818 - 0 - 3/5/2009 2:04:00 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 63345.75 - 2841 - 0 - 52194.75 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2531.177 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 39877.5861119108 - 1047 - 0 - - - - - <__Version>536875008 - 105 - - 1553 - 0 - - 20478 - 0 - - 257 - 0 - 1292 - 515 - 0 - 968 - 516 - 0 - 8 - 518 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 7504000 - 532 - 0 - 0 - 2823 - 0 - 2 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 63345.75 - 2073 - 0 - 53166 - 2074 - 0 - 12:00:08 AM - 300 - 0 - 12:00:08 AM - 265 - 0 - 12:00:08 AM - 266 - 0 - 12:00:08 AM - 267 - 0 - 12:00:08 AM - 268 - 0 - 10.123 - 2071 - 0 - 10.123 - 333 - 0 - 10.123 - 334 - 0 - 1 - 262 - 0 - 1 - 2817 - 0 - 1 - 2818 - 0 - 3/5/2009 2:04:04 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 63345.75 - 2841 - 0 - 53166 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2538.28 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 39877.5861592014 - 1047 - 0 - - - - - <__Version>536875008 - 105 - - 1553 - 0 - - 20478 - 0 - - 257 - 0 - 1292 - 515 - 0 - 968 - 516 - 0 - 8 - 518 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 7504000 - 532 - 0 - 0 - 2823 - 0 - 3 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 62049.75 - 2073 - 0 - 53166.25 - 2074 - 0 - 12:00:13 AM - 300 - 0 - 12:00:13 AM - 265 - 0 - 12:00:13 AM - 266 - 0 - 12:00:13 AM - 267 - 0 - 12:00:13 AM - 268 - 0 - 9.14599999999973 - 2071 - 0 - 9.14599999999973 - 333 - 0 - 9.14599999999973 - 334 - 0 - 1 - 262 - 0 - 0 - 2817 - 0 - 1 - 2818 - 0 - 3/5/2009 2:04:09 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 62049.75 - 2841 - 0 - 53166.25 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2537.303 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 39877.5862110563 - 1047 - 0 - - - - - <__Version>536875008 - 105 - - 1553 - 0 - - 20478 - 0 - - 257 - 0 - 1292 - 515 - 0 - 968 - 516 - 0 - 8 - 518 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 7504000 - 532 - 0 - 0 - 2823 - 0 - 4 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 62049.75 - 2073 - 0 - 54137.25 - 2074 - 0 - 12:00:17 AM - 300 - 0 - 12:00:17 AM - 265 - 0 - 12:00:17 AM - 266 - 0 - 12:00:17 AM - 267 - 0 - 12:00:17 AM - 268 - 0 - 13.924 - 2071 - 0 - 13.924 - 333 - 0 - 13.924 - 334 - 0 - 1 - 262 - 0 - 0 - 2817 - 0 - 2 - 2818 - 0 - 3/5/2009 2:04:13 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 62049.75 - 2841 - 0 - 54137.25 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2542.081 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 39877.5862574003 - 1047 - 0 - - - - - <__Version>536875008 - 105 - - 1553 - 0 - - 20478 - 0 - - 257 - 0 - 1292 - 515 - 0 - 968 - 516 - 0 - 8 - 518 - 0 - 0 - 258 - 0 - 1 - 259 - 0 - 7504000 - 532 - 0 - 0 - 2823 - 0 - 5 - 2822 - 0 - 0 - 2827 - 0 - 0 - 2821 - 0 - 0 - 2820 - 0 - 0 - 2819 - 0 - 63345.5 - 2073 - 0 - 54137.25 - 2074 - 0 - 12:00:21 AM - 300 - 0 - 12:00:21 AM - 265 - 0 - 12:00:21 AM - 266 - 0 - 12:00:21 AM - 267 - 0 - 12:00:21 AM - 268 - 0 - 29.1569999999997 - 2071 - 0 - 29.1569999999997 - 333 - 0 - 29.1569999999997 - 334 - 0 - 1 - 262 - 0 - 1 - 2817 - 0 - 2 - 2818 - 0 - 3/5/2009 2:04:17 PM - 1025 - 0 - AxioCamMRc5 - 65619 - 0 - AxioCamMR5 - 1042 - 0 - 0 - 2307 - 0 - 0 - 2308 - 0 - 2584 - 2309 - 0 - 1936 - 2310 - 0 - 0.5 - 2331 - 0 - 1 - 2319 - 0 - 2 - 2311 - 0 - 3.4 - 2313 - 0 - 0.5 - 2604 - 0 - 0 - 65575 - 0 - 8196 - 65576 - 0 - 8706 - 65580 - 0 - 1 - 65581 - 0 - 0 - 65582 - 0 - 226.2 - 2564 - 0 - 0 - 65585 - 0 - 0 - 65545 - 0 - 1 - 65547 - 0 - 0 - 65550 - 0 - 0 - 65551 - 0 - 0 - 65655 - 0 - 0 - 65543 - 0 - 0 - 65541 - 0 - 0 - 65542 - 0 - Axio Observer.Z1 - 2075 - 0 - 64 - 2150 - 0 - 0 - 2078 - 0 - 8.8 - 2149 - 0 - 6.3 - 2146 - 0 - 0.63 - 2219 - 0 - 34 - 2220 - 0 - 100 - 2221 - 0 - 2 - 2103 - 0 - Objective.422342-9960-000 - 2261 - 0 - EC Epiplan-Neofluar 10x/0.25 HD DIC M27 - 2049 - 0 - 10 - 2076 - 0 - 0.25 - 2077 - 0 - 1 - 2104 - 0 - 1 - 2105 - 0 - 9000 - 2151 - 0 - 63345.5 - 2841 - 0 - 54137.25 - 2842 - 0 - -1 - 2133 - 0 - 0 - 2070 - 0 - 2 - 2118 - 0 - -1 - 2084 - 0 - -1 - 2184 - 0 - 3 - 2183 - 0 - 1 - 2050 - 0 - 3 - 2107 - 0 - Reflector.424923-9901-000 - 2262 - 0 - Pol Refl.light - 2051 - 0 - 1 - 2147 - 0 - 2 - 2055 - 0 - 3 - 2252 - 0 - Aquila.SideportElement_100%L - 2260 - 0 - 100% L - 2259 - 0 - 0 - 2255 - 0 - 100 - 2253 - 0 - 0 - 2254 - 0 - -1 - 2258 - 0 - 1 - 2256 - 0 - -1 - 2257 - 0 - 2557.314 - 2072 - 0 - -1 - 2123 - 0 - 6.00450097847358 - 2181 - 0 - 4 - 2180 - 0 - Channel1 - 1284 - 0 - 16777215 - 1282 - 0 - 1 - 1283 - 0 - 0 - 16777488 - 0 - 0 - 16777489 - 0 - - 523 - 0 - 39877.586304442 - 1047 - 0 - - + + + + <__Version>536875008 + 140 + Image + 1546 + 0 + + 530 + 0 + + 1549 + 0 + + 1550 + 0 + + 1551 + 0 + 05MAR09_run2_64-Raw.bmp + 1553 + 0 + + 261 + 0 + + 1537 + 0 + + 1538 + 0 + + 1540 + 0 + + 1539 + 0 + + 1542 + 0 + + 1800 + 0 + + 1801 + 0 + + 1802 + 0 + + 1803 + 0 + + 1805 + 0 + + 1806 + 0 + + 1804 + 0 + + 1795 + 0 + + 1796 + 0 + + 257 + 0 + 95 + 513 + 0 + 6 + 519 + 0 + 6 + 517 + 0 + 2520 + 515 + 0 + 2808 + 516 + 0 + 8 + 518 + 0 + 76 + 770 + 0 + 1.05596620908131 + 769 + 0 + 2661.0348468849 + 771 + 0 + 76 + 773 + 0 + 1.05596620908131 + 772 + 0 + 2965.15311510032 + 774 + 0 + 0 + 776 + 0 + 1 + 775 + 0 + + 777 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 1 + 262 + 0 + 45035616 + 532 + 0 + + 20478 + 0 + 0 + 2823 + 0 + 0 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 62049.5 + 2073 + 0 + 52194.75 + 2074 + 0 + 12:00:00 AM + 300 + 0 + 12:00:00 AM + 265 + 0 + 12:00:00 AM + 266 + 0 + 12:00:00 AM + 267 + 0 + 12:00:00 AM + 268 + 0 + 0 + 2071 + 0 + 0 + 333 + 0 + 0 + 334 + 0 + 0 + 2817 + 0 + 0 + 2818 + 0 + 3/5/2009 2:03:56 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 62049.5 + 2841 + 0 + 52194.75 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2528.157 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 2 + 2838 + 0 + 3 + 2839 + 0 + Administrator + 1794 + 0 + 39877.5860635726 + 1047 + 0 + + + <__Version>536875010 + Scaling120 + 0 + 1.05596620908131 + 76 + + 0 + 0 + 1.05596620908131 + 76 + + 0 + 0 + 1 + 0 + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + {04B3BCCA-84C1-11D5-960F-0001021EF207} + <__Version>536875008 + 20 + + 1546 + 137 + + 530 + 129 + + 1549 + 137 + + 1550 + 137 + + 1551 + 137 + + 1553 + 137 + Pixel + 1537 + 0 + + 1538 + 0 + + 1540 + 0 + + 1539 + 0 + + 1542 + 0 + + 1800 + 0 + + 1801 + 0 + + 1802 + 0 + + 1803 + 0 + + 1805 + 0 + + 1806 + 0 + + 1804 + 0 + + 1795 + 0 + + 1796 + 0 + + + + + <__Version>536875008 + 105 + + 1553 + 0 + + 20478 + 0 + + 257 + 0 + 1292 + 515 + 0 + 968 + 516 + 0 + 8 + 518 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 7504000 + 532 + 0 + 0 + 2823 + 0 + 0 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 62049.5 + 2073 + 0 + 52194.75 + 2074 + 0 + 12:00:00 AM + 300 + 0 + 12:00:00 AM + 265 + 0 + 12:00:00 AM + 266 + 0 + 12:00:00 AM + 267 + 0 + 12:00:00 AM + 268 + 0 + 0 + 2071 + 0 + 0 + 333 + 0 + 0 + 334 + 0 + 1 + 262 + 0 + 0 + 2817 + 0 + 0 + 2818 + 0 + 3/5/2009 2:03:56 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 62049.5 + 2841 + 0 + 52194.75 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2528.157 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 39877.5860635726 + 1047 + 0 + + + + + <__Version>536875008 + 105 + + 1553 + 0 + + 20478 + 0 + + 257 + 0 + 1292 + 515 + 0 + 968 + 516 + 0 + 8 + 518 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 7504000 + 532 + 0 + 0 + 2823 + 0 + 1 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 63345.75 + 2073 + 0 + 52194.75 + 2074 + 0 + 12:00:04 AM + 300 + 0 + 12:00:04 AM + 265 + 0 + 12:00:04 AM + 266 + 0 + 12:00:04 AM + 267 + 0 + 12:00:04 AM + 268 + 0 + 3.01999999999998 + 2071 + 0 + 3.01999999999998 + 333 + 0 + 3.01999999999998 + 334 + 0 + 1 + 262 + 0 + 1 + 2817 + 0 + 0 + 2818 + 0 + 3/5/2009 2:04:00 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 63345.75 + 2841 + 0 + 52194.75 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2531.177 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 39877.5861119108 + 1047 + 0 + + + + + <__Version>536875008 + 105 + + 1553 + 0 + + 20478 + 0 + + 257 + 0 + 1292 + 515 + 0 + 968 + 516 + 0 + 8 + 518 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 7504000 + 532 + 0 + 0 + 2823 + 0 + 2 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 63345.75 + 2073 + 0 + 53166 + 2074 + 0 + 12:00:08 AM + 300 + 0 + 12:00:08 AM + 265 + 0 + 12:00:08 AM + 266 + 0 + 12:00:08 AM + 267 + 0 + 12:00:08 AM + 268 + 0 + 10.123 + 2071 + 0 + 10.123 + 333 + 0 + 10.123 + 334 + 0 + 1 + 262 + 0 + 1 + 2817 + 0 + 1 + 2818 + 0 + 3/5/2009 2:04:04 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 63345.75 + 2841 + 0 + 53166 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2538.28 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 39877.5861592014 + 1047 + 0 + + + + + <__Version>536875008 + 105 + + 1553 + 0 + + 20478 + 0 + + 257 + 0 + 1292 + 515 + 0 + 968 + 516 + 0 + 8 + 518 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 7504000 + 532 + 0 + 0 + 2823 + 0 + 3 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 62049.75 + 2073 + 0 + 53166.25 + 2074 + 0 + 12:00:13 AM + 300 + 0 + 12:00:13 AM + 265 + 0 + 12:00:13 AM + 266 + 0 + 12:00:13 AM + 267 + 0 + 12:00:13 AM + 268 + 0 + 9.14599999999973 + 2071 + 0 + 9.14599999999973 + 333 + 0 + 9.14599999999973 + 334 + 0 + 1 + 262 + 0 + 0 + 2817 + 0 + 1 + 2818 + 0 + 3/5/2009 2:04:09 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 62049.75 + 2841 + 0 + 53166.25 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2537.303 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 39877.5862110563 + 1047 + 0 + + + + + <__Version>536875008 + 105 + + 1553 + 0 + + 20478 + 0 + + 257 + 0 + 1292 + 515 + 0 + 968 + 516 + 0 + 8 + 518 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 7504000 + 532 + 0 + 0 + 2823 + 0 + 4 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 62049.75 + 2073 + 0 + 54137.25 + 2074 + 0 + 12:00:17 AM + 300 + 0 + 12:00:17 AM + 265 + 0 + 12:00:17 AM + 266 + 0 + 12:00:17 AM + 267 + 0 + 12:00:17 AM + 268 + 0 + 13.924 + 2071 + 0 + 13.924 + 333 + 0 + 13.924 + 334 + 0 + 1 + 262 + 0 + 0 + 2817 + 0 + 2 + 2818 + 0 + 3/5/2009 2:04:13 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 62049.75 + 2841 + 0 + 54137.25 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2542.081 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 39877.5862574003 + 1047 + 0 + + + + + <__Version>536875008 + 105 + + 1553 + 0 + + 20478 + 0 + + 257 + 0 + 1292 + 515 + 0 + 968 + 516 + 0 + 8 + 518 + 0 + 0 + 258 + 0 + 1 + 259 + 0 + 7504000 + 532 + 0 + 0 + 2823 + 0 + 5 + 2822 + 0 + 0 + 2827 + 0 + 0 + 2821 + 0 + 0 + 2820 + 0 + 0 + 2819 + 0 + 63345.5 + 2073 + 0 + 54137.25 + 2074 + 0 + 12:00:21 AM + 300 + 0 + 12:00:21 AM + 265 + 0 + 12:00:21 AM + 266 + 0 + 12:00:21 AM + 267 + 0 + 12:00:21 AM + 268 + 0 + 29.1569999999997 + 2071 + 0 + 29.1569999999997 + 333 + 0 + 29.1569999999997 + 334 + 0 + 1 + 262 + 0 + 1 + 2817 + 0 + 2 + 2818 + 0 + 3/5/2009 2:04:17 PM + 1025 + 0 + AxioCamMRc5 + 65619 + 0 + AxioCamMR5 + 1042 + 0 + 0 + 2307 + 0 + 0 + 2308 + 0 + 2584 + 2309 + 0 + 1936 + 2310 + 0 + 0.5 + 2331 + 0 + 1 + 2319 + 0 + 2 + 2311 + 0 + 3.4 + 2313 + 0 + 0.5 + 2604 + 0 + 0 + 65575 + 0 + 8196 + 65576 + 0 + 8706 + 65580 + 0 + 1 + 65581 + 0 + 0 + 65582 + 0 + 226.2 + 2564 + 0 + 0 + 65585 + 0 + 0 + 65545 + 0 + 1 + 65547 + 0 + 0 + 65550 + 0 + 0 + 65551 + 0 + 0 + 65655 + 0 + 0 + 65543 + 0 + 0 + 65541 + 0 + 0 + 65542 + 0 + Axio Observer.Z1 + 2075 + 0 + 64 + 2150 + 0 + 0 + 2078 + 0 + 8.8 + 2149 + 0 + 6.3 + 2146 + 0 + 0.63 + 2219 + 0 + 34 + 2220 + 0 + 100 + 2221 + 0 + 2 + 2103 + 0 + Objective.422342-9960-000 + 2261 + 0 + EC Epiplan-Neofluar 10x/0.25 HD DIC M27 + 2049 + 0 + 10 + 2076 + 0 + 0.25 + 2077 + 0 + 1 + 2104 + 0 + 1 + 2105 + 0 + 9000 + 2151 + 0 + 63345.5 + 2841 + 0 + 54137.25 + 2842 + 0 + -1 + 2133 + 0 + 0 + 2070 + 0 + 2 + 2118 + 0 + -1 + 2084 + 0 + -1 + 2184 + 0 + 3 + 2183 + 0 + 1 + 2050 + 0 + 3 + 2107 + 0 + Reflector.424923-9901-000 + 2262 + 0 + Pol Refl.light + 2051 + 0 + 1 + 2147 + 0 + 2 + 2055 + 0 + 3 + 2252 + 0 + Aquila.SideportElement_100%L + 2260 + 0 + 100% L + 2259 + 0 + 0 + 2255 + 0 + 100 + 2253 + 0 + 0 + 2254 + 0 + -1 + 2258 + 0 + 1 + 2256 + 0 + -1 + 2257 + 0 + 2557.314 + 2072 + 0 + -1 + 2123 + 0 + 6.00450097847358 + 2181 + 0 + 4 + 2180 + 0 + Channel1 + 1284 + 0 + 16777215 + 1282 + 0 + 1 + 1283 + 0 + 0 + 16777488 + 0 + 0 + 16777489 + 0 + + 523 + 0 + 39877.586304442 + 1047 + 0 + + \ No newline at end of file diff --git a/Utilities/SimpleITKJSONDream3DFilterCreation.py b/Utilities/SimpleITKJSONDream3DFilterCreation.py index e0f6fc03..b7b6b408 100755 --- a/Utilities/SimpleITKJSONDream3DFilterCreation.py +++ b/Utilities/SimpleITKJSONDream3DFilterCreation.py @@ -192,8 +192,8 @@ 'float':{'include':'SIMPLib/FilterParameters/FloatFilterParameter.h','macro':'SIMPL_NEW_FLOAT_FP','component':'float','read':'readValue'}, 'int':{'include':'SIMPLib/FilterParameters/IntFilterParameter.h','macro':'SIMPL_NEW_INTEGER_FP','component':'int','read':'readValue'}, 'bool':{'include':'SIMPLib/FilterParameters/BooleanFilterParameter.h','macro':'SIMPL_NEW_BOOL_FP','component':'bool','read':'readValue'}, - 'FloatVec3_t':{'include':'SIMPLib/FilterParameters/FloatVec3FilterParameter.h','macro':'SIMPL_NEW_FLOAT_VEC3_FP','component':'float','read':'readFloatVec3'}, - 'IntVec3_t':{'include':'SIMPLib/FilterParameters/IntVec3FilterParameter.h','macro':'SIMPL_NEW_INT_VEC3_FP','component':'int','read':'readIntVec3'} + 'FloatVec3Type':{'include':'SIMPLib/FilterParameters/FloatVec3FilterParameter.h','macro':'SIMPL_NEW_FLOAT_VEC3_FP','component':'float','read':'readFloatVec3'}, + 'IntVec3Type':{'include':'SIMPLib/FilterParameters/IntVec3FilterParameter.h','macro':'SIMPL_NEW_INT_VEC3_FP','component':'int','read':'readIntVec3'} } TypeIsInt={ @@ -222,17 +222,17 @@ ('uint32_t',0):{'d3d':'double','std':'double'}, ('uint8_t',0):{'d3d':'int','std':'int'}, ('bool',0):{'d3d':'bool','std':'bool'}, - ('double',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('float',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('int',1):{'d3d':'IntVec3_t','std':'std::vector'}, - ('unsigned int',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('int64_t',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('uint32_t',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('int32_t',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('bool',1):{'d3d':'IntVec3_t','std':'std::vector'}, - ('std::vector',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('std::vector',1):{'d3d':'FloatVec3_t','std':'std::vector'}, - ('std::vector',1):{'d3d':'FloatVec3_t','std':'std::vector'} + ('double',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('float',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('int',1):{'d3d':'IntVec3Type','std':'std::vector'}, + ('unsigned int',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('int64_t',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('uint32_t',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('int32_t',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('bool',1):{'d3d':'IntVec3Type','std':'std::vector'}, + ('std::vector',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('std::vector',1):{'d3d':'FloatVec3Type','std':'std::vector'}, + ('std::vector',1):{'d3d':'FloatVec3Type','std':'std::vector'} } VariantToType={ @@ -471,7 +471,7 @@ def CheckTypeSupport(filter_members): for filter_member in filter_members: # Expected to be a list if (filter_member['type'],filter_member['dim_vec']) not in ITKToDream3DType: print("Type not supported: %s (vector: %d)"%(filter_member['type'],filter_member['dim_vec'])) - print filter_member + print(filter_member) return False return True @@ -480,7 +480,7 @@ def CheckITKTypeSupport(filter_members): if 'itk_type' in filter_member: if filter_member['dim_vec'] > 0 and filter_member['itk_type'] not in itkVectorTypes: print("itk_type not supported: %s "%filter_member['itk_type']) - print filter_member + print(filter_member) return False return True @@ -717,8 +717,8 @@ def GetDream3DFilterTests(filter_description, test, test_settings, filter_test_m testFunctionCode += ' }\n' testFunctionCode += ' filter->setDataContainerArray(containerArray);\n' testFunctionCode += ' filter->execute();\n' - testFunctionCode += ' DREAM3D_REQUIRED(filter->getErrorCondition(), >=, 0);\n' - testFunctionCode += ' DREAM3D_REQUIRED(filter->getWarningCondition(), >=, 0);\n' + testFunctionCode += ' DREAM3D_REQUIRED(filter->getErrorCode(), >=, 0);\n' + testFunctionCode += ' DREAM3D_REQUIRED(filter->getWarningCode(), >=, 0);\n' # Save filtered image for debugging purposes testFunctionCode += ' WriteImage("'+GetDREAM3DFilterName(filter_description['name'])+test['tag']+'.nrrd", containerArray, input_path);\n' if 'md5hash' in test and test['md5hash'] != '' and test['md5hash'] != None: @@ -754,10 +754,10 @@ def VerifyFilterParameterTypes(filter_members,test_settings): continue if settings['type'] == '': print("No type in test for %s - searching..."%settings['parameter']) - print "settings:"+str(settings) - print "filter_members:"+str(filter_members) + print("settings:"+str(settings)) + print("filter_members:"+str(filter_members)) list_types = [ x['type'] for x in filter_members if x['name'] == settings['parameter'] ] - print list_types + print(list_types) if len(list_types) != 1: print("No type in test for %s - No type found in filter_members."%settings['parameter']) return 0 @@ -855,7 +855,7 @@ def main(argv=None): if len(filter_inputs): filter_description['number_of_inputs'] = len(filter_inputs) filter_members=[] - print filter_members + print(filter_members) if not ExtractDescriptionList(members, filter_description['members'],\ filter_members, options.extra_verbose, options.not_implemented): continue @@ -926,7 +926,7 @@ def main(argv=None): not VerifyLimitations(members, filter_measurements, options.verbose) or\ not VerifyLimitations(tests, filter_tests, options.verbose) or\ not VerifyLimitations(tests_settings, filter_test_settings, options.verbose, True): - print "VerifyLimitations Failed" + print("VerifyLimitations Failed") continue # Filter lists in fields FilterFields(general, [filter_description]) @@ -938,10 +938,10 @@ def main(argv=None): FilterFields(tests_settings, filter_test_measurements_results, True) # Check filter members type if not CheckTypeSupport(filter_members): - print "CheckTypeSupport Failed" + print("CheckTypeSupport Failed") continue if not CheckITKTypeSupport(filter_members): - print "CheckITKTypeSupport Failed" + print("CheckITKTypeSupport Failed") continue # Create Filter content # Initialization of replacement strings @@ -1005,10 +1005,10 @@ def main(argv=None): filter_list.append(DREAM3DFilter['FilterName']) except KeyError as e: print('KeyError exception processing %s'%current_json) - print e + print(e) continue except: - print('Exception processing %s'%current_json) + print('Unknown exception processing %s'%current_json) continue # Print manual step: Add created filters to CMakeLists print("Add these filters to ITKImageProcessingFilters/SourceList.cmake and Test/CMakeLists.txt:") diff --git a/Utilities/SimpleITKJSONDream3DFilterCreationTemplates/ImageFilterTemplate.h b/Utilities/SimpleITKJSONDream3DFilterCreationTemplates/ImageFilterTemplate.h index 7a573503..ea0b7f91 100644 --- a/Utilities/SimpleITKJSONDream3DFilterCreationTemplates/ImageFilterTemplate.h +++ b/Utilities/SimpleITKJSONDream3DFilterCreationTemplates/ImageFilterTemplate.h @@ -3,7 +3,7 @@ /* * Your License or Copyright can go here */ -#prama once +#pragma once #ifdef __clang__ @@ -33,9 +33,10 @@ class ${FilterName} : public ITKImageProcessingBase ~${FilterName}() override; - ${Parameters} /** - * @brief newFilterInstance Reimplemented from @see AbstractFilter class - */ +${Parameters} + /** + * @brief newFilterInstance Reimplemented from @see AbstractFilter class + */ AbstractFilter::Pointer newFilterInstance(bool copyFilterParameters) const override;