View Javadoc
1   package au.gov.amsa.animator;
2   
3   import java.io.File;
4   import java.util.Arrays;
5   
6   import au.gov.amsa.risky.format.BinaryFixes;
7   import au.gov.amsa.risky.format.BinaryFixesFormat;
8   import au.gov.amsa.risky.format.Fix;
9   import rx.Observable;
10  import rx.functions.Func2;
11  
12  public class Sources {
13  
14      public static Observable<Fix> singleDay() {
15          File file = new File("/media/an/daily-fixes/2014/2014-02-01.fix");
16          return BinaryFixes.from(file, true, BinaryFixesFormat.WITH_MMSI);
17          // File file = new File("/media/an/nmea/2014/NMEA_ITU_20140201.gz");
18          // return Streams.extractFixes(Streams.nmeaFromGzip(file))
19          // // .filter(fix -> fix.mmsi() == 503433000)
20          // .take(10000000);
21      }
22  
23      public static Observable<Fix> tasmania() {
24          Long[] vessels = new Long[] { 503433000L, 503432000L, 503087000L };
25          return Observable.from(Arrays.asList(vessels))
26                  .map(mmsi -> new File("/media/an/binary-fixes-5-minute/2015/" + mmsi + ".track"))
27                  .flatMap(file -> BinaryFixes.from(file))
28                  .toSortedList(new Func2<Fix, Fix, Integer>() {
29  
30                      @Override
31                      public Integer call(Fix a, Fix b) {
32                          return Long.compare(a.time(), b.time());
33                      }
34                  }).doOnNext(list -> System.out.println("sorted")).flatMapIterable(x -> x);
35      }
36  
37  }