isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
gpuLooks.h
1 // -*- C++ -*-
2 // -*- coding: utf-8 -*-
3 //
4 // Source Author: Liang Yu
5 // Copyright 2019
6 
7 #pragma once
8 
9 #include "forward.h"
10 
11 #include <valarray>
12 #include <thrust/complex.h>
13 #include <isce3/core/Common.h>
14 
15 template<class T>
17  public:
18  gpuLooks() {};
19  ~gpuLooks() {};
20 
22  void multilook(std::valarray<T> &input,
23  std::valarray<T> &output);
24 
25  void multilook(std::valarray<std::complex<T>> &input,
26  std::valarray<std::complex<T>> &output);
27 
29  void multilook(std::valarray<T> &input,
30  std::valarray<T> &output,
31  std::valarray<T> &weights);
32 
34  void multilook(std::valarray<T> &input,
35  std::valarray<T> &output,
36  T noDataValue);
37  void multilook(std::valarray<std::complex<T>> &input,
38  std::valarray<std::complex<T>> &output,
39  std::complex<T> noDataValue);
40 
42  void multilook(std::valarray<std::complex<T>> &input,
43  std::valarray<T> &output,
44  int p);
45 
46  void nrows(size_t n) { _nrows = n; };
47  void ncols(size_t n) { _ncols = n; };
48  void nrowsLooked(size_t n) { _nrowsLooked = n; };
49  void ncolsLooked(size_t n) { _ncolsLooked = n; };
50  void rowsLooks(size_t n) { _rowsLooks = n; };
51  void colsLooks(size_t n) { _colsLooks = n; };
52  size_t nrows() { return _nrows; };
53  size_t ncols() { return _ncols; };
54  size_t nrowsLooked() { return _nrowsLooked; };
55  size_t ncolsLooked() { return _ncolsLooked; };
56  size_t rowsLooks() { return _rowsLooks; };
57  size_t colsLooks() { return _colsLooks; };
58 
59  private:
60  // number of rows before multilooking/downsampling
61  size_t _nrows;
62 
63  // number of columns before multilooking/downsampling
64  size_t _ncols;
65 
66  // number of rows after multilooking/downsampling
67  size_t _nrowsLooked;
68 
69  // number of columns after multilooking/downsampling
70  size_t _ncolsLooked;
71 
72  // number of looks in range direction (columns) i.e. downsampling factor in range
73  size_t _colsLooks;
74 
75  // numbe of looks in azimuth direction (rows) i.e. downsampling factor in azimuth
76  size_t _rowsLooks;
77 
78 };
79 
80 template<class T>
81 CUDA_GLOBAL void multilooks_g(T *lo_res,
82  T *hi_res,
83  int n_cols_hi,
84  int n_cols_lo,
85  int row_resize,
86  int col_resize,
87  int sz_lo,
88  T blk_sz);
89 
90 template<class T>
91 CUDA_GLOBAL void multilooks_g(thrust::complex<T> *lo_res,
92  thrust::complex<T> *hi_res,
93  int n_cols_hi,
94  int n_cols_lo,
95  int row_resize,
96  int col_resize,
97  int sz_lo,
98  T blk_sz);
99 
100 template<class T>
101 CUDA_GLOBAL void multilooks_no_data_g(T *lo_res,
102  T *hi_res,
103  T no_data_value,
104  int n_cols_hi,
105  int n_cols_lo,
106  int row_resize,
107  int col_resize,
108  int sz_lo,
109  T blk_sz);
110 
111 template<class T>
112 CUDA_GLOBAL void multilooks_no_data_g(thrust::complex<T> *lo_res,
113  thrust::complex<T> *hi_res,
114  thrust::complex<T> no_data_value,
115  int n_cols_hi,
116  int n_cols_lo,
117  int row_resize,
118  int col_resize,
119  int sz_lo,
120  T blk_sz);
121 
122 template<class T>
123 CUDA_GLOBAL void multilooks_weighted_g(T *lo_res,
124  T *hi_res,
125  T* weights,
126  int n_cols_hi,
127  int n_cols_lo,
128  int row_resize,
129  int col_resize,
130  int sz_lo);
131 
132 template<class T>
133 CUDA_GLOBAL void multilooks_power_g(T *lo_res,
134  thrust::complex<T> *hi_res,
135  int power,
136  int n_cols_hi,
137  int n_cols_lo,
138  int row_resize,
139  int col_resize,
140  int sz_lo,
141  T blk_sz);
Definition: forward.h:9
void multilook(std::valarray< T > &input, std::valarray< T > &output)
Multi-looking an array of real data.

Generated for ISCE3.0 by doxygen 1.8.5.