将 base64 解码为栅格
decode base64 to a raster
这是一个相当不典型的场景,我在 PowerBI 中使用 R Custom visual 来绘制栅格并且传递数据的唯一方法是使用数据框。
这是我到目前为止所做的,
在 R 中生成栅格
使用 SaveRDS 将其保存到文件
将文件编码为 base64 并将其保存为 csv。
现在使用此代码,我设法读取了 csv,将其加载到数据框中并合并了所有行
我的问题是如何将其解码回光栅对象?
这是一个可重现的例子
# Input load. Please do not change #
`dataset` = read.csv('https://raw.githubusercontent.com/djouallah/keplergl/master/raster.csv', check.names = FALSE, encoding = "UTF-8", blank.lines.skip = FALSE);
# Original Script. Please update your script content here and once completed copy below section back to the original editing window #
library(caTools)
library(readr)
dataset$Value <- as.character(dataset$Value)
dataset <- dataset[order(dataset$Index),]
z <- paste(dataset$Value)
Raster <- base64decode(z,"raw")
这是结果
事实证明解决方案非常简单,saveRDS 有一个选项可以使用 ascii = TRUE
进行保存
saveRDS(background,'test.rds',ascii = TRUE,compress = FALSE)
现在我只是以 humain readbale 格式阅读它(很容易加载到 PowerBI)并且它有效
fil <- 'https://raw.githubusercontent.com/djouallah/keplergl/master/test.rds'
cony <- gzcon(url(fil))
XXX <- readRDS(cony,refhook = NULL)
plotRGB(XXX)
这是一个相当不典型的场景,我在 PowerBI 中使用 R Custom visual 来绘制栅格并且传递数据的唯一方法是使用数据框。
这是我到目前为止所做的, 在 R 中生成栅格 使用 SaveRDS 将其保存到文件 将文件编码为 base64 并将其保存为 csv。
现在使用此代码,我设法读取了 csv,将其加载到数据框中并合并了所有行
我的问题是如何将其解码回光栅对象?
这是一个可重现的例子
# Input load. Please do not change #
`dataset` = read.csv('https://raw.githubusercontent.com/djouallah/keplergl/master/raster.csv', check.names = FALSE, encoding = "UTF-8", blank.lines.skip = FALSE);
# Original Script. Please update your script content here and once completed copy below section back to the original editing window #
library(caTools)
library(readr)
dataset$Value <- as.character(dataset$Value)
dataset <- dataset[order(dataset$Index),]
z <- paste(dataset$Value)
Raster <- base64decode(z,"raw")
这是结果
事实证明解决方案非常简单,saveRDS 有一个选项可以使用 ascii = TRUE
进行保存saveRDS(background,'test.rds',ascii = TRUE,compress = FALSE)
现在我只是以 humain readbale 格式阅读它(很容易加载到 PowerBI)并且它有效
fil <- 'https://raw.githubusercontent.com/djouallah/keplergl/master/test.rds'
cony <- gzcon(url(fil))
XXX <- readRDS(cony,refhook = NULL)
plotRGB(XXX)