OpenWaterFoundation / owf-app-infomapper-ng

Open Water Foundation InfoMapper web application for menu-driven maps and visualizations, using Angular
GNU General Public License v3.0
1 stars 2 forks source link

Handle properties for raster classification #341

Closed smalers closed 3 years ago

smalers commented 3 years ago

Raster layers may have multiple bands and there needs to be a way to indicate which band is used for the classification. The SetGeoLayerViewCategorizedSymbol GeoProcessor command currently requires that ClassificationAttribute command parameter is set. Because this did no apply to rasters, I was putting in a value of 1.

My suggestion is that we use this configuration property and set to the band for rasters. Then no additional configuration property needs to be set. This will at least get over the hump and then we can evaluate.

As for the resolution, I recommend recognizing a free-form property on the symbol, rasterResolution=32 or similar. The default would be 32 but a higher number will result in higher resolution display. It would be good to reach out to the software author to figure out what that actually means.

Nightsphere commented 3 years ago

The ClassificationAttribute property has now been updated to describe the raster band desired for the classification file when a raster is created with multiple bands.

I also added the rasterResolution property in the geoLayerSymbol. Using both (for the multiple band Municipality example we've been working on) would look something like this:

"geoLayerSymbol": {
    "name": "Colorize municipalities",
    "description": "Symbol for the municipality raster",
    "classificationType": "Categorized",
    "classificationAttribute": "7",
    "properties": {
      "classificationFile": "../map-classification-files/Municipal_Growth-classify-year.csv",
      "rasterResolution": "32"
    }
  }
smalers commented 3 years ago

I had to set rasterResolution=128 (a higher number) for the Poudre Basin Information website to display the grid in a way that was not too blocky. I would appreciate it if you could reach out to the developers and see if they can provide an explanation of the resolution. I'm wondering if our code can automatically default the resolution based on the pixel size and map extent. Or, at least document how someone might calculate the resolution themselves for a configuration file. I just tried a larger number and it looks OK, although there are some artifacts around line edges. I set the opacity and fillOpacity to the same so I don't think the grids that are shown are due to a property. Any ideas on how to avoid that? Is it because rendering is causing overlap of cells and the color result is different because of that?

smalers commented 3 years ago

I updated the GeoProcessor and InfoMapper documentation related to this. Leave this issue open until get documentation for the raster resolution.

Nightsphere commented 3 years ago

I created an issue on the georaster-for-leaflet-layer and am now waiting for a respone.

Nightsphere commented 3 years ago

Here is a link to his response:

https://github.com/GeoTIFF/georaster-layer-for-leaflet/issues/51#issuecomment-740321821

smalers commented 3 years ago

I updated the documentation to incorporate the information from the author's answer. Based on that, I recommend changing the default value to 64. Then this issue can be closed.

Nightsphere commented 3 years ago

The resolution for both single and multi-band raster layers has been updated from 32 to 64. Closing this issue.