GeoServer Layer 테두리 색상 제거
by 구설구설발생한 문제
OTB Radiometric Indices 위성 영상 분석 결과의 가시성을 개선하기 위해 스타일을 적용하는 과정에서 문제가 있었다.
기존 GeoServer에 적용된 NDVI 스타일이 위성 영상 영역 외부(데이터가 없는 영역)에도 적용되는 문제였다.
문제의 원인
위성 영상의 footprint 내부에서도 데이터가 없는 공간이 존재하는데, 데이터가 없어도 otb radiometric indices 처리 과정에서 유효한 값으로 간주되어 스타일이 잘못 적용되는 것이다.
데이터가 없는 외곽 부분의 greyscale 값이 정확히 0임을 확인하였고, 스타일 파일을 수정해서 이를 반영해야 했다.
해결 방법
greyscale 값이 정확히 0인 경우에는 opacity를 0으로 설정하여 보이지 않게 하고, greyscale 값이 0보다 크거나 작으면 opacity를 1로 유지하도록 스타일 파일을 수정하여 해결하였다.
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" version="1.0.0">
<NamedLayer>
<Name>Sentinel2 NDVI</Name>
<UserStyle>
<Title>NDVI</Title>
<FeatureTypeStyle>
<Rule>
<RasterSymbolizer>
<Opacity>1.0</Opacity>
<ColorMap>
<ColorMapEntry color="#000000" quantity="-1" />
<ColorMapEntry color="#0000ff" quantity="-0.75"/>
<ColorMapEntry color="#ff00ff" quantity="-0.25"/>
<ColorMapEntry color="#ff0000" quantity="-0.0000000001" />
<ColorMapEntry color="#ff0000" quantity="0" opacity="0"/>
<ColorMapEntry color="#ff0000" quantity="0.0000000001" />
<ColorMapEntry color="#ffff00" quantity="0.5"/>
<ColorMapEntry color="#00ff00" quantity="1"/>
</ColorMap>
</RasterSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
정확히 0만 필터링 하는 방법이 없기에 0보다 아주 조금 크거나 작은 경우에는 opacity 1, 정확히 0이면 opacity 0으로 설정하여 해결하였다.
'일기' 카테고리의 다른 글
Next.js Socket Hangup 오류 (0) | 2025.01.03 |
---|---|
병렬 라우팅 사용 시 Next.js 미들웨어가 리디렉션을 하지 않는 이슈 (1) | 2024.11.11 |
블로그의 정보
공부중임
구설구설