Iterator that uses a rank 2 list of indeces. For example, to iterate over 10 points of a rank 2 dataset, this would be constructed with a dataset[10,2].
Create the iterator
get the value from ds at the current iterator position.
replace the value in ds at the current iterator position.