@@ -302,13 +302,13 @@ private Object getAllRegionalResults (Request req, Response res) throws IOExcept
302302 progressListener .beginTask ("Creating and archiving geotiffs..." , nSteps );
303303 // Iterate over all dest, cutoff, percentile combinations and generate one geotiff for each combination.
304304 List <HumanKey > humanKeys = new ArrayList <>();
305+ GridResultType gridResultType = determineGridResultType (analysis );
305306 for (String destinationPointSetId : analysis .destinationPointSetIds ) {
306307 OpportunityDataset destinations = getDestinations (destinationPointSetId , userPermissions );
307- // TODO handle dual access
308308 for (int cutoffMinutes : analysis .cutoffsMinutes ) {
309309 for (int percentile : analysis .travelTimePercentiles ) {
310310 HumanKey gridKey = getSingleCutoffGrid (
311- analysis , destinations , cutoffMinutes , percentile , GridResultType . ACCESS , FileStorageFormat .GEOTIFF
311+ analysis , destinations , cutoffMinutes , percentile , gridResultType , FileStorageFormat .GEOTIFF
312312 );
313313 humanKeys .add (gridKey );
314314 progressListener .increment ();
@@ -389,10 +389,7 @@ private UrlWithHumanName getRegionalResults (Request req, Response res) throws I
389389 }
390390 final UserPermissions userPermissions = UserPermissions .from (req );
391391 RegionalAnalysis analysis = getAnalysis (regionalAnalysisId , userPermissions );
392-
393- // TODO handle a regional analysis that includes both regular accessibility and dual access results.
394- GridResultType gridResultType = analysis .request .includeTemporalDensity ? GridResultType .DUAL_ACCESS : GridResultType .ACCESS ;
395-
392+ GridResultType gridResultType = determineGridResultType (analysis );
396393 // If a query parameter is supplied, range check it, otherwise use the middle value in the list.
397394 int threshold ;
398395 if (gridResultType .equals (GridResultType .DUAL_ACCESS )) {
@@ -449,6 +446,12 @@ private UrlWithHumanName getRegionalResults (Request req, Response res) throws I
449446 return fileStorage .getJsonUrl (gridKey .storageKey , gridKey .humanName );
450447 }
451448
449+ // This assumes each set of regional analysis results has only primal or dual access, not both.
450+ // TODO handle regional analyses that include both regular accessibility and dual access results.
451+ private GridResultType determineGridResultType (RegionalAnalysis analysis ) {
452+ return analysis .request .includeTemporalDensity ? GridResultType .DUAL_ACCESS : GridResultType .ACCESS ;
453+ }
454+
452455 private Object getCsvResults (Request req , Response res ) {
453456 final String regionalAnalysisId = req .params ("_id" );
454457 final CsvResultType resultType = CsvResultType .valueOf (req .params ("resultType" ).toUpperCase ());
0 commit comments