Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ift
NIFTy
Commits
941e21c7
Commit
941e21c7
authored
May 23, 2017
by
Theo Steininger
Browse files
Merge branch 'master' into 'misc_tweaks'
Master See merge request
!137
parents
95248edc
cf88ed2e
Pipeline
#12816
passed with stage
in 4 minutes and 48 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nifty/field.py
View file @
941e21c7
...
...
@@ -218,7 +218,7 @@ class Field(Loggable, Versionable, object):
See Also
--------
power_synthesi
s
e
power_synthesi
z
e
"""
...
...
@@ -270,12 +270,13 @@ class Field(Loggable, Versionable, object):
def
power_analyze
(
self
,
spaces
=
None
,
logarithmic
=
False
,
nbin
=
None
,
binbounds
=
None
,
decompose_power
=
True
):
""" Computes the powerspectrum for a subspace of
the Field
.
""" Computes the
square root
power
spectrum for a subspace of
`self`
.
Creates a PowerSpace for the space addressed by `spaces` with the given
binning and computes the power spectrum as a Field over this
PowerSpace. This can only be done if the subspace to be analyzed is a
harmonic space.
harmonic space. The resulting field has the same units as the initial
field, corresponding to the square root of the power spectrum.
Parameters
----------
...
...
@@ -456,14 +457,10 @@ class Field(Loggable, Versionable, object):
def
power_synthesize
(
self
,
spaces
=
None
,
real_power
=
True
,
real_signal
=
True
,
mean
=
None
,
std
=
None
):
"""
Converts a power spectrum into a random field realization
.
"""
Yields a sampled field with `self`**2 as its power spectrum
.
This method draws a Gaussian random field in the harmic partner domain
of a PowerSpace.
Notes
-----
For this the spaces specified by `spaces` must be a PowerSpaces.
This method draws a Gaussian random field in the harmonic partner
domain of this fields domains, using this field as power spectrum.
Parameters
----------
...
...
@@ -484,7 +481,6 @@ class Field(Loggable, Versionable, object):
std : float *optional*
The standard deviation of the Gaussian noise field which is used
for the Field synthetization (default : None).
{default : None}
if std==None : std will be set to 1
Returns
...
...
@@ -493,10 +489,20 @@ class Field(Loggable, Versionable, object):
The output object. A random field created with the power spectrum
stored in the `spaces` in `self`.
Notes
-----
For this the spaces specified by `spaces` must be a PowerSpace.
This expects this field to be the square root of a power spectrum, i.e.
to have the unit of the field to be sampled.
See Also
--------
power_analyze
Raises
------
ValueError : If domain specified by `spaces` is not a PowerSpace.
"""
# check if the `spaces` input is valid
...
...
nifty/sugar.py
View file @
941e21c7
...
...
@@ -25,6 +25,30 @@ __all__ = ['create_power_operator']
def
create_power_operator
(
domain
,
power_spectrum
,
dtype
=
None
,
distribution_strategy
=
'not'
):
""" Creates a diagonal operator with the given power spectrum.
Constructs a diagonal operator that lives over the specified domain.
Parameters
----------
domain : DomainObject
Domain over which the power operator shall live.
power_spectrum : (array-like, method)
An array-like object, or a method that implements the square root
of a power spectrum as a function of k.
dtype : type *optional*
dtype that the field holding the power spectrum shall use
(default : None).
if dtype == None: the dtype of `power_spectrum` will be used.
distribution_strategy : string *optional*
Distributed strategy to be used by the underlying d2o objects.
(default : 'not')
Returns
-------
DiagonalOperator : An operator that implements the given power spectrum.
"""
power_domain
=
PowerSpace
(
domain
,
distribution_strategy
=
distribution_strategy
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment