Miller arrays are one of the central types of the cctbx, so they are a key point to understand. First of all, cctbx.miller.array is a class with a huge amount of methods, and if you need to find all of them you shall better look at the python interface website or, much more better, directly go to the source code by using
libtbx.help cctbx.miller.array
The miller_array objects contain data and sigmas, as well as Miller indices, anomalous flag, unit cell and space_group object. But they do not only have reflection data in the sense of amplitudes or intensities but also numbers or strings corresponding to fields in the mtz or cif from they were extracted and that are values that were given per each hkl index combination. That is, r_free_flag, or _crystal_id or _refln.status...
That has the problem of that not all miller array methods can be applied to all instances of the object, but only if it fits certain conditions, as being an array of integers, or boolean, or whatever.
Get an overview
show_comprehensive_summary(self, f=None, prefix='')
When you use show_comprehensive_summary() you see information about your Miller array or set object. Observation type is an optional annotation but it is usually added by the creator of the object (that is, for example, a function .as_miller_arrays) and that contains information about they type of array we are facing. The rest of lines is information calculated on the fly by the call to the function, using the primary data on the miller array. It is very important to understand that most miller.array methods do not modify the instance in place, but return new objects.
is_xray_amplitude_array() is_xray_intensity_array()
A series of methods in order to check which type of miller array we are using are available. Above, two examples. All this methods return True or False.
To select all of the reflections within a particular resolution shell
resolution_filter(dmin,dmax)