之前已经回答了一个类似的问题,但是我找不到这个问题的解决方案:
我有一个带有辐照度值的.txt,我想在 csv 文件中提取特定纬度和纬度的辐照度值的时间系列。.txt文件的(头部)如下所示:
NCOLS 839
NROWS 679
XLLCORNER 112.025
YLLCORNER -43.975
CELLSIZE 0.05
NODATA_VALUE -999
-999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999...
该文件没有lon和lat列(这将是提取数据的简单方法)。然而,它有一个标题,如:NCOLS、NROWS、XLLCORNER、…但是我不知道如何提取像这样的文件的lat/长时间序列。
此外,一旦提取了特定lat/Long的时间序列,我想用该序列的前一个和下一个值的平均值替换可能的nodata(-999)。
我使用的是R版本3.2.4。
一个. txt文件的可下载链接。请注意这个文件是针对特定的年/月/日/小时的。一年中的文件和小时一样多。http://www.mediafire.com/download/t7xl9adxz3764f3/solar_dni_20130102_00UT.txt
该文件是ESRI ASCII光栅格式文件。将其名称更改为solar.asc
(不幸的是,. asc
似乎很重要),然后安装SDMTools
包。完成后,您可以这样做:
library(SDMTools)
dat <- read.asc("solar.asc")
或
df <- asc2dataframe("solar.asc")
它肯定是栅格数据(不是时间序列)。
更新
因为你需要一个完整的演练。
library(SDMTools)
# make sure you're in the same directory as your file
getwd()
## [1] "/Path/to/the/directory/with/the/data"
# make sure your original file is in the directory
file.exists("solar_dni_20130102_00UT.txt")
## [1] TRUE
# since the SDMTools functions seem to need ".asc" at the end
file.rename("solar_dni_20130102_00UT.txt",
"solar_dni_20130102_00UT.asc")
# this reads it as a raster
dat <- read.asc("solar_dni_20130102_00UT.asc")
# check it out
str(dat)
## asc [1:839, 1:679] NA NA NA NA NA NA NA NA NA NA ...
## - attr(*, "xll")= num 112
## - attr(*, "yll")= num -44
## - attr(*, "cellsize")= num 0.05
## - attr(*, "type")= chr "numeric"
# this reads it as a data.frame
df <- asc2dataframe("solar_dni_20130102_00UT.asc")
## working with solar_dni_20130102_00UT.asc ...
# check it out
str(dat)
## asc [1:839, 1:679] NA NA NA NA NA NA NA NA NA NA ...
## - attr(*, "xll")= num 112
## - attr(*, "yll")= num -44
## - attr(*, "cellsize")= num 0.05
## - attr(*, "type")= chr "numeric"
# put things back the way they were
file.rename("solar_dni_20130102_00UT.asc",
"solar_dni_20130102_00UT.txt")
我们甚至可以证明这是一个ESRI ASCII栅格:
quick.map(dat, 0.5)
W00t!澳大利亚(尽管文件中的lat/long已经给出了答案)。
更新 #2
您可以通过执行以下操作来简化提取:
library(raster)
r <- raster.from.asc(dat)
as.numeric(extract(r, cbind(150.757, -26.918)))
## [1] 973
问题内容: 在Python中使用GDAL,如何获取GeoTIFF文件的纬度和经度? GeoTIFF似乎没有存储任何坐标信息。而是存储XY原点坐标。但是,XY坐标不提供左上角和左下角的纬度和经度。 看来我需要做一些数学运算才能解决这个问题,但是我不知道从哪里开始。 执行此操作需要什么程序? 我知道该方法对此很重要,但是,我不知道该怎么做。 问题答案: 要获取您的Geotiff角的坐标,请执行以下操作
我试图从这个结果页面的“Show Map”按钮中刮出纬度和经度数据:https://www.psychologytoday.com/us/therapists/60148/374863?sid=5d01e84909804&ref=2&tr=resultsName:https://www.psychologytoday.com/us/therapists/60148/374863?sid=5d01e
我有一个onCreate的活动,它计算您的位置和附近的事件之间的距离,我使用lastNotnloceto获取当前设备位置并在谷歌地图上标记它,但我需要它来写经度和纬度它的方法之外用于计算距离。 我已经使用LocationManager来获取粗略的坐标,但这些坐标不够准确,对于距离不到半英里的东西来说,距离为50英里。我目前拥有它,因此将覆盖从LocationManager获得的经度和纬度,但它没有
问题内容: 我有一个按照以下示例结构的mysql表: 现在我想做的是创建一个查询,该查询将在搜索位置的选定公里内选择结果 因此,假设他们搜索“灰色河流”,然后选择“在20公里以内找到所有结果” 它显然应该选择“灰河”,但也应根据经度和纬度选择灰河20公里以内的所有位置。 我真的不知道该怎么做。我已经读过haversine公式,但不知道如何将其应用于mysql SELECT。 任何帮助将非常感激。
Highmaps 从 1.1.0 开始支持经纬度定位功能,该功能依赖第三方库 proj4js(需要在 Highmaps 之前引入),最新版的文件可以从 cdnjs 上获取 <script src="https://cdn.bootcdn.net/ajax/libs/proj4js/2.7.2/proj4.js"></script> 有了经纬度支持后,我们可以通过 lon 和 lat 属性来指定经
我基本上想把gsm模块作为短信发送的经纬度坐标提取到一部Android智能手机上…… 我写了一个简单的应用程序,它以纬度和经度为输入,并使用app Inventor在地图上显示 当我收到来自特定号码的短信时,我想基本上复制提取的纬度和经度自动到我的android应用程序的lat和long字段 我怎么才能做到这一点....