17
17
import com .conveyal .analysis .results .MultiOriginAssembler ;
18
18
import com .conveyal .analysis .results .PathCsvResultWriter ;
19
19
import com .conveyal .analysis .results .RegionalResultWriter ;
20
+ import com .conveyal .analysis .results .TemporalDensityCsvResultWriter ;
20
21
import com .conveyal .analysis .results .TimeCsvResultWriter ;
21
22
import com .conveyal .analysis .util .JsonUtil ;
22
23
import com .conveyal .file .FileStorage ;
@@ -524,10 +525,12 @@ private RegionalAnalysis createRegionalAnalysis (Request req, Response res) thro
524
525
if (!task .makeTauiSite ) {
525
526
if (task .recordAccessibility ) {
526
527
if (task .originPointSet != null ) {
528
+ // Freeform origins - create CSV regional analysis results
527
529
var accessWriter = new AccessCsvResultWriter (task , fileStorage );
528
530
resultWriters .add (accessWriter );
529
531
regionalAnalysis .resultStorage .put (accessWriter .resultType (), accessWriter .getFileName ());
530
532
} else {
533
+ // Gridded origins - create gridded regional analysis results
531
534
resultWriters .addAll (GridResultWriter .createWritersFromTask (regionalAnalysis , task , fileStorage ));
532
535
}
533
536
}
@@ -543,6 +546,20 @@ private RegionalAnalysis createRegionalAnalysis (Request req, Response res) thro
543
546
resultWriters .add (pathsWriter );
544
547
regionalAnalysis .resultStorage .put (pathsWriter .resultType (), pathsWriter .getFileName ());
545
548
}
549
+
550
+ if (task .includeTemporalDensity ) {
551
+ if (task .originPointSet == null ) {
552
+ // Gridded origins. The full temporal density information is probably too voluminous to be useful.
553
+ // We might want to record a grid of dual accessibility values, but this will require some serious
554
+ // refactoring of the GridResultWriter.
555
+ // if (job.templateTask.dualAccessibilityThreshold > 0) { ... }
556
+ throw AnalysisServerException .badRequest ("Temporal density of opportunities cannot be recorded for gridded origin points." );
557
+ } else {
558
+ var tDensityWriter = new TemporalDensityCsvResultWriter (task , fileStorage );
559
+ resultWriters .add (tDensityWriter );
560
+ regionalAnalysis .resultStorage .put (tDensityWriter .resultType (), tDensityWriter .getFileName ());
561
+ }
562
+ }
546
563
checkArgument (notNullOrEmpty (resultWriters ), "A regional analysis should always create at least one grid or CSV file." );
547
564
}
548
565
0 commit comments