标签: spatial

3D 点的聚类

我有一个 3 维空间中包含大约 2000 万个点 (x,y,z) 的大型数据集。我知道这些点组织在密集区域中,但这些区域的大小各不相同。我认为标准的无监督 3D 聚类应该可以解决我的问题。

由于我无法先验估计簇的数量,因此我尝试使用 k 范围较宽的 k 均值,但速度很慢,而且我必须估计每个 k 分区的重要性。基本上,我的问题是:如何将点中最重要的部分提取到簇中?

cluster-analysis hierarchical-clustering spatial

1
推荐指数
1
解决办法
1186
查看次数

EF Core 3.1 无法映射属性“Geometry.UserData”

我有一个数据库优先的 .net core 3.1 Web 应用程序,它通过一geography列连接到 SQL Server 数据库表。数据库脚手架和应用程序构建完成没有任何问题,但是当我运行应用程序时出现错误。如果我添加该[NotMapped]属性,错误就会消失,但显然该属性未映射。可能是什么问题?

无法映射属性“Geometry.UserData”,因为它属于“object”类型,它不是受支持的基本类型或有效的实体类型。显式映射此属性,或使用 '[NotMapped]' 属性或使用 'OnModelCreating' 中的 'EntityTypeBuilder.Ignore' 忽略它。”

我已经安装了这些软件包

  • Microsoft.EntityFrameworkCore.SqlServer v3.1.8
  • NetTopologySuite.Core v1.15.3

脚手架类看起来像这样

public class MyClass
{  
    public int Id { get; set; }  
    public string Name { get; set; }  
    public NetTopologySuite.Geometries.Geometry Location { get; set; }  
}  
Run Code Online (Sandbox Code Playgroud)

c# entity-framework spatial entity-framework-core

1
推荐指数
1
解决办法
1137
查看次数

使用 terra 有条件地更新另一个栅格的栅格值

我正在 R 中使用 {terra} 的 lapp 函数,我想根据 rast_a 每个单元格中的值使用 rast_b 或 rast_c (以及其他一些数学)中的值更新 rast_a 。

样本数据

rast_a <- rast(ncol = 2, nrow = 2)
values(rast_a) <- 1:4

rast_b <- rast(ncol = 2, nrow = 2)
values(rast_b) <- c(2,2,2,2)

rast_c <- rast(ncol = 2, nrow = 2)
values(rast_c) <- c(3,3,3,3)
Run Code Online (Sandbox Code Playgroud)

问题

这是我的(错误的)尝试。

my_update_formula <- function(a, b, c) {

  a[a == 1] <- b[a == 1] + 10 + 20 - 30
  a[a == 2] <- c[a == 2] + 10 + …
Run Code Online (Sandbox Code Playgroud)

gis r raster spatial terra

1
推荐指数
1
解决办法
577
查看次数

质心方法是在MySQL空间中实现的吗?

简单的问题,我想知道质心方法是否在MySQL空间扩展中实现.我查看了文档,但未能找到明确的答案.

mysql spatial

0
推荐指数
1
解决办法
2004
查看次数

MapBox ESRI数据层

我有一个mapbox,想要在其上显示一层esri数据.我正在从这个json文件中获取数据:

https://gis.usps.com/arcgis/rest/services/EDDM/selectZIP/GPServer/routes/execute?f=json&env%3AoutSR=102100&ZIP=93003&Rte_Box=R&UserName=EDDM

数据['results'] [0] ['value'] ['features']数组看起来像这样:

[{'attributes':{'key':'value'}},{'geometry':{'paths':[[ - 13273770,4064608],[ - 13273762,4064613],....]}}, {'attributes':{'key':'value'}},{'geometry':{'paths':[[ - 13273770,4064608],[ - 13273762,4064613],....]}},{ 'attributes':{'key':'value'}},{'geometry':{'paths':[[ - 13273770,4064608],[ - 13273762,4064613],....]}}}]

我的问题是关于几何数组.那里的数据没有Lat/Lng值(我希望这样),所以我不知道如何将这些添加到我的地图中.我是GIS的新手,到目前为止我所做的研究都指向了SpatialReferences.任何帮助显然非常感谢!

gis json spatial esri mapbox

0
推荐指数
1
解决办法
359
查看次数

使用 autoKrige() 的 R 通用克里金法

我正在尝试使用 automap 包中的 autoKrige() 函数来实现通用克里金法的简单应用。我有一个不规则间隔的测量网格,我想在精细的空间尺度上在它们之间进行插值。示例代码:

    library('automap')

    # create an irregularly spaced grid
    y <-x <-c(-5,-4,-2,-1,-0.5,0,0.5,1,2,4,5)
    grid <-expand.grid(x,y)
    names(grid) <-c('x', 'y')

    # create some measurements, greatest in the centre, with some noise
    vals <-apply(grid,1, function(x) {12/(0.1+sqrt(x[1]^2 + x[2]^2))+rnorm(1,2,1.5)})

    # get data into sp format
    s <-SpatialPointsDataFrame(grid, data.frame(vals))

    # make some prediction locations and get them into sp format
    pred <-expand.grid(seq(-5,5,by=0.5), seq(-5,5,by=0.5))
    pred <-cbind(pred[,1], pred[,2])    # this seems to be needed, not sure why
    pred <-SpatialPoints(pred)

    # try universal kriging
    surf <-autoKrige(vals~x+y, …
Run Code Online (Sandbox Code Playgroud)

r spatial automap kriging

0
推荐指数
1
解决办法
4043
查看次数

mysql 中的 Geometry 和 Geography 数据类型

Sql 服务器具有空间数据类型几何和地理。mysql中有几何类型可用,但我在mysql中没有找到mysql geography。

我要检查位置(纬度,经度)与多边形地理围栏的交集。我已经用 java 完成了这个,但是那个解决方案太慢了。因此,在 sql server 数据库中,我使用 geography 数据类型来存储多边形地理围栏点数据。这给了我更快的结果。

在 mysql 中,我找不到 geograqphy 数据类型。纬度和经度代表角度。

那么如果我使用几何数据类型在 mysql 中存储多边形 geofece 点(纬度,经度)呢?

它会给我与地理相同的结果吗?

mysql geometry spatial sqldatatypes

0
推荐指数
1
解决办法
1万
查看次数

R:有没有办法在 ggplot 图例中添加未使用的数据级别?

我正在尝试使用 ggplot 在我用颜色编码的从 0 到 4 的因子类型向量上呈现一个地图。该向量位于我命名的数据框中spat.dataframe,向量为qt

在此输入图像描述

# plot
ggplot(spat.dataframe, aes(long,lat,group=group)) + # the data
  geom_polygon(aes(fill=as.factor(qt))) + # make polygons
  scale_fill_manual(values = c("0"="#F0F0F0","1"="green","2"="red","3"="blue","4"="purple"),
                    labels = c(paste0("white (",length(spat.dataframe[spat.dataframe$qt==0,]),")"),
                                 paste0("green (",length(spat.dataframe[spat.dataframe$qt==1,]),")"),
                                 paste0("red (",length(spat.dataframe[spat.dataframe$qt==2,]),")"),
                                 paste0("blue (",length(spat.dataframe[spat.dataframe$qt==3,]),")"),
                                 paste0("pink (",length(spat.dataframe[spat.dataframe$qt==4,]),")")),
                      drop=F,
                      name=NULL) +
  theme(line = element_blank(),  # remove the background, tickmarks, etc
          axis.text = element_blank(),
          axis.title = element_blank(),
          panel.background = element_blank()) +
  ggtitle(title) + 
  geom_path( colour = "#6b6b6b", size = .5 ) +
  coord_equal() 
Run Code Online (Sandbox Code Playgroud)

我的问题在于图例部分,因为我想要做的是显示所有图例选项,即使矢量中没有列出任何图例选项。所以颜色值也是蓝色和紫色的。尝试起来可能有点困难,但我希望它出现在我的图形上,以便我还可以显示可能的值的数量以及与该值关联的多边形的数量。因此,对于我的向量 中的值 3 和 4 …

r spatial ggplot2

0
推荐指数
1
解决办法
2357
查看次数

使用蒙特卡罗方法查找区域的区域

我有兴趣找到暗灰色区域的区域,在r中我使用了spatstat包的区域功能但是非常耗时,因为我需要运行mh算法,我已经读过我可以用monte carlo计算这个区域方法,但我不知道如何进行,请有人可以帮助我吗?

在此输入图像描述

一些代码示例来自spatstat书中的情节和区域:

    source("figurelayout.R")
source("startup.R")
llibrary(spatstat)


requireversion(spatstat, "1.41-1.073")

W <- as.owin(swedishpines)
x <- c(28,29,55,60,66)
y <- c(70,38,32,72,59)
X <- ppp(x=x,y=y, window = W)
u <- list(x=48,y=50)
u <- as.ppp(u, W)
rad <- 14
Xplusr <- dilation(X, rad) # 
uplusr <- disc(rad, u) #bola de radio rad con centro en u
ovlap <- intersect.owin(uplusr, Xplusr)
B<-setminus.owin( disc( rad, c(u$x, u$y) ), Xplusr)
AIdemo <- layered(W, 
                  ovlap,
                  Xplusr,
                  uplusr,
                  X,
                  u,B)
layerplotargs(AIdemo) <- list(list(),
                              list(col="darkgrey", border=NA),
                              list(lwd=2),
                              list(lwd=2, lty=2),
                              list(pch=16),
                              list(pch=3),
                              list(col="red", …
Run Code Online (Sandbox Code Playgroud)

spatial

0
推荐指数
1
解决办法
193
查看次数

为什么我的空间连接使用sp与sf包返回不同的结果?

在下面的reprex中,我在某些点和多边形数据上运行空间连接,但在使用sp包时使用包时出乎意料地获得了不同的结果sf.为什么是这样?

我试图计算网格方块acled内的点数prio,但是如下所示,我的计数在包之间有所不同,即使运行st_covers连接sf,我应该知道在功能上与使用over方法相同sp.

library(sp) # packageVersion("sp") #> [1] ‘1.2.7’
library(sf) # packageVersion("sf") #> [1] ‘0.6.3’
library(rgdal)
library(maptools)
library(dplyr); library(tibble)
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的示例数据:

# prio (polygon squares) and acled (points); in both sp and sf objects:

# prio sf polygons object
priosf <- structure(list(
  CELL_ID = c(180365, 176783, 150830, 145866, 140055), 
  gwno = c(615L, 616L, 432L, 626L, 475L), 
  POP = c(111983.7, 107369.7, 12169.35, 23005.76, 527012.1), 
  prio_country = c("Algeria", …
Run Code Online (Sandbox Code Playgroud)

r spatial r-sp r-sf

0
推荐指数
1
解决办法
294
查看次数

模拟非齐次泊松点过程并检索协变量系数

这个问题对于你们中的一些人来说可能是微不足道的,但事实就是如此。我实际上试图用截距和单个变量来模拟一个简单的非齐次点过程。我的目标只是使用 spatstat 和 rstan 包恢复这 2 个系数。

这是模拟的代码:

library(spatstat)
library(sf)
library(sp)
library(maptools)
library(raster)
library(fields)
library(rstan)
library(tidyverse)

# Generate species distribution
genDat_pp <- function(b1, b2, dim, plotdat = TRUE){

# Define the window of interest
win <- owin(c(0,dim[1]), c(0,dim[2]))

# set number of pixels to simulate an environmental covariate
spatstat.options(npixel=c(dim[1],dim[2]))

y0 <- seq(win$yrange[1], win$yrange[2],
        length=spatstat.options()$npixel[2])
x0 <- seq(win$xrange[1], win$xrange[2],
        length=spatstat.options()$npixel[1])
multiplier <- 1/dim[2]

# Make the environmental covariate
gridcov <- outer(x0,y0, function (x,y) multiplier*y + 0*x)

# Set the coefficients
beta0 …
Run Code Online (Sandbox Code Playgroud)

statistics r spatial spatstat

0
推荐指数
1
解决办法
359
查看次数

将 R 中一组点的边界返回为多边形?

我试图返回一组点的边界(如下所示)。我尝试了三种使用 {sf} 包的方法。

创建测试数据

t <- 
  crossing(x=1:5, y=1:5) %>% 
  filter(!(x > 3 & y > 3)) %>% 
  st_as_sf(coords=c("x", "y"))
Run Code Online (Sandbox Code Playgroud)

我想要的是

ggplot()+
  geom_sf(data=t)+
  geom_segment(aes(x = c(1, 1, 3, 3, 5, 5),
                   xend = c(1, 3, 3, 5, 5, 1),
                   y = c(1, 5, 5, 3, 3, 1),
                   yend = c(5, 5, 3, 3, 1, 1),
                   col = "What I want"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我尝试过的

ggplot()+
  geom_sf(data=t)+
  geom_sf(data = t %>% st_union() %>% st_convex_hull(), aes(col="st_convex_hull"), fill=NA)+
  geom_sf(data = t %>% st_union() %>% st_cast("POLYGON") %>% st_boundary(), …
Run Code Online (Sandbox Code Playgroud)

r polygon spatial boundary r-sf

0
推荐指数
1
解决办法
796
查看次数

一侧缓冲spatialline

我有一个很多横断面的SpatialLinesDataFrame,我想只使用R在线的北侧缓冲.有没有人知道模仿arcgis中缓冲工具的'Side Type'选项的工具?谢谢!

gis mapping r spatial

-2
推荐指数
1
解决办法
635
查看次数