USGS以WorldImage格式(* .tif和随附的* .tfw世界文件)提供不同分辨率的正像四边形。GeoServer(2.1.0-2.1.2)可以通过创建WorldImage存储并发布图层来使用其中的一些四边形(其中一些在尝试发布图层时会引发异常)。发布已从当前工作的WorldImage图层转换的GeoTiff图层时,出现以下异常:
2012-01-10 08:38:33,228 WARN [referencing.factory] - Axis elements found in a wkt definition, the force longitude first axis order hint might not be respected:
PROJCS["WGS84 / Simple Mercator", GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295]], PROJECTION["Mercator_1SP_Google"], PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0], PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0], PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AXIS["x", EAST], AXIS["y", NORTH], AUTHORITY["EPSG","54004"]]
2012-01-10 08:38:39,674 INFO [geoserver.web] - Error saving layer
java.lang.NullPointerException
at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getFormat(CoverageStoreInfoImpl.java:42)
...
我尝试通过以下方式使用gdal_translate(用实际值替换1234):gdal_translate -of GTiff -a_srs "EPSG:2239" -co "TILED=YES" 1234.tif ../geotiff/1234.tif
转换成功,并且我可以在GeoServer中成功创建GeoTiff存储,但是由于上述错误而无法发布图层。这使我相信我正在尝试发布格式不正确的图层(在两种情况下)。因此,将WorldImage格式的[工作中] USGS正射影像转换为GeoServer 2.1.2的平铺GeoTiff的正确方法是什么?
我想我们需要知道您实际使用的是哪个epsg代码,因为这可能很重要
—
Ian Turton
编辑以显示我尝试使用从EarthExplorer检索的2007年数据集进行的EPSG。
—
马特
您知道输入tiff的SRS是什么吗?
—
伊恩·特顿
看来您还没有找到根本原因,因为
—
MerseyViking 2012年
Parameter message can't be null
当FeedbackMessage没有消息字符串时会引发Apache错误(有关详细信息,请参见此处:bit.ly/zBUjy3)。我建议您发布整个堆栈跟踪,以便我们可以识别GeoServer试图告诉我们的消息。
gdal_translate -a_srs
不重新投影,它只是分配(或覆盖)图像的投影。如果图像没有边界信息,则假定每个像素1 US英尺(对于EPSG:2239),并将图像放置在坐标系的原点。如果边框位于比美国其他英尺为单位,那么你的图像可以在任何地方或任何大小取决于单位和任何投影它是在数字化的起源。