Exemplo n.º 1
0
 def __init__(self, filename):
     DetectorImageBase.__init__(self, filename)
     try:
         from cbflib_adaptbx import CBFAdaptor  # optional package
         self.adaptor = CBFAdaptor(filename)
         # for testing only:
         '''
   self.adaptor.read_header()
   print "     size1:", self.adaptor.size1()
   print "     size2:", self.adaptor.size2()
   print "  overload:", self.adaptor.overload()
   print "wavelength:", self.adaptor.wavelength()
   print "  distance:", self.adaptor.distance()
   print "pixel size:", self.adaptor.pixel_size()
   print "     beamx:", self.adaptor.beam_index_slow*self.adaptor.pixel_size()
   print "     beamy:", self.adaptor.beam_index_fast*self.adaptor.pixel_size()
   print " osc_start:", self.adaptor.osc_start()
   print " osc_range:", self.adaptor.osc_range()
   print self.adaptor.raster_description()
   flags = self.adaptor.transform_flags()
   print flags.transpose, flags.reverse_slow, flags.reverse_fast
   '''
     except Exception:
         from iotbx.detectors.marIP import NullAdaptor
         self.adaptor = NullAdaptor()
     self.vendortype = "CBF"
     self.readHeader()
     try:
         self.vendor_specific_null_value = int(
             self.adaptor.undefined_value())
     except RuntimeError as e:
         self.vendor_specific_null_value = 0
Exemplo n.º 2
0
 def __init__(self,filename):
   DetectorImageBase.__init__(self,filename)
   try:
     from cbflib_adaptbx import CBFAdaptor # optional package
     self.adaptor = CBFAdaptor(filename)
     # for testing only:
     '''
     self.adaptor.read_header()
     print "     size1:", self.adaptor.size1()
     print "     size2:", self.adaptor.size2()
     print "  overload:", self.adaptor.overload()
     print "wavelength:", self.adaptor.wavelength()
     print "  distance:", self.adaptor.distance()
     print "pixel size:", self.adaptor.pixel_size()
     print "     beamx:", self.adaptor.beam_index_slow*self.adaptor.pixel_size()
     print "     beamy:", self.adaptor.beam_index_fast*self.adaptor.pixel_size()
     print " osc_start:", self.adaptor.osc_start()
     print " osc_range:", self.adaptor.osc_range()
     print self.adaptor.raster_description()
     flags = self.adaptor.transform_flags()
     print flags.transpose, flags.reverse_slow, flags.reverse_fast
     '''
   except Exception:
     from iotbx.detectors.marIP import NullAdaptor
     self.adaptor = NullAdaptor()
   self.vendortype = "CBF"
   self.readHeader()
   self.vendor_specific_null_value = int(self.adaptor.undefined_value())
Exemplo n.º 3
0
class CBFImage(MARIPImage):
    def __init__(self, filename):
        DetectorImageBase.__init__(self, filename)
        try:
            from cbflib_adaptbx import CBFAdaptor  # optional package
            self.adaptor = CBFAdaptor(filename)
            # for testing only:
            '''
      self.adaptor.read_header()
      print "     size1:", self.adaptor.size1()
      print "     size2:", self.adaptor.size2()
      print "  overload:", self.adaptor.overload()
      print "wavelength:", self.adaptor.wavelength()
      print "  distance:", self.adaptor.distance()
      print "pixel size:", self.adaptor.pixel_size()
      print "     beamx:", self.adaptor.beam_index_slow*self.adaptor.pixel_size()
      print "     beamy:", self.adaptor.beam_index_fast*self.adaptor.pixel_size()
      print " osc_start:", self.adaptor.osc_start()
      print " osc_range:", self.adaptor.osc_range()
      print self.adaptor.raster_description()
      flags = self.adaptor.transform_flags()
      print flags.transpose, flags.reverse_slow, flags.reverse_fast
      '''
        except Exception:
            from iotbx.detectors.marIP import NullAdaptor
            self.adaptor = NullAdaptor()
        self.vendortype = "CBF"
        self.readHeader()
        try:
            self.vendor_specific_null_value = int(
                self.adaptor.undefined_value())
        except RuntimeError as e:
            self.vendor_specific_null_value = 0

    def beam_center_slow(self):
        return self.adaptor.beam_index_slow * self.adaptor.pixel_size()

    def beam_center_fast(self):
        return self.adaptor.beam_index_fast * self.adaptor.pixel_size()

    def read(self):
        T = self.adaptor.transform_flags()

        #future: use these tests to trigger in-place column & row swaps
        assert T.reverse_fast == False
        assert T.reverse_slow == False

        from cbflib_adaptbx import cbf_binary_adaptor
        M = cbf_binary_adaptor(self.filename)
        data = M.uncompress_implementation("buffer_based").uncompress_data()
        if T.transpose == True:
            #very inefficient; 0.09 sec for 3K x 3K uncompression
            #              yet 0.54 sec for in-place transpose
            # other options not tried: a) alloc & set new matrix; b) use data as is
            data.matrix_transpose_in_place()

        self.bin_safe_set_data(data)
Exemplo n.º 4
0
class CBFImage(MARIPImage):
  def __init__(self,filename):
    DetectorImageBase.__init__(self,filename)
    try:
      from cbflib_adaptbx import CBFAdaptor # optional package
      self.adaptor = CBFAdaptor(filename)
      # for testing only:
      '''
      self.adaptor.read_header()
      print "     size1:", self.adaptor.size1()
      print "     size2:", self.adaptor.size2()
      print "  overload:", self.adaptor.overload()
      print "wavelength:", self.adaptor.wavelength()
      print "  distance:", self.adaptor.distance()
      print "pixel size:", self.adaptor.pixel_size()
      print "     beamx:", self.adaptor.beam_index_slow*self.adaptor.pixel_size()
      print "     beamy:", self.adaptor.beam_index_fast*self.adaptor.pixel_size()
      print " osc_start:", self.adaptor.osc_start()
      print " osc_range:", self.adaptor.osc_range()
      print self.adaptor.raster_description()
      flags = self.adaptor.transform_flags()
      print flags.transpose, flags.reverse_slow, flags.reverse_fast
      '''
    except Exception:
      from iotbx.detectors.marIP import NullAdaptor
      self.adaptor = NullAdaptor()
    self.vendortype = "CBF"
    self.readHeader()
    self.vendor_specific_null_value = int(self.adaptor.undefined_value())

  def beam_center_slow(self):
    return self.adaptor.beam_index_slow*self.adaptor.pixel_size()

  def beam_center_fast(self):
    return self.adaptor.beam_index_fast*self.adaptor.pixel_size()

  def read(self):
    T = self.adaptor.transform_flags()

    #future: use these tests to trigger in-place column & row swaps
    assert T.reverse_fast == False
    assert T.reverse_slow == False

    from cbflib_adaptbx import cbf_binary_adaptor
    M = cbf_binary_adaptor( self.filename )
    data = M.uncompress_implementation("buffer_based").uncompress_data()
    if T.transpose==True:
      #very inefficient; 0.09 sec for 3K x 3K uncompression
      #              yet 0.54 sec for in-place transpose
      # other options not tried: a) alloc & set new matrix; b) use data as is
      data.matrix_transpose_in_place()

    self.bin_safe_set_data(data)