private static boolean isGeoArrowCoordinate(Type struct) {
      if (struct.isPrimitive()) {
        return false;
      }
      var group = struct.asGroupType();
      var names = group.getFields().stream().map(Type::getName).collect(Collectors.toSet());
      var types = group.getFields().stream()
        .map(d -> d.isPrimitive() ? d.asPrimitiveType().getPrimitiveTypeName() : null).collect(Collectors.toSet());
      return types.equals(Set.of(PrimitiveType.PrimitiveTypeName.DOUBLE)) &&
        (names.equals(Set.of("x", "y")) || names.equals(Set.of("x", "y", "z")) ||
          names.equals(Set.of("x", "y", "z", "m")));
    }
Returns a new context that flattens-out this level of the hierarchy and writes values into the parent field.
planetiler-core/src/main/java/com/onthegomap/planetiler/reader/parquet/ParquetRecordConverter.java