Example #1
0
def _test():
  """Tests"""
  import ClearMap.Settings as settings 
  import ClearMap.IO.IO as io
  import ClearMap.Visualization.Plot3d as p3d;
  
  import ClearMap.Alignment.Resampling as res
  from importlib import reload
  reload(res)
  
  r = res.resample_shape(source_shape=(100,200,300), sink_shape=(50,50,30));
  print('resampled source_shape=%r, sink_shape=%r, source_resolution=%r, sink_resolution=%r' % r)
 
  r = res.resample_shape(source_shape=(100,200,300), source_resolution=(2,2,2), sink_resolution=(10,2,1))
  print('resampled source_shape=%r, sink_shape=%r, source_resolution=%r, sink_resolution=%r' % r)
  
  
  source = io.join(settings.test_data_path, 'Resampling/test.tif')
  sink   = io.join(settings.test_data_path, "Resampling/resampled.npy")
  
  source = io.join(settings.test_data_path, 'Tif/sequence/sequence<Z,4>.tif')
  sink = io.join(settings.test_data_path, "Resampling/resampled_sequence.tif")  
  
  
  source_shape, sink_shape, source_res, sink_res = res.resample_shape(source_shape=io.shape(source), source_resolution=(1.,1.,1.), sink_resolution=(1.6,1.6,2))
  axes_order = res._axes_order(None, source_shape, sink_shape);
  print(axes_order)
  resampled = res.resample(source, sink, source_resolution=(1.,1.,1.), sink_resolution = (1.6,1.6,2), orientation=None, processes=None);
  p3d.plot(resampled)
  p3d.plot(source)
  
  inverse = res.resample_inverse(resampled, sink=None, resample_source=source, source_resolution=(1,1,1), sink_resolution = (10,10,2), orientation=None, processes='serial')
  p3d.plot([source, inverse])

  
  resampled = res.resample(source, sink, source_resolution=(1,1,1), sink_resolution = (10,10,2), orientation=(2,-1,3), processes=None);
  p3d.plot(resampled)
  
  inverse = res.resample_inverse(resampled, sink=None, resample_source=source, source_resolution=(1,1,1), sink_resolution = (10,10,2), orientation=(2,-1,3), processes=None)
  p3d.plot([source, inverse])
  
  resampled = res.resample(source, sink=None, source_resolution=(1.6,1.6,2), sink_shape=(10,20,30), orientation=None, processes=None)
  p3d.plot(resampled)
  
  
  # ponints
  points = res.np.array([[0,0,0], [1,1,1], [1,2,3]], dtype=float);
  resampled_points = res.resample_points(points, resample_source=source , resample_sink=sink, orientation=None)
  print(resampled_points)

  inverse_points = res.resample_points_inverse(resampled_points, resample_source=source , resample_sink=sink, orientation=None)
  print(inverse_points)
  print(res.np.allclose(points, inverse_points))
Example #2
0
def filename(ftype, file_type_to_name = None, directory = None, expression = None, values = None, prefix = None, postfix = None, extension = None, debug = None):
  """Returns the standard file name to use for a result file.
  
  Arguments
  ---------
  ftype : str
    The type of the file for which the file name is requested.
  directory : str
    The working directory of the project.
  expression : str or None
    The tag expression to use if ftype is 'expression'.
  file_type_to_name : dict
    The file types to name mappings. If None, the default is used.
  values : dict or None
    The values to use in case a tag expression is given.
  prefix : str or None
    Optional prefix to the file if not None.
  postfix : str or list of str or None
    Optional postfix to the file if not None.
  extension : str or None
    Optional extension to replace existing one.
  debug : str, bool or None
    Optional string for debug files in wihch the string is added as postfix.
    If True, 'debug' is added.
  
  Returns
  -------
  filename : str
    The standard file name of the requested file type.
  """
  if file_type_to_name is None:
    file_type_to_name = default_file_type_to_name;
  
  if ftype is None:
    fname = directory;
  if ftype in file_type_synonyms.keys():
    ftype = file_type_synonyms[ftype];
  if ftype == 'expression' or expression is not None:
    expression = te.Expression(expression);
    fname = expression.string(values=values);
    #Note: expressions are used for raw data only atm -> no prefix, debug
    prefix = None;
    debug = None;   
  else:
    fname = file_type_to_name.get(ftype, None);
  e = te.Expression(fname);
  if len(e.tags) > 0: 
    fname = e.string(values=values);
    #Note: expressions are used for raw data only atm -> no prefix, debug
    prefix = None;
    debug = None;
  
  if fname is None:
    raise ValueError('Cannot find name for type %r!' % ftype);
  
  if prefix and prefix != '':
    if isinstance(prefix, list):
      prefix = '_'.join(prefix);
    fname = prefix + '_' + fname;
  
  if postfix is not None and postfix != '':
    if isinstance(postfix, list):
      postfix = '_'.join(postfix);
    fname = fname.split('.');
    fname = '.'.join(fname[:-1]) + '_' + postfix + '.' + fname[-1];   
  
  if debug:
    if not isinstance(debug, str):
      debug = 'debug';
    #fname = fname.split('.');
    #fname = '.'.join(fname[:-1]) + '_' + debug + '.' + fname[-1];   
    fname = debug + '_' + fname;
  
  if extension:
    fname = fname.split('.');
    fname = '.'.join(fname[:-1] + [extension]);                
  
  if directory:
    fname = io.join(directory, fname);
  
  return fname;                 
Example #3
0
__author__ = 'Christoph Kirst <*****@*****.**>'
__license__ = 'GPLv3 - GNU General Pulic License v3 (see LICENSE)'
__copyright__ = 'Copyright © 2020 by Christoph Kirst'
__webpage__ = 'http://idisco.info'
__download__ = 'http://www.github.com/ChristophKirst/ClearMap2'

import ClearMap.IO.IO as io

###############################################################################
### Files
###############################################################################

base_directory = io.split(io.abspath(__file__))[0]
"""The base directory for test data."""

data_directory = io.join(base_directory, 'Data')
"""The base directory for test data."""

vasculature_directory = io.join(data_directory, 'Vasculature')
"""Directory for vasculature sample data."""

vasculature_raw = io.join(vasculature_directory, 'vasculature_raw.npy')
"""Vasculature sample data."""

vasculature_pre = io.join(vasculature_directory, 'vasculature_pre.npy')
"""Vasculature sample data."""

vasculature_surface_raw = io.join(vasculature_directory,
                                  'vasculature_surface_raw.npy')
"""Vasculature sample data."""