cdm/src/main/java/thredds/client/catalog/tools/DataFactory.java
private Access getImageAccess(Dataset ds, ucar.nc2.util.CancelTask task, Result result) throws IOException {

    List<Access> accessList = new ArrayList<>(ds.getAccess()); // a list of all the accesses
    while (accessList.size() > 0) {
      Access access = chooseImageAccess(accessList);
      if (access == null) {
        result.errLog.format("No access that could be used for Image Type %s %n", ds);
        return null;
      }

      // deal with RESOLVER type
      String datasetLocation = access.getStandardUrlName();
      Dataset rds = openResolver(datasetLocation, task, result);
      if (rds == null)
        return null;

      // use the access list from the resolved dataset
      accessList = new ArrayList<>(ds.getAccess());
    }

    return null;
  }
private Access getImageAccess(Dataset ds, ucar.nc2.util.CancelTask task, Result result) throws IOException {

    List<Access> accessList = new ArrayList<>(ds.getAccess()); // a list of all the accesses
    while (accessList.size() > 0) {
      Access access = chooseImageAccess(accessList);
      if (access == null) {
        result.errLog.format("No access that could be used for Image Type %s %n", ds);
        return null;
      }

      // deal with RESOLVER type
      String datasetLocation = access.getStandardUrlName();
      Dataset rds = openResolver(datasetLocation, task, result);
      if (rds == null)
        return null;

      // use the access list from the resolved dataset
      accessList = new ArrayList<>(ds.getAccess());
    }

    return null;
  }
look for an access method for an image datatype