public Map<Integer,Cloud> getClouds(Cloud template) {
Map<Integer,Cloud> cloudMap = new HashMap<Integer,Cloud>();
SequenceFileDirectoryReader pointsReader = null;
try {
IntWritable k = new IntWritable();
WeightedVectorWritable wvw = new WeightedVectorWritable();
pointsReader = new SequenceFileDirectoryReader(clusteredPointsPath);
while (pointsReader.next(k, wvw)) {
int clusterId = k.get();
Cloud c = cloudMap.get(clusterId);
if (c == null) {
c = new Cloud(template);
}
Iterator<Element> viter = wvw.getVector().iterateNonZero();
while (viter.hasNext()) {
Element e = viter.next();
String feature = invertedFeatureIndex.get(e.index());
c.addTag(new Tag(feature, e.get()));
}