-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathCHANGES.rst
448 lines (358 loc) · 14.8 KB
/
CHANGES.rst
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
2.0.2 (2024-04-14)
=======================
New Features
------------
pycraf.pathprof
^^^^^^^^^^^^^^
- Add an option to `pycraf.pathprof.height_map_data`, which allows to
retrieve longitude and latitude profiles to each pixel in a map. This
could, for example, be used for adding clutter heights along the paths.
[#de42379]
- Add an option to return raw data from `pathprof.gis.regrid_from_geotiff`.
(May be needed for cases where proper normalisation is required.) [#64]
Various
-------
- Migrate to Cython v3. [#63]
- Use new package structure (`pyproject.toml`-only). [#65]
2.0.1 (2022-11-19)
=======================
New Features
------------
pycraf.pathprof
^^^^^^^^^^^^^^
- Add building entry loss model (Rec. ITU-R P.2109) [#d9fd58]
- Allow numpy broadcasting for clutter-correction function [#a2984e]
and improve its speed via OpenMP [#414233]
- Add option to P.452 functions to change base water density of
atmosphere [#57, #633c8c]
Documentation
-------------
- Improve the "conversions" Jupyter notebook [#76ae97]
2.0.0 (2022-03-21)
=======================
The new pycraf version 2 is mainly about a new packaging structure
(using pyproject.toml etc.). Furthermore, the graphical user interface
`pycraf-gui` was moved into a dedicated package. Not every users needs
the GUI, but it adds heavily to the package dependencies.
New Features
------------
pycraf.antenna
^^^^^^^^^^^^^^
- Add extended IMT composite array antenna (5G) model [#b31fa7]
Bugfixes
~~~~~~~~~~
- Use new `pyproj.Transformer` class in `geospatial` sub-package. [#953427]
- Use `functools.wraps` instead of the `astropy` `wraps`. This fixes `pycraf`
for use with `astropy` version 5. [#683a06]
- Fix matplotlib error with `terrain_cmap` [#71e284b]
1.1.1 (2021-08-04)
=======================
New Features
------------
pycraf.antenna
^^^^^^^^^^^^^^
- Add average sectoral antenna pattern for fixed links according to Rec.
ITU-R F.1336-5. (The peak sectoral antenna patter was already included,
previously.) [#7094f34]
pycraf.pathprof
^^^^^^^^^^^^^^^
- Add more of the 3GPP TR38.901 path propagation models for IMT (i.e., Urban/
Rural Macro). This is needed for applying power control algorithm related
to user equipment in 5G compatibility studies. [#125b25b]
Bugfixes
~~~~~~~~~~
- Fix some bugs related to newer matplotlib version in various tutorial
notebooks [#b55c014]
1.1.0 (2021-07-07)
=======================
New Features
------------
pycraf.pathprof
^^^^^^^^^^^^^^^
- Add a `cache` option to `pathprof.height_map_data`, which is based on the
`joblib` Python package. With this, one can easily re-use existing height
data (`hprof_cache`) from a previous run to save computing time. [#b86c7d]
- Add a `generic_heights` option to the several functions and the `PathProp`
class in the `pathprof` sub-package. With this, one case set terrain heights
to zero more conveniently. [#a3e799]
Notes
-----
- As of Spring 2021, NASA decided to put all SRTM data products behind a
log-in page, such that automatic download ceases to work. For the time
being, the default server (and only server) in pycraf will thus be
`viewpano`. If you prefer to use NASA tiles (over `viewpano`), please use
their services, e.g., the Land Processes Distributed Active Archive Center.
Bugfixes
~~~~~~~~~~
- In some cases, but only when working with hgt tiles having a different
angular resolution than 3", terrain height interpolation was still based
on the 3" instead of the proper resolution. [#89e0b0]
- There was a bug in the `geometry` sub-package, which caused all rotation
matrices be transposed (which is the same a applying a negative rotation
angle). We used the opportunity to also fix the sign of the `etilt` angle
in the `imt2020_composite_pattern`. [#47e772,#9fb8d6]
1.0.4 (2020-10-21)
=======================
Bugfixes
~~~~~~~~~~
- Fix (stable) HTML manual
- Make satellite sub-package work with `sgp4 2.0+`
1.0.3 (2020-05-21)
=======================
New Features
------------
pycraf.pathprof
^^^^^^^^^^^^^^^
- Add some helper functions to ease working with other GIS data sets. An
example would be Landcover data (e.g., from Copernicus mission Corine data
set). There is also a tutorial notebook, demonstrating the use. [#29]
1.0.2 (2020-04-16)
=======================
New Features
------------
pycraf.antenna, pycraf.geometry
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Several functions in the `antenna` and `geometry` sub-packages were
implemented in Cython and parallelized using OpenMP. This will greatly
speed-up Monte-Carlo simulations (e.g., EPFD, which is planned for the next
release), where lots of antenna-gain values and boresight angles need to be
computed. [#22]
Bugfixes
--------
- `antenna.imt2020_composite_pattern` was using float32 precision, only, for
the real and imaginary part (in the complex valued internal calculation).
This has been fixed and now uses the `complex128` data type. [#26]
- `antenna.imt` was using wrong units (dimension-less instead of dB) for
front-to-back ratios. Note, that all examples still have the same result,
as the input parameters were also chosen wrongly. [#25]
- A more detailed error message is now raised, if `astropy.units` is already
imported - which is not allowed with `astropy` v4 anymore. Please see Issue
[#24]
1.0.1 (2020-01-08)
=======================
Other
-----
- Migrate CI/CD to Azure Pipelines. This also allows to provide
(manylinux-based) binary wheels for Linux on PyPI. [#19]
1.0.0 (2020-01-08)
=======================
New Features
------------
pycraf-gui
^^^^^^^^^^
- A simple graphical user interface was added, which can be used to quickly
analyze the path propogation losses along a transmitter-receiver sight-line
and plot the path geometry. It is also possible to compute attenuation
maps. At the moment, it doesn't come with an amazing amount of features,
but it is foreseen to add more in the future. [#15]
pycraf.atm
^^^^^^^^^^^^^^
- Complete overhaul of the `pycraf.atm` sub-package [#11]. Now
- it does ray-tracing through atmosphere correctly,
- the computational speed for Annex 1 algorithms (such as ray-tracing) is
greatly improved, as performance critical sections are implemented in
Cython and physical properties of the atmospheric layers are cached
- there are new functions, such as `pycraf.atm.find_elevation`, which finds
optimal ray geometry (to reach a given target)
pycraf.pathprof
^^^^^^^^^^^^^^^
- The `pycraf.pathprof` sub-package was re-worked to improve parallel
computations in various places. Most of these are "under the hood", but
one new function is `losses_complete`. It can be used to do bulk
calculations of path propagation loss for fixed Tx-Rx location. This
makes computations of statistics much faster (see user manual). [#16]
Bugfixes
--------
- For `pycraf.pathprof` we used the BFSG loss (see Rec. ITU-R P.452-16) as
proxy for line-of-sight loss. However, to bring it inline with the other
quantities returned by the `pycraf.pathprof.loss_complete`, we now use
L_b0p, which includes focussing effects [#13, #16]
- `pycraf.geospatial` produced an error with newer version of `pyproj`.
Basically, the "+init=" part of the projection definition is now
deprecated. We removed this from the `pycraf.geospatial` module, but
as a consequence, `pyproj>=2.0` is now required. [#10]
- Make `pycraf` compatible with `astropy>=4.0`, which doesn't offer some `
utils.compat` functions any more. [00556d]
0.25.8 (2019-02-23)
=======================
Bugfixes
--------
- `pycraf.protection.ra769_limits` now returns an `astropy.table.QTable`
instead of a `astropy.table.Table`. This ensures that in all
circumstances one retrieves proper `astropy.units.Quantity` objects from
the table. Previously, logarithmic units would not fully support this
(although this was a just bug in `astropy`, which is now fixed). [#8]
0.25.7 (2018-11-24)
=======================
pycraf.antenna
^^^^^^^^^^^^^^
- Add k-factor to single element IMT2020 pattern in `pycraf.antenna`
module. [#ef1c]
- Add antenna pattern function for IMT advance (LTE) basestation (sectorized,
peak-side lobe, see ITU-R Rec. F.1336) to `pycraf.antenna` module. [#a4e1]
pycraf.srtm
^^^^^^^^^^^
- Various smaller improvements and bugfixes to SRTM querying.
[#dcc5, #1950, #0c55]
Bugfixes
--------
- The `pycraf.geospatial` Gauss-Kruger test function revealed a problem with
inconsistent results between new proj4 version (5.2.0) and older versions.
At the moment, it is not clear, what's going on. The test cases have marked
"xfail" for now. [#24e9]
- A sign was wrong in `pycraf.antenna` IMT2020 composite pattern. [#4164]
0.25.6 (2018-05-09)
=======================
pycraf.conversions
^^^^^^^^^^^^^^^^^^
- Add a function `protection.ra769_calculate_entry` that allows to calculate
RA.769 thresholds for non-standard values (e.g., to query limits for
RAS bands that are not included in the RA.769 tables).
Other
-----
- Update to newest version (v3.0) of Astropy helpers.
Bugfixes
--------
- Fixing a serious bug in the B03 tutorial notebook (reflections at wind
turbines). Previously, we accounted twice for the distance when calculating
the reflected power. As a result, the total received power at the
RT is now much larger (though still smaller over direct path).
0.25.5 (2017-12-02)
=======================
pycraf.conversions
^^^^^^^^^^^^^^^^^^
- Add further utility routines to `pycraf.conversions` module, to compute
antenna temperatures and sensitivities. [#8419]
pycraf.atm
^^^^^^^^^^^^^^^
- Add two new functions `atm.elevation_from_airmass` and `
atm.airmass_from_elevation`, which use a better formula for small
elevations (compared to the 1/sin(El) behavior). Furthermore,
the elevation parameter in `atm.opacity_from_atten` and
`atm.atten_from_opacity` has been made optional. If given, the
airmass is corrected for (i.e., one works with zenith opacities). [#61e0]
API Changes
-----------
- The functions `pathprof.atten_path_fast` and `pathprof.atten_map_fast`
now return dictionaries. This makes it easier to add new return values
in the future (without API breaking). Three new parameters are returned
for now: the type of path (Line-of-sight or Trans-horizon) and the
distance of the horizon w.r.t. Tx/Rx.
Bugfixes
--------
- The solution to last exercise in the conversions tutorial notebook was
wrong. (Thanks to A. Jessner for spotting this.)
- The `phi = 0`-singularity if using `do_bessel=True` in `antenna.ras_pattern`
was not properly handled. [#5acf]
Other
-----
- Added some notebooks with exercises and solutions, as well as tutorial 03e.
0.25.4 (2017-09-21)
====================
New Features
------------
pycraf.antenna
^^^^^^^^^^^^^^^
- Add correlation-level parameter to `imt2020_composite_pattern`
function. [#c57b]
pycraf.geometry
^^^^^^^^^^^^^^^
- Add various convenience functions to create 3D rotation matrices from
rotation axis or Euler angles (and vice versa). Streamline the geometry
subpackage to allow proper numpy broadcasting. [#c970]
pycraf.pathprof
^^^^^^^^^^^^^^^
- Add a method, `geoid_area` to calculate surface area on the WGS84
ellipsoid. Only rectangular limits (absolute coordinates) are supported.
This can be used to determine the area of SRTM pixels (in km^2). [#678f]
- Add a method `atten_path_fast`, which can be used to calculate attenuations
for full paths very quickly (compared to the manual approach); also see
tutorial notebooks. To produce the necessary aux-data dictionary,
two functions are available: `height_path_data` and
`height_path_data_generic`. To avoid confusion and to streamline
everything, the function `heigth_profile_data` was renamed to
`height_map_data`. [#9d6a]
pycraf.protection
^^^^^^^^^^^^^^^
- Add the possibility to generate VLBI threshold values in `ra769_limits`
function, as contained in Table 3 of RA.769. Furthermore, it is now
possible to specify the integration time to be used for the
thresholds. [#8a15]
Documentation
-------------
- Add a notebook about how to tilt or rotate IMT2020 antenna patterns.
- Various updates.
Bugfixes
--------
- In `atm.atten_slant_annex1` the `obs_alt` parameter was not properly
accounted for. This led to significant errors for high-altitude
observers. [#f616]
- The function `imt2020_composite_pattern` in the antenna subpackage
now allows better broadcasting of input arrays. Speed was also
improved. [#b8ac, #1219]
0.25.3 (2017-08-09)
====================
New Features
------------
pycraf.geospatial
^^^^^^^^^^^^^^^^^
- This sub-package was heavily re-factored. One can now work with EPSG
or ESRI codes (see docs) and there is a factory to produce arbitrary
transforms, which come with correct docstrings and quantity/range
checker (i.e, proper unit handling). Also, we finally made ITRF
work. [#6892]
Bugfixes
--------
- Increase minimal numpy version to 1.11 to avoid build conflicts with
MacOS and Windows wheels. The wheels are now built with this minimal
numpy version (1.11) rather than the latest version. Users of wheels
have to have at least the same numpy version as the one with which
pycraf wheels were built. [#2139]
0.25.2 (2017-07-30)
====================
New Features
------------
pycraf.pathprof
^^^^^^^^^^^^^^^
- Add option `interp` to `SrtmConf` to allow different interpolation schemes
for SRTM data. Currently, 'nearest', 'linear' (default), and 'spline' are
supported. [#8b43]
- SRTM query functions now support numpy broadcasting. [#af45]
Bugfixes
--------
- SRTM-related plots in documentation were not rendered. [#ea01]
- Clutter loss for "CLUTTER.UNKNOWN" was buggy (must always be zero). [#a8b5]
0.25.1 (2017-07-28)
====================
Bugfixes
--------
- Tests now don't run any SRTM-data related function, only if the option
`remote-data=any` is given (on CLI, within Python it is invoked with
`pycraf.test(remote_data='any')`). Therefore, one doesn't need to
manually download SRTM tiles beforehand anymore. [#eeab]
0.25.0 (2017-07-27)
====================
New Features
------------
General
^^^^^^^
- Minimize dependencies: for a some of `pycraf` sub-packages, do imports
only on demand and not during pycraf importing. Examples are the
`satellite` and `geospatial` sub-packages, that depend on `pyproj` and
`sgp4`. Of course, to use these sub-packages, one has to install the
necessary dependencies. [#8051]
- Tests that need to download data from the internet are now decorated with
astropy's `@remote_data` decorator. If you want to run these tests, use::
import pycraf
pycraf.test(remote_data='any')
or
.. code-block:: bash
python setup.py test --remote-data='any'
otherwise, these will be skipped over. [#1444]
- MacOS tests finally work. [#239d]
pycraf.pathprof
^^^^^^^^^^^^^^^^^
- Much better handling of SRTM data was implemented. It is now possible to
define the SRTM directory during run-time. Furthermore, one can have
pycraf download missing tiles. For this a new `SrtmConf` manager was
introduced. [#2d30, #01ba, #208c, #2b5d]