def METHOD_NAME():
    # locate the input data file
    input_file = existing_filepath(data_path, data_file)
    # acquisition data will be read from an HDF file input_file
    acq_data = AcquisitionData(input_file, True)
    # the raw k-space data is a list of different readouts
    # of different data type (e.g. noise correlation data, navigator data,
    # image data,...);
    # the number of all readouts is
    na = acq_data.number_of_readouts('all')
    # the number of image data readouts is
    ni = acq_data.number_of_readouts()
    print('readouts: total %d, image data %d' % (na, ni))
    # sort acquisition data;
    # currently performed with respect to (in this order):
    #    - repetition
    #    - slice
    #    - kspace encode step 1
    print('sorting...')
    acq_data.sort()
    first = int(round(max(0, (na - 1)/2 - 1)))
    last = min(na - 1, first + 3)
    where = range(first, last + 1)
    # retrieve readouts flags
    flags = acq_data.get_ISMRMRD_info('flags', where)
    # inspect the first readout flag
    flags0 = acq_data.get_ISMRMRD_info('flags', range(1))
    if flags0 & IMAGE_DATA_MASK:
        print('first readout is image data')
    else:
        # should see this if input data file is test_2D_2x.h5
        print('first readout is not image data')
        a0 = acq_data.as_array(0)
        print('first readout shape: %dx%d' % a0.shape)
    # display flags
    print('Flags')
    print(flags)
    # inspect some kspace_encode_step_1 counters
    encode_step_1 = acq_data.get_ISMRMRD_info('kspace_encode_step_1', where)
    print('Ky/PE - encoding'),
    print(encode_step_1)
    # inspect some slice counters
    slice = acq_data.get_ISMRMRD_info('slice', where)
    print('Slices'),
    print(slice)
    # inspect some repetition counters
    repetition = acq_data.get_ISMRMRD_info('repetition', where)
    print('Repetitions'),
    print(repetition)
    # inspect some physiology time stamps
    pts = acq_data.get_ISMRMRD_info('physiology_time_stamp', where)
    print('Physiology time stamps'),
    print(pts)
    # in the case of the provided dataset 'simulated_MR_2D_cartesian.h5' the 
    # size is 2x256 phase encoding, 8 receiver coils and points 512 readout 
    # points (frequency encoding dimension)
    dim = acq_data.dimensions()
    print('input data dimensions: %dx%dx%d' % dim)
    if show_plot:
        title = 'Acquisition data (magnitude)'
        acq_data.show(title = title, postpone = True)
    print('cloning acquisition data...')
    cloned_acq_data = acq_data.clone()
    cloned_dim = cloned_acq_data.dimensions()
    print('cloned data dimensions: %dx%dx%d' % cloned_dim)
    print('filling acquisition data...')
    cloned_acq_data.fill(acq_data)
    if show_plot:
        title = 'Cloned acquisition data (magnitude)'
        cloned_acq_data.show(title = title, postpone = True)
    # pre-process acquired k-space data
    # Prior to image reconstruction several pre-processing steps such as 
    # asymmetric echo compensation, noise decorelation for multi-coil data or 
    # removal of oversampling along frequency encoding (i.e. readout or kx)
    # direction. So far only the removal of readout oversampling and noise and
    # asymmetric echo adjusting is implemented
    print('pre-processing acquisition data...')
    processed_acq_data = preprocess_acquisition_data(acq_data).abs()
    acq_max = processed_acq_data.maximum(processed_acq_data*10)
    acq_min = processed_acq_data.minimum(processed_acq_data*10)
    print('norm of acq_data: %f' % processed_acq_data.norm())
    print('norm of max(acq_data, acq_data*10): %f' % acq_max.norm())
    print('norm of min(acq_data, acq_data*10): %f' % acq_min.norm())
    # by removing the oversampling factor of 2 along the readout direction, the
    # number of readout samples was halfed
    proc_dim = processed_acq_data.dimensions()
    print('processed data dimensions: %dx%dx%d' % proc_dim)
    if show_plot:
        title = 'Processed acquisition data (magnitude)'
        processed_acq_data.show(title = title)