GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?

简介: GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?

简介:

投影转换是一种将三维空间中的物体及其属性转换为二维平面上的方法。它是一种将三维空间坐标(x,y,z)映射到二维平面坐标(x',y')的技术。在计算机图形学和计算机视觉中,投影转换是非常重要的,因为它可以帮助我们将三维物体呈现在二维屏幕上,并且可以进行各种变换和处理。常见的投影转换有正交投影和透视投影。在GEE中我们可以使用哨兵2号数据其中任何一个波段所自带的坐标,让其成为我们默认的坐标,然后将其重新投影。

这里我们发现无法转换的原因在于,这里的坐标通过您(盲目)指定的投影中内置的仿射变换进行缩放和偏移。打印投影时您可以看到这些值。不过我们也可以使用投影的 wkt 进行新投影,以便获得默认的投影比例和偏移量。

函数:

wkt()

Returns a WKT representation of the base coordinate system of this Projection.

返回此投影的基坐标系的 WKT 。

Arguments:

this:projection (Projection)

Returns: String

projection()

Returns the default projection of an Image. Throws an error if the bands of the image don't all have the same projection.

Arguments:

this:image (Image):

The image from which to get the projection.

Returns: Projection

transform()

Returns a WKT representation of the transform of this Projection. This is the transform that converts from projected coordinates to the base coordinate system.

Arguments:

this:projection (Projection)

Returns: String

原始投影代码:

// Coords in Australia
var jsonPoly = {'type': 'Polygon', 'coordinates': [[[151.2927484, -33.7224076], [151.2953236, -33.7345426], [151.3093994, -33.7331863], [151.3062239, -33.7205514], [151.2927484, -33.7224076]]]};
var ee_geom = ee.Geometry(jsonPoly, 'EPSG:4326'); // WGS84 geographic
var sr_data = ee.ImageCollection('COPERNICUS/S2').filterDate('2018-06-03', '2018-06-05').filter(ee.Filter.bounds(ee_geom));
var img = sr_data.first();
print(img.get('system:index') );
var projObj = img.select('B3').projection(); // a UTM EPSG, 32756
var eeGeomUtm = ee_geom.transform(projObj, 1).coordinates().get(0);
print(eeGeomUtm);
// Would have expected coords something in the approx vicinity of:
// Easting: 342228.66002316
// Northing: 6268389.4293557

未成功投影的结果

List (5 elements)

0:

[4181.8970063,3272.6363911]

1:

[4306.4270138,3249.9945839]

2:

[4338.1488216,3389.6226067]

3:

[4207.9833261,3406.8093767]

4:

[4181.8970063,3272.6363911]

修改后的代码:

// Coords in Australia
var jsonPoly = {'type': 'Polygon', 'coordinates': [[[151.2927484, -33.7224076], [151.2953236, -33.7345426], [151.3093994, -33.7331863], [151.3062239, -33.7205514], [151.2927484, -33.7224076]]]};
var ee_geom = ee.Geometry(jsonPoly, 'EPSG:4326'); // WGS84 geographic
var sr_data = ee.ImageCollection('COPERNICUS/S2').filterDate('2018-06-03', '2018-06-05').filter(ee.Filter.bounds(ee_geom));
var img = sr_data.first();
print(img.get('system:index') );
var projObj = img.select('B3').projection(); // a UTM EPSG, 32756
projObj = ee.Projection(projObj.wkt())
var eeGeomUtm = ee_geom.transform(projObj, 1).coordinates().get(0);
print(eeGeomUtm);

使用wkt函数的结果

List (5 elements)

0:

[341818.970063,6267313.636089]

1:

[342079.833261,6265971.906233]

2:

[343381.488216,6266143.773933]

3:

[343064.270138,6267540.054161]

4:

[341818.970063,6267313.636089]

相关文章
|
编解码
没有地理参考的图层添加坐标系:ENVI
本文介绍基于ENVI软件,对不含有任何地理参考信息的栅格遥感影像添加地理坐标系或投影坐标系等地理参考信息的方法~
229 4
没有地理参考的图层添加坐标系:ENVI
|
编解码 索引 Python
python--根据任意非网格经纬度坐标,找到均匀网格点上最接近的经纬度坐标
需求:根据非规则经纬度坐标,查找均匀网格点上最接近的经纬度坐标,并提取该点上的变量。
python--根据任意非网格经纬度坐标,找到均匀网格点上最接近的经纬度坐标
|
算法 JavaScript 前端开发
84坐标系、02坐标系、百度坐标之间相互转换算法
最近有同学反馈之前的坐标系转换有问题,对之前的工具类进行了修正。 一、地图坐标转换java工具类 包含84坐标系、02坐标系、百度地图、高德地图、腾讯地图坐标之间相互转换的算法 wgs84ToGcj02:将 WGS84 坐标系下的经纬度转换为 GCJ02 坐标系下的经纬度。 gcj02ToWgs84:将 GCJ02 坐标系下的经纬度转换为 WGS84 坐标系下的经纬度。 gcj02ToBd09:将 GCJ02 坐标系下的经纬度转换为 BD09 坐标系下的经纬度。 bd09ToGcj02:将 BD09 坐标系下的经纬度转换为 GCJ02 坐标系下的经纬度。
1153 0
84坐标系、02坐标系、百度坐标之间相互转换算法
|
定位技术
ArcGIS:如何对栅格图像进行地理配准和定义投影?
ArcGIS:如何对栅格图像进行地理配准和定义投影?
1887 0
|
7月前
|
编解码 定位技术
ENVI对不含地理参考信息的栅格图像添加地理或投影坐标系信息
ENVI对不含地理参考信息的栅格图像添加地理或投影坐标系信息
|
7月前
|
定位技术
基于ENVI实现栅格遥感影像按图层行列号与像元数量划定矩形研究区域并裁剪
基于ENVI实现栅格遥感影像按图层行列号与像元数量划定矩形研究区域并裁剪
C#编程练习(02):大地坐标系(LBH)向空间直角坐标系(XYZ)的转换及其逆转换
C#编程练习(02):大地坐标系(LBH)向空间直角坐标系(XYZ)的转换及其逆转换
C#编程练习(02):大地坐标系(LBH)向空间直角坐标系(XYZ)的转换及其逆转换
|
Python
点云在任意平面上获取二维投影
点云在任意平面上获取二维投影
1174 0
点云在任意平面上获取二维投影
|
定位技术
任意一张图片的CGCS2000坐标配准
任意一张图片的CGCS2000坐标配准
153 0
|
数据挖掘
ArcGIS:如何进行栅格数据的拼接和裁剪、坡度坡向的提取、地形透视图的建立、等高线的提取、剖面图的创建?
ArcGIS:如何进行栅格数据的拼接和裁剪、坡度坡向的提取、地形透视图的建立、等高线的提取、剖面图的创建?
427 0