private Path getPath(String name, String type, Path defaultPath, String defaultUrl) {
    Path path = arguments.file(name + "_path", name + " " + type + " path", defaultPath);
    boolean refresh =
      arguments.getBoolean("refresh_" + name, "Download new version of " + name + " if changed", refreshSources);
    boolean freeAfterReading = arguments.getBoolean("free_" + name + "_after_read",
      "delete " + name + " input file after reading to make space for output (reduces peak disk usage)", false);
    if (downloadSources || refresh) {
      String url = arguments.getString(name + "_url", name + " " + type + " url", defaultUrl);
      if ((!Files.exists(path) || refresh) && url != null) {
        toDownload.add(new ToDownload(name, url, path));
      }
    }
    inputPaths.add(new InputPath(name, path, freeAfterReading));
    return path;
  }
Reads all elements from all sourced that have been added, generates map features according to the profile, and
writes the rendered tiles to the output archive.

@throws IllegalArgumentException if expected inputs have not been provided
planetiler-core/src/main/java/com/onthegomap/planetiler/Planetiler.java