首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么sf::st_transform()返回的对象的投影与调用中使用的投影不同?

sf::st_transform()是一个用于将空间数据进行投影转换的函数。它接受一个输入几何对象和一个目标投影参数,并返回一个新的几何对象,该对象是将输入几何对象从输入投影转换到目标投影后的结果。

当sf::st_transform()返回的对象的投影与调用中使用的投影不同时,可能有以下几个原因:

  1. 参数设置错误:在调用sf::st_transform()时,可能输入了错误的目标投影参数。投影参数通常由投影类型、中央经线、标准纬线等组成,如果参数设置不正确,就会导致投影转换结果与预期不符。建议仔细检查投影参数的设置,确保其准确性。
  2. 数据源投影不匹配:输入几何对象的投影与调用中使用的投影不匹配。在进行投影转换时,需要确保输入几何对象的投影与目标投影一致,否则转换结果将不正确。可以通过使用sf::st_transform()函数之前,先使用sf::st_transform()将输入几何对象转换到目标投影,然后再进行投影转换。
  3. 数据源坐标系不匹配:输入几何对象的坐标系与调用中使用的坐标系不匹配。坐标系是描述空间数据位置的系统,不同的坐标系有不同的投影方式。如果输入几何对象的坐标系与目标投影的坐标系不匹配,投影转换结果将不正确。建议在进行投影转换之前,先确保输入几何对象的坐标系与目标投影的坐标系一致。

总之,要解决sf::st_transform()返回的对象的投影与调用中使用的投影不同的问题,需要仔细检查投影参数的设置、确保输入几何对象的投影与目标投影一致,并确保输入几何对象的坐标系与目标投影的坐标系一致。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OpenGL中的投影使用

OpenGL中的投影使用 在OpenGL中,投影矩阵指定了可视区域的大小和形状。对于正投影与透视投影这两种不同的投影类型,它们分别有各自的用途。...透视投影 它使用透视除法,对距离观察者较远的物体进行缩短和收缩。...由于可视区域前端和后端的宽度度量方法并不同样,导致两个逻辑大小同样的物体,当它们分别位于可视区域的前面和后面时,前者看上去要比后者大一些。...以下的代码设置使用了透视投影,展示了一个由太阳(黄色)、地球(红色)、月亮(灰色)三者构成的运动系统。...,一经调用便不再返回,直到程序终止 glutMainLoop(); return0; } 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118963

82910

OpenCV图像处理中“投影技术”的使用

问题引出 本文区分”问题引出“、”概念抽象“、”算法实现“三个部分由表及里具体讲解OpenCV图像处理中“投影技术”的使用,并通过”答题卡识别“”OCR字符分割”“压板识别”“轮廓展开分析”四个的例子具体讲解算法使用...在这波峰波谷中,存在着的“量化”结果,对应了答题卡中的定位关系 概念抽象 在前面的分析里,我们已经基本建立起“投影”的概念。...vup.push_back(i); if (vdate[i - 1] > 0 && vdate[i] == 0) vdown.push_back(i); } } 在具体使用过程中...在这样的OCR识别中,首先可以通过投影的方法,实现字符的分割。 2 . 压板识别 ? ? 在这样的项目中,同样可以通过投影的方法,获得各个压板的准确定位。 3、轮廓展开分析 ?...在类似树叶这样的测量中,可以通过“极坐标转换”,将树叶的这样的曲线转换成可以分析的投影,从而得到比如“树叶有多少个分叉”“有无缺陷”这样的定量信息。 君子藏器于身,待时而动

1.3K20
  • 如何处理地图投影转换

    R语言中支持GIS数据模型的包一共有两个:sp包和sf包,在旧版的ggplot2中,geom_polygon高度依赖从sp导入的数据对象(虽然也可以从sf中获取)。...之前的文章中没有特别探究投影问题,当时做的案例图是这个样子的,很明显与常见的纸质中国地图有很大差别。 之前使用simple模型练习的图表 ? 常见的多圆锥视角中国地图投影 ?...由于投影后的投影坐标系已经被投影算法转换,所以在使用geom_text等图层函数时,务必要使用与几何对象投影一致的经纬度点,这里使用sf中的点中心计算函数最为快捷。...这便是sf包中核心的投影转换过程。投影函数涉及三个: st_crs() st_set_crs() st_transform() st_crs()用于显示数据模型内包含的投影信息(没有则显示NA)。...st_transform()函数专门用户坐标参考系统的转换。 sf包中的投影参数一共有两种写法,一种是使用其EPSG代码(或称之为WKID或者SRID)。

    1.8K30

    R-ggspatial+ggplot2 实现带指北针和比例尺的空间地图绘制

    主要涉及的知识点如下: sf包shp文件读取及转换投影 ggplot2 + ggspatial 实现指北针和比例尺的添加 sf 读取shp文件并转换投影 我想经常使用R处理空间数据的小伙伴们对sf包一定特别熟悉...当然指北针和比例尺我们都是可以选择样式或者定制的,详细内容可以查看网ggspatial官网 投影转换-高斯-克吕格投影 绘制中国地图时,我们一般使用高斯-克吕格投影,具体原因如下:高斯-克吕格投影没有角度变形...而sf对于投影转换操作也十分简单,代码如下即可: china_shp_pro st_transform(china_pro, 2343) nine_line_pro st_transform...回到这里,绘制高斯-克吕格投影的地图: china_shp_pro st_transform(china_pro, 2343) nine_line_pro st_transform(nine_line...总结 本期推文我们使用ggspatial包、ggplot2包以及sf包的geom_sf()完成另一种指北针和比例尺地图的绘制,希望给大家一些绘制灵感。

    2.8K20

    在Java中为什么不同的返回类型不算方法重载?

    doSomething } public void method(Integer id, String name) { // doSomething } } 为什么不同返回类型不算方法重载...从方法签名的组成规则我们可以看出,方法的返回类型不是方法签名的组成部分,所以当同一个类中出现了多个方法名和参数相同,但返回值类型不同的方法时,JVM 就没办法通过方法签名来判断到底要调用哪个方法了,如下图所示...: 那为什么返回类型不能做为方法签名的一部分呢?...方法重载的使用场景 方法重载的经典使用场景是 String 类型的 valueOf 方法,valueOf 方法重载有 9 种实现,如下图所示: 它可以将数组、对象和基础数据类型转换成字符串类型...总结 在同一个类中定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。方法重载的典型使用场景是 String 中的 valueOf 方法,它有 9 种实现。

    3.4K10

    ggplot2 案例:使用 ggplot2 绘制绘制一幅气泡地图展示各国疫情状况

    约翰·霍普金斯大学提供了一份数据集,使用这份数据集我们可以绘制一幅气泡地图展示这些确诊患者的分布,代码比较简单: 首先导入我们需要的几个 R 包: library(ggplot2) library(sf...) library(readr) library(dplyr) 导入世界地图并把 crs 转换成 4326(其实这份数据的 crs 就是 4326): worldmap sf('world.geo.json...') %>% st_transform(crs = 4326) 把疫情数据读取进来并根据经纬度坐标把这个数据框转换成 sf 对象,同样使用 4326 投影坐标系,这样地图和数据才不会分家: read_csv...99", "100-999", "1,000-49,999", "50,000+")) + guides(color = guide_legend()) + labs(title = "新冠肺炎的全球分布...❝本文的附件和代码可以从知识星球下载:https://t.zsxq.com/iEYVjqr ❞

    1.2K10

    Java中net.sf.json包关于JSON与对象互转的坑

    在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递。数据的格式通常有2种:1、xml;2、JSON。通常来说都是使用JSON来传递数据。...本文正是介绍在Java中JSON与对象之间互相转换时遇到的几个问题以及相关的建议。...在Java中所述的JSON对象,实际是指的JSONObject类,这在各个第三方的JSONjar包中通常都以这个名字命名,不同jar包对其内部实现略有不同。 JSON字符串。...JSON对象和JSON字符串之间的转换是序列化与反序列化的过程,这就是好比Java对象的序列化与反序列化。...  也就是说可以猜测到的是,“net.sf.json”获取Java对象中public修饰符get开头的方法,并将其后缀定义为JSON对象的“key”,而将get开头方法的返回值定义为对应key的“value

    3.3K50

    左手用R右手Python系列12——空间数据可视化与数据地图

    以前我一直觉得Python的绘图工具与R语言ggplot2比起来,不够优雅,这也是我一直坚定的选择使用R+ggplot2深入的学习数据可视化的原因,ggplot2在坐标系的整合与兼容性和扩展性上确实技高一筹...今天要讲解的主角是R语言中的sf包和Python中的geopandas库。...---- 为什么今天把geopandas和R语言空间数据可视化写在一起,因为他们很巧合的用到了相同的地理信息处理技术,无论是数据源的支持上、还是空间数据的结构存储还是投影设置上都是如此。...(替代方案,使用rgdal中的readORG函数或者sf包中的st_read函数) use rgdal::readOGR or sf::st_read china_map1的sf数据对象和Pyhton中的geodatafame对象的对比。 ?

    2.1K40

    frida反射调用对象中的方法与字段

    该篇文章主要介绍当我们碰到参数或者返回值是一个对象时,如何通过frida反射调用该对象的方法(methods)与获取该对象的字段(fields) 添加测试frida反射调用的demo app 写一个测试类...其中display方法参数为ParametersTest对象, 在文中,我们要hook display方法并hook它的参数ParametersTest对象反射调用ParametersTest对象的所有方法及打印...val1) { getReflectFields(val1);//打印所有字段(fields)类型、名称、值 getReflectMethod(val1)//hook ParametersTest对象的所有方法...name is: " + (field.getName())); send("field value is: " + field.get(val1)); }) } 结果如下: frida反射调用类中的方法...(methodName + " return value is: " + retval); return retval;//返回方法返回值 }

    4.4K20

    geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题

    经过试验不同的投影方式、采样方式、数据类型,发现只有在投影方式选择4326(原始数据投影方式是墨卡托-3857),采样方式选择三次卷积法内插等几种重采样方式的时候才会出现边缘的问题,那么很明显导致该问题的原因肯定是投影的时候选择的采样方式造成的...那么为什么采样会造成边缘数据值出现偏差呢?        ...但是目前来看我们必须要想一个办法来解决这个问题,下面就是本文重点要讲的——使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题。...2.扩大区域        这一步很简单,Geotrellis中已经写好了缓冲区分析的函数,直接调用即可,代码如下: poly.buffer(3 * cellWidth)        其中ploy是原始区域...五、总结        以上就是通过使用缓冲区分析的方式解决投影变换中边缘数据值计算过程中出现偏差的问题。看似简单的原理与实现过程,其实同样可以上升到哲学的高度去思考。

    1.3K40

    一个R语言中操纵矢量空间数据的标准化工具—sf

    在可能的情况下,方法作用于一个几何对象(sfg)、一个几何对象集合(sfc)或一个带有属性的集合对象集合(sf),同时返回一个相同类的对象。...在sf包中,所有与底层库GDAL、GEOS和liblwgeom之间的通信,以及与空间数据库之间进行的空间几何对象读写操作,均使用c++编写的二进制序列化和反序列化。...对于未做投影处理的地理空间数据,提供的坐标通常是经纬度,表征的是球面上的点,而非投影后的平面。sf包允许针对此类数据进行所有几何操作,但在操作过程中,GEOS包会弹出提示信息。...除了使用GDAL之外,sf还可以直接读写空间数据库。目前主要通过RPostgreSQL来与PostGIS一起工作,当然,使用RPostgres以及DBI来读写空间数据库的功能仍然进一步开发完善中。...在实现sf过程中,维护了几个经过良好验证的概念(几何对象与属性的分离),为sf创建了新的连接(dplyr、ggplot2、空间数据库),并探讨了新的概念(单位、空间索引等)。

    4.3K51

    在 .NET 中优化 API 性能:使用分页、筛选和投影实现高效的数据检索

    获取不必要的数据会增加内存使用量并降低性能。为避免这种情况,我们可以创建处理筛选、分页、排序和将数据投影到特定格式的方法。这种方法可确保我们的应用程序使用更少的内存并更快地执行。...在本文中,我将向您展示如何在 .NET 中实现高效的查询系统。...相反,我们应该只返回必要的数据并将其构建为 DTO(数据传输对象)。这确保我们只加载我们需要的内容并提高性能。...通过使用 ,我们可以从延迟执行中受益,这意味着仅在需要时运行查询。此外,通过使用 ,我们可以只将必要的条件发送到查询,从而减少数据库的工作量。...IQueryablePredicateBuilder 使用 of 至关重要,因为它允许我们仅以 DTO(数据传输对象)的形式返回必要的数据。

    10910

    在R里面根据shp文件进行点的抠图

    [toc] 在R中根据shapefile进行点的抠取 当我们有一个图层文件时候,然后再放些采样点在该图层上,发现,某些采样点落在地图的外面,如下图所示。...如果用Arcgis操作,很容易把外围的点抹去,保留图层内的点,那么如果在R里面,实现该操作呢。 image.png 本篇文章,主要介绍在R中实现根据shp文件进行地图点的抠取。...读取,则不用转换),记住这里需要设置地图的投影格式为"+proj=longlat +ellps=WGS84" # point data set.seed(124) df_point=tibble(x=rnorm.../areas_v2/bound/530000.json")%>% st_transform(., 4326) # plot ggplot()+ geom_sf(data=Yun,fill=...size=0.2)+ geom_point(data = df_point,aes(x,y)) 抠取操作 主要借助于point.in.poly函数对两个SpatialPointsDataFrame对象进行操作

    1.1K10

    R可视乎|空间地理数据可视化(1)

    2.3 点模式数据 与前两种数据不同,点模式数据中域 D 是随机的,s 给出了随机事件的位置。对于 ,Z(s)表示事件的发生,其值可以为 1,也可以是随机地给出一些额外的信息。...3.3 在 R 中设置坐标参考系统 地球的形状可以用一个扁椭球形的模型来近似,它在赤道上隆起,在两极扁平,目前世界上有很多不同的参考椭球体来使用,最常用的是全球定位系统(GPS)所使用的世界大地测量系统...=WGS84 +datum=WGS84 +units=m +no_defs +south" 此外,如果我们希望将数据d转换为具有不同投影的数据,则可以使用 rgdal 包中的 spTransform(...) 函数或 sf 包中的 st_transform() 函数。...我们可以使用 rgdal 包中的 readOGR() 函数,或者 sf 包中的 st_read() 函数来读取 shapefile 文件。

    3.5K30

    地图可视化绘制 | R-ggplot2 NC地图文件可视化

    nc数据文件的R包读取 nc数据的可视化绘制 nc数据文件的R包读取 在R中读取nc文件,我们首选ncdf4包,其使用参考网址如下:https://rdrr.io/cran/ncdf4/。...对应nc文件,常用的使用方法就是以上4中,数据获取后(由于是规整的数据格式)可以像其他数据一样进行处理和变换。更多详细内容可参考上面给出的网站。...nc数据的可视化绘制 由于我们使用的是ggplot2进行绘制,所以我们直接使用raster包进行nc文件的读取(其实也是调用ncdf4包进行处理),数据我们就使用昨天分享数据的数据:数据(代码)分享 |...此外,我们还可以设置不同投影的可视化绘制效果:结果如下: ?...,我们需使用sf包对数据进行投影转换及使用*geom_sf()*进行转换结果的可视化绘制,代码如下: df_sf sf::st_as_sf(dset01_df, coords = c("long"

    2.8K20

    地图可视化绘制 | R-ggplot2 NC地图文件可视化

    在推出两期数据分享之后,获取数据的小伙伴们也知道,数据格式都是NetCDF(nc) 格式网格数据,虽然我在推文分享中说明使用Python、R或者GIS类软件都是可以进行 处理和可视化绘制的,但是,还是有小伙伴咨询使用编程软件...对应nc文件,常用的使用方法就是以上4中,数据获取后(由于是规整的数据格式)可以像其他数据一样进行处理和变换。更多详细内容可参考上面给出的网站。...nc数据的可视化绘制 由于我们使用的是ggplot2进行绘制,所以我们直接使用raster包进行nc文件的读取(其实也是调用ncdf4包进行处理),数据我们就使用昨天分享数据的数据:数据(代码)分享 |...此外,我们还可以设置不同投影的可视化绘制效果:结果如下: ?...,我们需使用sf包对数据进行投影转换及使用*geom_sf()*进行转换结果的可视化绘制,代码如下: df_sf sf::st_as_sf(dset01_df, coords = c("long"

    2.4K30

    实用帖之R-ggplot2 标准中国地图制作

    地图读取和散点标注 这里的中国地图格式为 geojson 格式,还是使用sf包进行灵活读取,具体代码如下: china_shp <- "中国省级地图GS(2019)1719号.geojson" nine...接下来我们进行探索性绘图,主要使用geom_sf() 进行绘制,代码如下: library(ggspatial) ggplot() + geom_sf(data = china,fill="NA"...注意红色框中的内容 接下来将数据在地图中显示,具体代码如下: ggplot() + geom_sf(data = china,fill="NA",size=.5,color="black") +...这里需注意的是xlim和ylim的设置,具体值都是在 +proj=laea +lat_0=40 +lon_0=104 投影坐标系下的值,而常规坐标转不同坐标下的操作也很简单,可使用st_transform...lon", "lat"), crs = 4326) -> df2_sf df2_sf_pre sf::st_transform(df2_sf,crs="+proj=laea +lat_0=40

    1.4K10
    领券