标签: resampling

HTML5画布:有没有办法用"最近邻居"重新采样来调整图像大小?

我有一些JS用图像做一些操作.我想要像pixelart一样的图形,所以我不得不在图形编辑器中放大原始图像.但我认为用小图像进行所有操作然后用html5功能放大它是个好主意.这将节省大量的处理时间(因为现在我的演示(警告:域名可能会导致工作中的一些问题等)在Firefox中加载非常长时间,例如).但是当我尝试调整图像大小时,它会被双重重采样.如何在不重新采样的情况下调整图像大小?有没有任何crossbrowser解决方案?

html5 canvas resampling

10
推荐指数
2
解决办法
8679
查看次数

最佳实践:在哪里重新采样PCM和哪种工具?

我开发了一个内核模块(Android),它为我提供:

PCM
16-bit
48000 Hz
2 channel
Run Code Online (Sandbox Code Playgroud)

我想把它流式传输到Java的Apple机场快线(AEX).

AEX需要44.1 kHz PCM,因此我必须重新采样PCM流.

我有以下可能性,但哪个最好?

1.使用C程序"raop_play"(raop-play的一部分)

advantages: 
            high-performant due to native C
            already uses libsamplerate to resample wav, mp3, ogg, flac, aac, pls
            openssl as static library
            usable via command-line from my java-program via Runtime.exec()

disadvantages:
            I am relative new to C
            overloaded: I don't need wav, mp3.. only PCM
            many dependencies with GPL-libraries which I have to compile for Android
            only supports PCM already with 44.1 kHz, no resampling for …
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface kernel-module resampling

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

如何使用不同范围的栅格创建栅格砖?

我是R的新手,所以这个问题非常基础,但我一直在努力,无法找到有效的解决方案.我想从同一区域的一些地图中创建一个栅格砖.它们以HDF-EOS格式下载,我使用Modis重投影工具将它们转换为.tif.

生成的栅格具有相同的投影,但其范围,分辨率和原点不同.

我尝试了几种方法,总结如下:

  1. 手动定义子集范围并对所有栅格进行子集化.然后尝试用子集栅格制作砖块

  2. 重新采样栅格,为它们提供相同数量的列和行.理想情况下,这将确保栅格单元对齐并可放入栅格砖中.此选项创建了一个块,其中栅格没有值,它们是空的.

我想知道我应该遵循什么概念来纠正程度.创建一个空栅格是否正确(有效),我将在后面用导入的栅格图像的值填充它?你能看出我弄错了吗?如果它是相关的,我正在使用Mac OSX版本10.9.1,并使用rgdal版本0.8-14

任何帮助将非常感谢!

谢谢

我在这里添加我一直使用的代码:

# .tif files have been creating using the Modis Reprojection Tool. Input
# files used for this Tool was LANDSAT HDF-EOS imagery.

library(raster)
library(rgdal)

setwd()=getwd()

# Download the files from dropbox:
dl_from_dropbox <- function(x, key) {
  require(RCurl)
  bin <- getBinaryURL(paste0("https://dl.dropboxusercontent.com/s/", key, "/", x),
                      ssl.verifypeer = FALSE)
  con <- file(x, open = "wb")
  writeBin(bin, con)
  close(con)
  message(noquote(paste(x, "read into", getwd()))) …
Run Code Online (Sandbox Code Playgroud)

stack r crop raster resampling

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

tidyverse 中多个群体的引导:rsample 与 broom

这个SO问题broom::bootstrap中,使用指定by_group参数的函数由多个组和子组引导似乎很容易TRUE

我想要的输出是一个包含 n 行的嵌套 tibble,其中数据列包含每个引导程序调用生成的引导数据(每个组和子组具有与原始数据相同数量的案例)。

broom我做了以下事情:

# packages
library(dplyr)
library(purrr)
library(tidyr)
library(tibble)
library(rsample)
library(broom)

# some data to bootstrap
set.seed(123)
data <- tibble(
  group=rep(c('group1','group2','group3','group4'), 25),
  subgroup=rep(c('subgroup1','subgroup2','subgroup3','subgroup4'), 25),
  v1=rnorm(100),
  v2=rnorm(100)
)

# the actual approach using broom::bootstrap
tibble(id = 1:100) %>% 
  mutate(data = map(id, ~ {data %>%
      group_by(group,subgroup) %>% 
      broom::bootstrap(100, by_group=TRUE)}))
Run Code Online (Sandbox Code Playgroud)

由于该broom::bootstrap函数已被弃用,因此我使用所需的输出重建了我的方法rsample::bootstraps。获得我想要的输出似乎要复杂得多。生成分组引导程序时,我是否做错了什么,或者在 tidyverse 中事情变得更加复杂?

data %>%
  dplyr::mutate(group2 = group,
                subgroup2 = subgroup) %>% 
  tidyr::nest(-group2, -subgroup2) %>% 
  dplyr::mutate(boot  = …
Run Code Online (Sandbox Code Playgroud)

r resampling tidyverse

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

Pandas TimeSeries重采样产生NaN

我正在重新取样Pandas TimeSeries.时间序列由二进制值(它是一个分类变量)组成,没有缺失值,但在重新采样之后会出现NaN.这怎么可能?

我不能在这里发布任何示例数据,因为它是敏感信息,但我创建并重新采样系列如下:

series = pd.Series(data, ts)
series_rs = series.resample('60T', how='mean')
Run Code Online (Sandbox Code Playgroud)

python time-series resampling pandas

8
推荐指数
2
解决办法
8627
查看次数

Pandas相当于整数索引的重采样

我正在寻找一个等效resample于数据帧的方法的熊猫,它不是一个DatetimeIndex整数数组,甚至可能是浮点数.

我知道,对于某些情况(例如,这个),重新采样方法可以通过reindex和插值轻松替换,但在某些情况下(我认为)它不能.

例如,如果我有

df = pd.DataFrame(np.random.randn(10,2))
withdates = df.set_index(pd.date_range('2012-01-01', periods=10))
withdates.resample('5D', np.std)
Run Code Online (Sandbox Code Playgroud)

这给了我

                   0         1
2012-01-01  1.184582  0.492113
2012-01-06  0.533134  0.982562
Run Code Online (Sandbox Code Playgroud)

但我不能用df和重新取样产生相同的结果.所以我正在寻找可以起作用的东西

 df.resample(5, np.std)
Run Code Online (Sandbox Code Playgroud)

这会给我

          0         1
0  1.184582  0.492113
5  0.533134  0.982562
Run Code Online (Sandbox Code Playgroud)

这种方法存在吗?我能够创建这种方法的唯一方法是手动分离df成较小的数据帧,np.std然后应用然后将所有内容连接起来,我觉得这很慢,而且根本不聪明.

干杯

python resampling pandas

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

降维,归一化,重采样,k倍CV ...按什么顺序?

在Python中,我正在研究旅行保险欺诈检测的二进制分类问题。这是我的数据集的特征:

  • 包含40,000个具有20个功能的样本。一次热编码后,特征数量为50(4个数字,46个分类)。
  • 多数未标记:在40,000个样本中,有33,000个样本未标记。
  • 高度不平衡:在7,000个标记的样本中,只有800个样本(11%)为阳性(欺诈)。

指标是精度,召回率和F2得分。我们将重点更多地放在避免误报上,因此,我们非常赞赏召回率很高。作为预处理,我使用SMOTE-NC对肯定的案例进行了超采样,这也考虑了分类变量。

在尝试了包括自我训练的半监督学习和标签传播/标签传播等方法之后,我获得了较高的回忆得分(培训中80%,测试中65-70%)。但是,我的精度得分显示出过拟合的痕迹(训练时为60-70%,测试时为10%)。我知道精度在训练上是好的,因为它是重新采样的,而测试数据则很低,因为它直接反映了测试数据中类的不平衡。但是这个精度分数太低了,所以我想解决它。

因此,为了简化模型,我正在考虑应用降维。我找到了一个名为princeFAMD 的软件包 (混合物数据的因子分析)。

问题1:我应该如何进行标准化,FAMD,k倍交叉验证和重采样?我下面的方法正确吗?

问题2:包prince不具有的方法,例如fittransform等中Sklearn,所以无法执行第三步骤如下所述。任何其他包好做fit,并transform为FAMD?还有没有其他好的方法可以减少此类数据集的维数?

我的方法:

  1. 制作k折并隔离其中之一进行验证,其余部分用于训练
  2. 归一化训练数据并转换验证数据
  3. 使FAMD适合训练数据,并转换训练和测试数据
  4. 使用SMOTE-NC仅重新采样训练数据
  5. 训练模型是什么,根据验证数据进行评估
  6. 重复2-5 k次并取平均值,取回F2分数

*对于我对这个问题的整体处理方法的各种建议,我也将不胜感激

谢谢!

classification resampling pca factor-analysis cross-validation

8
推荐指数
0
解决办法
100
查看次数

重新采样 xarray 对象以降低空间分辨率

使用 xarray 重新采样以降低空间分辨率

我想将我的 xarray 对象重新采样到较低的空间分辨率(LESS PIXELS)。

import pandas as pd
import numpy as np
import xarray as xr

time = pd.date_range(np.datetime64('1998-01-02T00:00:00.000000000'), np.datetime64('2005-12-28T00:00:00.000000000'), freq='8D')
x = np.arange(1200)
y = np.arange(1200)

latitude = np.linspace(40,50,1200)
longitude = np.linspace(0,15.5572382,1200)

latitude, longitude = np.meshgrid(latitude, longitude)

BHR_SW = np.ones((365, 1200, 1200))

output_da = xr.DataArray(BHR_SW, coords=[time, y, x])
latitude_da = xr.DataArray(latitude, coords=[y, x])
longitude_da = xr.DataArray(longitude, coords=[y, x])

output_da = output_da.rename({'dim_0':'time','dim_1':'y','dim_2':'x'})
latitude_da = latitude_da.rename({'dim_0':'y','dim_1':'x'})
longitude_da = longitude_da.rename({'dim_0':'y','dim_1':'x'})

output_ds = output_da.to_dataset(name='BHR_SW')
output_ds = output_ds.assign({'latitude':latitude_da, 'longitude':longitude_da})

print(output_ds)

<xarray.Dataset> …
Run Code Online (Sandbox Code Playgroud)

python resampling netcdf python-xarray

7
推荐指数
2
解决办法
4468
查看次数

Pandas DataFrame 重新采样中出现意外数量的 bin

问题

我需要将 DataFrame 的长度减少到某个外部定义的整数(可能是两行、10,000 行等,但总长度会减少),但我也想保留生成的 DataFrame 代表原始数据. 原始 DataFrame(我们称之为df)有一个datetime列 ( utc_time) 和一个数据值列 ( data_value)。日期时间始终是连续的、不重复的,但间隔不均匀(即,数据可能“丢失”)。对于此示例中的 DataFrame,时间戳以十分钟为间隔(当数据存在时)。

尝试

为了实现这一点,我立即按照以下逻辑进行重采样:找到第一个和最后一个时间戳之间的秒数差,将其除以所需的最终长度,这就是重采样因子。我在这里设置:

# Define the desired final length.
final_length = 2
# Define the first timestamp.
first_timestamp = df['utc_time'].min().timestamp()
# Define the last timestamp.
last_timestamp = df['utc_time'].max().timestamp()
# Define the difference in seconds between the first and last timestamps.
delta_t = last_timestamp - first_timestamp
# Define the resampling factor.
resampling_factor = np.ceil(delta_t / final_length)

# Set the index from …
Run Code Online (Sandbox Code Playgroud)

python resampling dataframe python-3.x pandas

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

Pandas:重新采样数据帧以匹配不同数据帧的 DatetimeIndex

我有两个单独的时间序列pandas.dataframe,第一个 -series1条目较少,起始数据时间与第二个不同 - series2

index1 = pd.date_range(start='2020-06-16 23:16:00', end='2020-06-16 23:40:30', freq='1T')
series1 = pd.Series(range(len(index1)), index=index1)
index2 = pd.date_range('2020-06-16 23:15:00', end='2020-06-16 23:50:30', freq='30S')
series2 = pd.Series(range(len(index2)), index=index2)
Run Code Online (Sandbox Code Playgroud)

我怎样才能重采样系列2匹配DatetimeIndexseries1

python time-series resampling pandas pandas-resample

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