File Methods ============ The **oap** library contains a couple of Python functions to save optical-arrays permanently or convert them to PNGs. There are also some helper functions to simplify the work with a great number of files. | ---- | array_as_oap_file ----------------- >>> oap.array_as_oap_file(array, filename, p_type=oap.UNDEFINED, ... file_extension=".oap") **Description:** Stores an optical-array with associated particle type as a binary file (oap-file). **Parameters:** *array* : string, list or numpy-array (1d or 2d | dtype=int) The optical-array (particle image). *filename* : string File path *without* file extension. *p_type* : char, optional Particle Type of the cloud particle (default is b'u'). *file_extension* : string, optional Determines the file extension (default is ".oap"). | **Examples:** >>> oap.array_as_oap_file(array, filename="particles/column01", ... p_type=oap.COLUMN) | ---- | array_as_png ------------ >>> oap.array_as_png(array, filename=None, scale=1, slice_size=64) **Description:** Creates a PNG image of an optical-array. If the file name is not equal to None, the image is saved. Otherwise, the image is saved in random access memory only. **Parameters:** *array* : string, list or numpy-array (1d or 2d | dtype=int) The optical-array (particle image). *filename* : string, optional File path *without* file extension. *scale* : integeer, optional The image scale (default is 1). *slice_size* : integer, optional The width of the optical-array (number of diodes). Only necessary, if the optical-array is one dimensional (default is 64). **Returns:** *png image* : PIL.Image.Image A PIL image object that is stored in memory. | **Examples:** >>> png_image = oap.array_as_png(array, filename="imgages/column01", scale=3) >>> png_image | ---- | filepaths --------- >>> oap.filepaths(directory, exclude=None, include=None, ... p_types=None, file_extension=OAP_FILE_EXTENSION) **Description:** Finds all files with the specified file extension in a directory and returns a list of file paths. It is possible to search only specific folders, or exclude folders from the search. **Parameters:** *directory* : string The directory to be searched. *exclude* : list of strings, optional A list of folders to be excluded (default is None). *include* : list of strings, optional A list of specific subfolders to be searched exclusively (default is None). *p_types* : list of chars A list of the particle types you are looking for (default is None). * This should only be used if the searched files are oap-files! *file_extension* : string, optional The wanted file extension (default is ".oap") **Returns:** A list of file paths. | **Examples:** >>> files = oap.filepaths("tests", include=["data"]) ['tests\\data\\array01.oap', 'tests\\data\\array02.oap', 'tests\\data\\array03.oap', 'tests\\data\\array04.oap'] | ---- | read_particle_type ------------------ >>> oap.read_particle_type(filename) **Description:** Reads and returns the particle type of an oap file. **Parameters:** *filename* : string File path *with* file extension. **Returns:** *particle type* : char | **Examples:** >>> p_type = oap.read_particle_type("particles/column01.oap") >>> p_type b'c' >>> p_type == oap.COLUMN True | ---- | read_oap_file ------------- >>> oap.read_oap_file(filename, as_type="array2d", slice_size=64) **Description:** Loads a binary oap-file and returns the optical-array and the corresponding stored particle type. **Parameters:** *array* : string, list or numpy-array (1d or 2d | dtype=int) The optical-array (particle image). *filename* : string File path *with* file extension. *as_type* : string, optional The type of the returned optical-array - string, list or numpy-array (1d or 2d | dtype=int). * Possible values: None, "str", "string", "list", "array", "array2d" *slice_size* : integer, optional The width of the optical-array (default is 64). **Returns:** *optical-array, particle type* : tuple The optical-array and the corresponding particle type. | **Examples:** >>> array, p_type = oap.read_oap_file("particles/column01.oap") >>> p_type b'c' >>> p_type == oap.COLUMN True >>> oap.print_array(array) 1 1 1 1 1 2 2 1 1 2 3 2 3 3 2 2 2 2 3 2 2 1 1 1 2 3 3 3 3 2 2 2 2 3 2 2 2 2 1 1 2 1 1 1 2 3 3 3 3 3 2 3 3 2 3 3 3 3 3 2 2 3 2 2 2 2 2 2 2 1 2 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 2 3 3 2 2 2 3 1 1 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 1 2 2 2 3 3 2 3 3 3 3 3 3 3 3 3 3 3 2 3 3 2 1 1 1 2 2 3 2 3 3 3 3 3 3 2 3 3 2 1 1 2 1 2 2 3 3 3 3 3 2 3 2 1 1 1 1 1