BigArrays.BigArray
— TypeBigArray
currently, assume that the array dimension (x,y,z,...) is >= 3 all the manipulation effects in the x,y,z dimension
BigArrays.BigArray
— MethodBigArray(layerPath::AbstractString; mip=1, fillMissing=true, mod::Symbol=DEFAULT_MODE)
BigArrays.BigArray
— MethodBigArray( d::AbstractBigArrayBackend, info::Info;
fillMissing::Bool=fillMissing,
mode::Symbol=DEFAULT_MODE)
Parameters: d: the bigarray storage backend info: the info containing the metadata mip: mip level. Note that mip 1 is the highest resolution. the mip level is like a image pyramid with difference downsampled levels. fillMissing: whether fill the missing blocks in the storage backend with zeros or not. mode: the io mode with options in {multithreading, sequential, multiprocesses, sharedarray}
BigArrays.BigArray
— MethodBigArray(info::Info; mip::Integer=1, fillMissing::Bool=DEFAULT_FILL_MISSING, mode=DEFAULT_MODE)
create a new directory with random name. this function was designed for test and benchmark. we need another function the clear the whole array
Base.getindex
— MethodBase.getindex( ba::BigArray, idxes::Union{UnitRange, Int}...)
get index with different modes: taskthreads, multithreads, sequential
Base.setindex!
— MethodBase.setindex!( ba::BigArray{D,T}, buf::Array{T,N},
setindex with different mode: taskthreads, multithreads, sequential
BigArrays.adjust_volume_boundary
— Methodadjust the global and buffer range according to total volume size. shrink the range stop if the ranges passes the volume boundary.
BigArrays.commit_info
— Methodcommit_info(ba::BigArray)
write info to the storage backend
BigArrays.get_num_chunks
— Methodget_num_chunks(ba::BigArray, idxes::Union{UnitRange,Int}...)
get number of chunks needed to do cutout from this range
BigArrays.getindex_sequential
— Methodgetindex_sequential(ba::BigArray, idxes::Union{UnitRange, Int}...)
sequential implementation for debuging
BigArrays.list_missing_chunks
— Methodlist_missing_chunks(ba::BigArray, idxes::Union{UnitRange, Int}...)
list the non-existing keys in the index range if the returned list is empty, then all the chunks exist in the storage backend.
BigArrays.setindex_multithreads!
— Methodput array in RAM to a BigArray backend
this version uses channel to control the number of asynchronized request
BigArrays.setindex_sequential!
— Methodsequential function, good for debuging
BigArrays.setindex_taskthreads!
— Methodput array in RAM to a BigArray backend
this version uses channel to control the number of asynchronized request