【问题标题】:Serving large rasters using GeoServer results in JAVA HEAP out of memory使用 GeoServer 服务大型栅格会导致 JAVA HEAP 内存不足
【发布时间】:2016-05-18 17:21:24
【问题描述】:

我在 GeoServer 上有非常大的栅格,例如 35000 像素 X 30000 像素。(马赛克图像) 我目前正在做的是使用 WMS 下载这些图像,然后对该图像执行分析,修改它(我正在为该图像的某些部分着色),然后我将它作为新的上传回 GeoServer层。

这适用于最大 20000 像素 X 20000 像素的图像,但之后 GeoServer 无法合并它们,而不是 geotiff 图像返回包含 xml 内容的文件并在其中:

错误 [geoserver.ows] - java.lang.OutOfMemoryError: Java 堆空间

现在在 java 选项变量中,我插入 Xmx 为 22 GB,运行码头 Xmx 的内部脚本被放置为 20GB。我使用 top 和 free -m 命令密切关注平均负载,并且使用的内存从未超过 8GB。 我的服务器有 28GB RAM 和 8 个处理器,CPU 负载从未超过 700%。 有人可以给我一个提示我做错了什么,我能做些什么,这样我就可以下载这么大的 Geotiff 图像。 顺便说一句,我正在使用码头作为服务器。

【问题讨论】:

    标签: java jetty gis geoserver wms


    【解决方案1】:

    虽然我没有意识到为什么会发生此错误,但我还是设法使用 Web 覆盖服务 (WCS) 而不是 WMS 从 GeoServer 下载了整个栅格。 WCS 是下载大型光栅图像时的正确方法。 因此,如果有人偶然发现类似的问题,我建议您像这样将发布请求发送到您的地理服务器上的 wcs 服务 发布 http://192.168.4.162:9090/geoserver/wcs 并作为数据传递 xml 描述您的图层(您可以使用 Geoserver 中 demos 菜单下的 WCS 请求构建器创建它)。我的看起来像这样:

    <?xml version="1.0" encoding="UTF-8"?><GetCoverage version="1.0.0" service="WCS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wcs" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xsi:schemaLocation="http://www.opengis.net/wcs http://schemas.opengis.net/wcs/1.0.0/getCoverage.xsd">
      <sourceCoverage>fiware:test</sourceCoverage>
      <domainSubset>
        <spatialSubset>
          <gml:Envelope srsName="EPSG:4326">
            <gml:pos>-87.3539257 38.3719729154</gml:pos>
            <gml:pos>-87.3437449312 38.3783359</gml:pos>
          </gml:Envelope>
          <gml:Grid dimension="2">
            <gml:limits>
              <gml:GridEnvelope>
                <gml:low>0 0</gml:low>
                <gml:high>32768 20479</gml:high>
              </gml:GridEnvelope>
            </gml:limits>
            <gml:axisName>x</gml:axisName>
            <gml:axisName>y</gml:axisName>
          </gml:Grid>
        </spatialSubset>
      </domainSubset>
      <output>
        <crs>EPSG:4326</crs>
        <format>GeoTIFF</format>
      </output>
    </GetCoverage>
    

    别忘了把 application/xml 作为 Content-type。 干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      相关资源
      最近更新 更多