
au.gov.amsa.geo.distance.DistanceTravelledMovieMaker Maven / Gradle / Ivy
The newest version!
package au.gov.amsa.geo.distance;
import static au.gov.amsa.geo.distance.DistanceTravelledCalculator.calculateTrafficDensity;
import static au.gov.amsa.geo.distance.Renderer.saveAsPng;
import static java.util.Optional.of;
import java.io.File;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import au.gov.amsa.geo.Util;
import au.gov.amsa.geo.distance.DistanceTravelledCalculator.CalculationResult;
import au.gov.amsa.geo.model.Options;
import rx.Observable;
import rx.Observer;
import rx.functions.Action1;
import rx.functions.Func1;
public class DistanceTravelledMovieMaker {
private static Logger log = LoggerFactory
.getLogger(DistanceTravelledMovieMaker.class);
/**
* Saves a sequence of image files of Vessel Traffic Density plots to the
* imageDirectory
with filenames map1.png, map2.png, etc.
*
* @param options
* @param files
* @param times
* @param imageDirectory
*/
private static void saveImagesWithTimeRange(final Options options,
final Observable files, Observable times,
final String imageDirectory) {
times.buffer(2, 1).doOnNext(new Action1>() {
AtomicInteger i = new AtomicInteger();
@Override
public void call(List pair) {
if (pair.size() < 2)
return;
Long startTime = pair.get(0);
Long finishTime = pair.get(1);
saveImageWithTimeRange(options, files, startTime, finishTime,
imageDirectory + "/map" + i.incrementAndGet() + ".png");
}
}).subscribe(reportErrors());
}
private static Observer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy