12:50 AM
Not in a great mood now, but I’ll try it (Salvia Divinorum) anyway. Somehow, the time feels right.
I sit on the computer room floor, set the light on dim and let the music (Peace of Mind, Windham Hill) play softly. My mood soon improves. I watch the clock on the computer screen.
I chew an eight-leaf quid sweetened with honey. Garrgh,--it’s still unpleasantly bitter, but bearable. I chew, keep the quid and spittle under my tongue, and chew again.
1:05
Something’s clearly not 'normal', though can’t say exactly what. Now I know I’m not a Salvia hardhead. I fight the bitterness and bulk in my mouth that's bulging from the spittle and leaf pieces.
1:10
Too soon to spit the quid out, so I struggle to keep it in. Eyes feel heavy. They close… and in my mind’s eye, a dove—-this one’s light gray or silver, not white. I “flow into” the dove's body which in turn flows into a jet plane's body and begins to takes off. Music’s now Prelude in C with Ave Maria from the Well-Tempered Clavier. An angelic voice tells me to forget about the quid in my mouth and catch this plane. I remember to spit the quid out on the plate. I take the second quid (four leaves), but now it's become hard to chew the right way. Should’ve used just one big quid.
I think of the Salvia leaves in my mouth. Eyes closed, I see a wall of green foliage. A crack in the wall assumes the shape of a pair of scissors. The 'Salvia leaf scissors' cuts across, and the wall opens up like a zipper. (Sally cutting through the “veil of illusion”?)
1:20?
Time to expel the second quid. But my body turns into wood — first feet, then legs, chest, face. Like I’ve become some kind of human-shaped cabinet. Not a finished cabinet, though—-branches and leaves sprout from the feet.
Quid won’t come out! Face feels like it’s been fused into a wooden wall. Could’ve been start of real bad trip, but effect seems more interesting than terrifying. (I guess since I’m chewing instead of smoking, I never completely lose sense of time and self.)
 'Back to normal again,' I sigh. Thankfully, I’m able to spit the quid out. Part of the gross stuff spills on my shirt, but at least the carpet's been spared.
Somehow manage to remove shirt. Tell myself this trip's over.
Try to stand but can't. Some kind of super-gravity’s pinning me to the floor. I’m lying sideways, unable to move.
Then I lose my body. Fully conscious, I fuse into a verdant countryside of rolling hills and tall pines. I see a “cross section” of the landscape—-blue sky, leaves and massive trunks, the topsoil and humus, and I'm lying underneath, face down, while the roots of great trees sprout from my back. The metamorphosis and immobility aren't frightening at all, but appear as the most natural things. Douglas Spotted Eagle’s Dieshu is playing—-a beautiful plaintive piece with the Native American flute. It sounds like a dirge filled with joy. I’ve “died” and merged with the Earth. It’s such a wonderful release....
And a vision of eternal life. I’ve become pure soul, but it’s not “my” soul, since the “me” has completely vanished. Some kind of Universal Soul. It’s a vision I see and actually feel: there’s only one life being lived in the universe, and everything—-inanimate objects, plants, animals—-are inseparably joined to the Great Organism. It’s so peaceful and final. I'm not happy or sad, and just accept it all.
1:40
Peak of the experience is over. I’d like to 'declare' the trip over, but one thing still doesn't look right. A strange silvery glow on my computer’s exterior.  I gaze for a few minutes at this apparition, shake my head, and then tell myself I've returned. But the “night sky” persists for a while.
1:50
I crawl back into the armchair and start writing up this report while details are still fresh. So much has happened in just a few minutes. The most beautiful visions I’ve seen, and some of the strangest.
Visions I’d like to remember on the day that I die. But right now I'm more stunned than awed.
Then slowly, it all comes back: the full weight of it. An overwhelming awe. There'll be much to sort out till the next encounter with Ska Pastora.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% extends 'main/layout.html' %} {% block content %} {{ user.username }} Update profile | Change password | Logout Self-destruct | Delete all docs {% endblock %}


Clear
Bar Graph
Graticule
Border
Earth
Ocean:1
Ocean:2
Ocean:3
World 3d
Choropleth
Flight Line
Flight Line 2
Earth quake
Blue marble
Choropleth
Bar graph
Float 3d
Flight line
Earth quake


Hive Docs - Glossary
Understanding the common terms used by the Steem blockchain is an important part of being able to build applications and tools that use it.
This section outlines several of the common terms.
More terms and information can be found on the steemit.com FAQ.
- Blockchain
- Decentralized ledger and consensus protocol
- Steem (blockchain)
- Name of the blockchain and platform
- Bandwidth
- formerly the limit of data each account can send/use (replaced by Resource Credits)
- Resource Credits
- is the limit of data each account can utilize resources on the blockchain (also known as RC)
- VESTS
- The fundamental unit of accounting that STEEM Power is derived from
- STEEM (currency)
- Currency of the blockchain, liquid version of Steem Power
- SBD
- Steem Backed Dollar, $1 worth of STEEM
- Steem Power
- Locked version of STEEM which gives account influence on the platform
- Transaction
- Operations/Activity/Write requests to the blockchain. A transaction is a submitted update to the Steem blockchain. This can include token transfers, posts/comments, votes, etc.
- Block
- Every three seconds, the Steem blockchain produces a new block. Each time a new block is produced, the distributed network is updated with all of the transactions that occurred within that block.
- Block Header
- Information about block, root, and witness who signed, etc.
- Price feed
- Feed that is maintained by witnesses to ensure SBD/STEEM price stability
- Account
- An account is a container for all of the activity associated with a particular user's wallet on the blockchain. This includes all of their tokens, posts, comments, upvotes, transfers, etc.
- Owner
- Owner authority/permission of a given account
- Key
- Keys are used to authenticate transactions. Each key contains a public/private pair. When a transaction is submitted to the Steem blockchain, it is signed by the account owner using their private key. The blockchain is able to determine that the transaction is valid by validating the signature against the public key from the pair.
- Public Key
- Public key of account's certain authority
- Private Key
- Private key to sign a transaction with account's authority, should be kept secret because it grants access to account
- Wif
- Wallet Import Format/Private key, should be kept secret because it grants access to account
- Active key
- The active key is used to make transfers and place orders in the internal market
- Posting key
- The posting key is used for posting and voting
- Owner key
- The owner key is the master key for the account and is required to change the other keys
- Post
- A post is a root level comment - one that has no "parent".
- Comment
- A comment is text content that is stored on the blockchain. Comments can be linked to other comments as "replies" through parent/child relationships.
- Vote
- A vote is an expression of like (upvote) or dislike (downvote) for a post/comment. The Steem blockchain uses the votes that a post/comment has received to determine its share of the rewards.
- Reputation
- Account's reputation on the platform
- Markdown language
- Easy to read and write, plain text format language commonly used to create Steemit articles
- Permlink
- Unique identifier of every comment or post of an author, within the context of that author. ('@author/permlink' combos are globally unique)
- Mainnet
- The 'production' Steem blockchain network wherein real STEEM is held and actual transactions take place.
- Delegation
- The assignment of STEEM Power for content influence by another account (cannot be spent, can be revoked by the delegator in 5 days)
- PowerUp
- Convert STEEM to Steem Power and vice-versa with PowerDown
- Reward Pool
- Every day, a fixed amount of STEEM tokens are allocated to the network reward fund, commonly called the "reward pool." These get distributed to authors and curators for posting and voting on content.
- AppBase
- Plug-in architecture that provides a robust foundation for scaling. It enables many components of the Steem blockchain to become modular by creating additional non-consensus blockchains as dedicated plugins.
- RocksDB
- A fast-on-disk data store with an advanced caching layer, which minimizes latency when reading/writing to and from disk.
- MIRA
- Multi Index Rocksdb Adapter that updates the database backend of Steem from memory mapped files to a disk log-structured merge-tree implemented via the RocksDB library.
- Manabar
Tracked voting power that is regenerated from 0 to 100% of max linearly over 5 days. It is a function of STEEM Power, delegations, and active power down that tracks unspent reward fund shares.
Each user also has a manabar specifically for downvotes, which is 25% of the upvote manabar. Downvotes will consume this mana first before consuming regular mana. When voting, 1/50th of the remaining mana is used for a 100% vote. The same math is used for downvote mana but multiplied by 4 because the downvote manabar is 25% the size of the normal manabar. The maximum of these values is used. When both manabars are at 100%, the values are the same. When downvote mana runs out, normal mana is then used.
- Reverse Auction
- The window of 5 minutes where curation rewards are sent back to reward pool.
- SPS
- Also known as Steem Proposal System. An on-chain decentralized autonomous organization (DAO) that allows users to submit proposals for funding and use stake weighted voting to select which proposals should be funded.
- DPOS
- Delegated Proof of Stake
- Proxy
- The assignment of STEEM Power for DPOS governance and SPS approval by another account (cannot be spent, can be revoked instantly)
- Node
- A node is an instance of the Steem blockchain running on a server.
- Witness
- Witness is a position/role for the people who are chosen by community (delegate trust) to support platform and run consensus protocol to ensure security and validity of transactions/blocks on the blockchain. A witness is responsible for signing and validating blocks for the Steem blockchain.
- Hardfork
- Process to release protocol/blockchain consensus upgrades
- Softfork
- Process to release protocol/blockchain software improvements
- Witness Vote
- Voting/electing witnesses with account's stake
- DAO
- Decentralized Autonomous Organization (see: SPS).
- SBD Haircut
- Rules to stop printing SBD when the supply is too high. Note: SBD printing for the SPS (@steem.dao) does not follow these rules and will continue to print SBD regardless of the supply.
- P2P
- The peer-to-peer network is how transactions are broadcasted to mempool until they are included in a block.
- Mempool
- Where a transaction that is being conducted over the p2p network is transmitted and held until a witness picks it up and includes it in the next block.
- Pending Transaction
- Transaction that is pending and to be included to the blockchain
- Transaction Hex
- Hash of the transaction
- Signatures
- Transaction signature signed by an account with a private key
- Canonical Signatures
- Reduce entropy Signatures that follow the BIP-0062 specification to prevent transaction malleability. All Signatures on Steem are Canonical Signatures, since 0.20.2.
- Broadcast Transaction
- Event where a signed transaction is broadcasted to the p2p network so that witnesses could validate and include in a block
- Virtual operation
- Operations that are derived from blockchain activity, but aren't actually stored as operations themselves (ex. curation and author rewards). They happen based on consensus from the blockchain based on other normal operations
- Trending
- Posts/Discussions that are highly valued by the community with bigger time interval update
- Hot
- Posts/Discussions that are highly valued with shorter time interval update
- Feed
- Posts/Discussions from followers of a particular account
- Active
- Posts/Discussions that are still actively being engaged
- New
- Newly created posts
- Cashout
- Posts which was paid out recently
- Promoted
- Posts which was promoted by burning SBD to get more visibility
- Pending Payout
- Estimated pending payout for blog posts/comments
- Following
- Account that is being followed
- Follower
- Account that is following the user
- State
- State of blockchain for path - accounts/tags/filters/posts
- Dynamic Global Properties
- Current blockchain global properties in play for each block
- Median Price
- Median Price feed provided by all witnesses
- Curator
- A steem user who upvotes a post by using their daily voting power to assign value to a post that they believe has good quality content and should be seen and the author rewarded
- Curation reward
- The reward given to a curator, which is their portion of the 50% allocated to all curators that have upvoted a post
- Resteem
- (Reblog) re-posting another authors' post in your blog feed for your followers list
- Conversion Requests
- Request submitted for Converting SBD to STEEM
- Order Book
- Internal market order book to exchange SBD<->STEEM
- SMT
- Smart Media Tokens
- Limit Order
- A direction given to the DEX to buy or sell an asset at a specified price or better, that expire within 30 days of creation.


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
I
J
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
D
data()
- Static method in class
ParameterizedTest
DataBase
- Class in
model
DataBase()
- Constructor for class model.
DataBase
standart Constuctor
DataBase(boolean)
- Constructor for class model.
DataBase
DataBase(boolean, String, String)
- Constructor for class model.
DataBase
DataBaseTest
- Class in
model
DataBaseTest()
- Constructor for class model.
DataBaseTest
dataFromFitsFile(File)
- Static method in class model.
CelestialObject
dataFromFitsFile(File)
- Static method in class model.
Observation
dataSinkUpdate(DataSinkEvent)
- Method in class view.
JpegImagesToMovie
Event handler for the file writer.
DATE_FORMAT
- Static variable in class controller.
MaserJ
DateCalculator
- Class in
tools
DateCalculator()
- Constructor for class tools.
DateCalculator
DateCalculatorTest
- Class in
tools
DateCalculatorTest()
- Constructor for class tools.
DateCalculatorTest
DateCalculatorTest(long)
- Constructor for class tools.
DateCalculatorTest
dayDatesByRange(Date, Date)
- Static method in class tools.
DateCalculator
dayDelta(Date, Date)
- Static method in class tools.
DateCalculator
dayDelta Dates
dayDelta(GregorianCalendar, GregorianCalendar)
- Static method in class tools.
DateCalculator
DB
- Static variable in class controller.
MaserJ
dbFile
- Static variable in class common.
TEST
DBTable
- Class in
model
DBTable(String)
- Constructor for class model.
DBTable
DBTableTest
- Class in
model
DBTableTest()
- Constructor for class model.
DBTableTest
dbURL
- Static variable in class common.
TEST
debugFlag
- Static variable in class tools.
ToolBox
debugMsg(Object)
- Static method in class tools.
ToolBox
decSexagesimal(Double)
- Static method in class view.
TextDataImage
DEFAULT_TIMEOUT
- Static variable in class common.
TEST
deleteRows()
- Method in class model.
DBTable
delete all Table-Rows from DB-Table
doIt(int, int, int, Vector, MediaLocator)
- Method in class view.
JpegImagesToMovie
dopplerColor(double)
- Method in class view.
MaserComponentsImage
drawMaserComponent(int, Color)
- Static method in class view.
MaserComponentsImage
draw a MaserImg by calculating the 1. quadrant and mirror it on x&y-Axis
drawTextData(HashMap<String, Object>)
- Method in class view.
TextDataImage
â
dropTables()
- Method in class model.
DataBase
drops the MaserJ DB-Tables
dump(ResultSet)
- Static method in class model.
DataBase
dumpHahsMap(HashMap)
- Static method in class tools.
ToolBox
convenience method dump a HashMap
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
I
J
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y


The Island Packet reports Parrish Brown went to a McDonald’s on Hilton Head Island and asked for a sweet tea with light ice and extra lemon.
Brown now believes “extra lemon” was code for marijuana, since he found three bags of weed in his cup. He says he only realized it once he was “high as a kite.”
Brown says he’d never had marijuana, so he didn’t recognize the taste. He says he paid regular price for the items.
Beaufort County Sheriff’s Office spokesman Maj. Bob Bromage says an investigation is ongoing. He didn’t specify which McDonald’s Brown had gone to.
A representative for McDonald’s said the company is “fully cooperating with law enforcement on the validity of this claim.”
Information from: The Island Packet, http://www.islandpacket.com
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


N-dimensional Data (nddata)¶
Full list of nddata methods¶
-
class
pyspecdata.
nddata
(*args, **kwargs)¶ This is the detailed API reference. For an introduction on how to use ND-Data, see the Main ND-Data Documentation.
-
__init__
(*args, **kwargs)¶ initialize nddata – several options. Depending on the information available, one of several formats can be used.
- 3 arguments:
nddata(inputarray, shape, dimlabels)
inputarray: ndarray storing the data – note that the size is ignored and the data is reshaped as needed shape: a list (or array, etc.) giving the size of each dimension, in order dimlabels: a list giving the names of each dimension, in order - 2 arguments:
nddata(inputarray, dimlabels)
inputarray: ndarray storing the data – the data is not reshaped dimlabels: a list giving the names of each dimension, in order - 2 arguments:
nddata(inputarray, single_dimlabel)
inputarray: ndarray storing the data – must be 1D inputarray is also used to label the single axis single_dimlabel: a list giving the name of the single axis - 1 argument:
nddata(inputarray, shape, dimlabels)
inputarray: ndarray storing the data – reduced to 1D A single dimension, called “INDEX” is set. This suppresses the printing of axis labels. This is used to store numbers and arrays that might have error and units, but aren’t gridded data. - keyword args
- these can be used to set the labels, etc, and are passed to
__my_init__()
Methods
__init__
(*args, **kwargs)initialize nddata – several options. add_noise
(intensity)Add Gaussian (box-muller) noise to the data. aligndata
(arg)This is a fundamental method used by all of the arithmetic operations. argmax
(*args, **kwargs)find the max along a particular axis, and get rid of that axis, replacing it with the index number of the max value argmin
(*axes, **kwargs)If argmin(‘axisname’) find the min along a particular axis, and get rid of that axis, replacing it with the index number of the max value. angle
Return the angle component of the data axis
(axisname)returns a 1-D axis for further manipulation axlen
(axis)return the size (length) of an axis, by name axn
(axis)Return the index number for the axis with the name “axis” cdf
([normalized, max_bins])calculate the Cumulative Distribution Function for the data along axis_name check_axis_coords_errors
()chunk
(axisin, *otherargs)“Chunking” is defined here to be the opposite of taking a direct product, increasing the number of dimensions by the inverse of the process by which taking a direct product decreases the number of dimensions. This function chunks axisin into multiple new axes arguments.: chunk_auto
(axis_name, which_field[, dimname])assuming that axis “axis_name” is currently labeled with a structured array, choose one field (“which_field”) of that structured array to generate a new dimension Note that for now, by definition, no error is allowed on the axes. nddata.chunkoff
circshift
(axis, amount)contiguous
(lambdafunc[, axis])Return contiguous blocks that satisfy the condition given by lambdafunc contour
([labels])Contour plot – kwargs are passed to the matplotlib contour function. convolve
(axisname, filterwidth[, convfunc])Perform a convolution. copy
([data])Return a full copy of this instance. copyaxes
(other)cropped_log
([subplot_axes, magnitude])For the purposes of plotting, this generates a copy where I take the log, spanning “magnitude” orders of magnitude This is designed to be called as abs(instance).cropped_log(), so it doesn’t make a copy diff
(thisaxis[, backwards])extend
(axis, extent[, fill_with, tolerance])If axis is uniformly ascending with spacing \(dx\), then extend by adding a point every \(dx\) until the axis includes the point extent. extend_for_shear
(altered_axis, propto_axis, …)this is propto_axis helper function for .fourier.shear fld
(dict_in[, noscalar])flatten dictionary – return list fourier_shear
(altered_axis, propto_axis, …)the fourier shear method – see .shear() documentation fromaxis
(*args, **kwargs)Generate an nddata object from one of the axis labels. ft
(axes[, tolerance, cosine, verbose])This performs a Fourier transform along the axes identified by the string or list of strings axes. ft_clear_startpoints
(axis[, t, f, nearest])Clears memory of where the origins in the time and frequency domain are. ftshift
(axis, value)FT-based shift. get_covariance
()this returns the covariance matrix of the data get_error
(*args)get a copy of the errors either set_error(‘axisname’,error_for_axis) or set_error(error_for_data) get_ft_prop
(axis[, propname])Gets the FT property given by propname. get_plot_color
()get_prop
([propname])return arbitrary ND-data properties (typically acquisition parameters etc.) by name (propname) get_units
(*args)getaxis
(axisname)getaxisshape
(axisname)gnuplot_save
(filename)hdf5_write
(h5path[, directory])Write the nddata to an HDF5 file. histogram
(**kwargs)human_units
()ift
(axes[, n, tolerance, verbose])This performs a Fourier transform along the axes identified by the string or list of strings axes. inhomog_coords
(direct_dim, indirect_dim[, …])Apply the “inhomogeneity transform,” which rotates the data by \(45^{\circ}\), and then mirrors the portion with \(t_2<0\) in order to transform from a \((t_1,t_2)\) coordinate system to a \((t_{inh},t_{homog})\) coordinate system. integrate
(thisaxis[, backwards, cumulative])this performs an integration – which is similar to a sum, except that it takes the axis into account, i.e., it performs: $int f(x) dx$ rather than $sum_i f(x_i)$ interp
(axis, axisvalues[, past_bounds, …])interpolate data values given axis values invinterp
(axis, values, **kwargs)interpolate axis values given data values labels
(*args)label the dimensions, given in listofstrings with the axis labels given in listofaxes – listofaxes must be a numpy array; you can pass either a dictionary or a axis name (string)/axis label (numpy array) pair linear_shear
(along_axis, propto_axis, shear_amnt)the linear shear – see self.shear for documentation matchdims
(other)add any dimensions to self that are not present in other matrices_3d
([also1d, invert, max_dimsize, …])returns X,Y,Z,x_axis,y_axis matrices X,Y,Z, are suitable for a variety of mesh plotting, etc, routines x_axis and y_axis are the x and y axes mayavi_surf
()use the mayavi surf function, assuming that we’ve already loaded mlab during initialization mean
(*args, **kwargs)Take the mean and set the error to the standard deviation mean_all_but
(listofdims)take the mean over all dimensions not in the list mean_nopop
(axis)mean_weighted
(axisname)perform the weighted mean along axisname (use $sigma$ from $sigma = $self.get_error() do generate $1/sigma$ weights) for now, it clears the error of self, though it would be easy to calculate the new error, since everything is linear meshplot
([stride, alpha, onlycolor, light, …])takes both rotation and light as elevation, azimuth only use the light kwarg to generate a black and white shading display mkd
(*arg, **kwargs)make dictionary format multimin
(minfunc, axisname, filterwidth, …)name
(*arg)args: .name(newname) –> Name the object (for storage, etc) .name() –> Return the name normalize
(axis[, first_figure])oldtimey
([alpha, ax, linewidth, …])plot_labels
(labels[, fmt])this only works for one axis now polyfit
(axis[, order, force_y_intercept])polynomial fitting routine – return the coefficients and the fit ..note: later, should probably branch this off as a new type of fit class popdim
(dimname)random_mask
(axisname[, threshold, inversion])generate a random mask with about ‘threshold’ of the points thrown out real
Return the real component of the data register_axis
(arg)Interpolate the data so that the given axes are in register with a set of specified values. rename
(previous, new)reorder
(*axes, **kwargs)Reorder the dimensions the first arguments are a list of dimensions replicate_units
(other)repwlabels
(axis)retaxis
(axisname)run
(*args)run a standard numpy function on the nddata: run_avg
(thisaxisname[, decimation, centered])a simple running average run_nopop
(func, axis)runcopy
(*args)set_error
(*args)set the errors: either set_ft_prop
(axis[, propname, value])Sets the FT property given by propname. set_plot_color
(thiscolor)set_prop
(*args)set a ‘property’ of the nddata This is where you can put all unstructured information (e.g. set_units
(*args)setaxis
(*args)set or alter the value of the coordinate axis shear
(along_axis, propto_axis, shear_amnt[, …])Shear the data \(s\): smoosh
(dimstocollapse[, dimname, noaxis])Collapse (smoosh) multiple dimensions into one dimension. sort
(axisname[, reverse])sort_and_xy
()squeeze
([return_dropped])squeeze singleton dimensions sum
(axes)sum_nopop
(axes)unitify_axis
(axis_name[, is_axis])this just generates an axis label with appropriate units units_texsafe
(*args)unset_prop
(arg)remove a ‘property’ waterfall
([alpha, ax, rotation, color, …])Attributes
want_to_prospa_decim_correct
-
-
class
pyspecdata.
nddata
(*args, **kwargs) This is the detailed API reference. For an introduction on how to use ND-Data, see the Main ND-Data Documentation.
-
C
¶ shortcut for copy
- ..todo::
- We should offer “N”, which generates something like a copy,
but which is sets the equivalent of “nopop”.
For example, currently, you need to do something like
d.C.argmax('t2')
, which is very inefficient, since it copies the whole array. So, instead, we should dod.N.argmax('t2')
, which tells argmax and all other functions not to overwrite “self” but to return a new object. This would cause things like “run_nopop” to become obsolete.
-
add_noise
(intensity)¶ Add Gaussian (box-muller) noise to the data.
Parameters: intensity (double OR function) – If a double, gives the standard deviation of the noise. If a function, used to calculate the standard deviation of the noise from the data: e.g. lambda x: max(abs(x))/10.
-
aligndata
(arg)¶ This is a fundamental method used by all of the arithmetic operations. It uses the dimension labels of self (the current instance) and arg (an nddata passed to this method) to generate two corresponding output nddatas that I refer to here, respectively, as A and B. A and B have dimensions that are “aligned” – that is, they are identical except for singleton dimensions (note that numpy automatically tiles singleton dimensions). Regardless of how the dimensions of self.data and arg.data (the underlying numpy data) were ordered, A.data and B.data are now ordered identically, where dimensions with the same label (.dimlabel) correspond to the same numpy index. This allows you do do math.
Note that, currently, both A and B are given a full set of axis labels, even for singleton dimensions. This is because we’re assuming you’re going to do math with them, and that the singleton dimensions will be expanded.
Parameters: arg (nddata or ndarray) – The nddata that you want to align to self. If arg is an ndarray, it will try to match dimensions to self based on the length of the dimension. Note: currently there is an issue where this will only really work for 1D data, since it first makes an nddata instance based on arg, which apparently collapses multi-D data to 1D data. Returns: - A (nddata) – realigned version of self
- B (nddata) – realigned version of arg (the argument)
-
angle
¶ Return the angle component of the data
-
argmax
(*args, **kwargs)¶ find the max along a particular axis, and get rid of that axis, replacing it with the index number of the max value
Parameters: raw_index (bool) – return the raw (ndarray) numerical index, rather than the corresponding axis value Note that the result returned is still, however, an nddata (rather than numpy ndarray) object.
-
argmin
(*axes, **kwargs)¶ If argmin(‘axisname’) find the min along a particular axis, and get rid of that axis, replacing it with the index number of the max value. If argmin(): return a dictionary giving the coordinates of the overall minimum point.
Parameters: raw_index (bool) – Return the raw (ndarray) numerical index, rather than the corresponding axis value. Note that the result returned is still, however, an nddata (rather than numpy ndarray) object.
-
axis
(axisname)¶ returns a 1-D axis for further manipulation
-
axlen
(axis)¶ return the size (length) of an axis, by name
Parameters: axis (str) – name of the axis whos length you are interested in
-
axn
(axis)¶ Return the index number for the axis with the name “axis”
This is used by many other methods. As a simple example, self.:func:axlen`(axis) (the axis length) returns ``shape(self.data)[self.axn(axis)]`
Parameters: axis (str) – name of the axis
-
cdf
(normalized=True, max_bins=500)¶ calculate the Cumulative Distribution Function for the data along axis_name
only for 1D data right now
Returns: Return type: A new nddata object with an axis labeled values, and data corresponding to the CDF.
-
chunk
(axisin, *otherargs)¶ - “Chunking” is defined here to be the opposite of taking a direct product, increasing the number of dimensions by the inverse of the process by which taking a direct product decreases the number of dimensions. This function chunks axisin into multiple new axes arguments.:
- axesout – gives the names of the output axes shapesout – optional – if not given, it assumes equal length – if given, one of the values can be -1, which is assumed length
When there are axes, it assumes that the axes of the new dimensions are nested – e.g., it will chunk a dimension with axis: [1,2,3,4,5,6,7,8,9,10] into dimensions with axes: [0,1,2,3,4], [1,6]
- ..todo::
- Deal with this efficiently when we move to new-style axes
-
chunk_auto
(axis_name, which_field, dimname=None)¶ assuming that axis “axis_name” is currently labeled with a structured array, choose one field (“which_field”) of that structured array to generate a new dimension Note that for now, by definition, no error is allowed on the axes. However, once I upgrade to using structured arrays to handle axis and data errors, I will want to deal with that appropriately here.
-
contiguous
(lambdafunc, axis=None)¶ Return contiguous blocks that satisfy the condition given by lambdafunc
this function returns the start and stop positions along the axis for the contiguous blocks for which lambdafunc returns true Currently only supported for 1D data
Note
adapted from stackexchange post http://stackoverflow.com/questions/4494404/find-large-number-of-consecutive-values-fulfilling-condition-in-a-numpy-array
Parameters: - lambdafunc (types.FunctionType) – If only one argument (lambdafunc) is given, then lambdafunc is a function that accepts a copy of the current nddata object (self) as the argument. If two arguments are given, the second is axis, and lambdafunc has two arguments, self and the value of axis.
- axis ({None,str}) – the name of the axis along which you want to find contiguous blocks
Returns: retval – An \(N\times 2\) matrix, where the \(N\) rows correspond to pairs of axis label that give ranges over which lambdafunc evaluates to True. These are ordered according to descending range width.
Return type: ndarray
Examples
> #{{{ debugging block > sum_for_contiguous = abs(forplot).mean(‘t1’) > fl.next(“test contiguous”) > forplot = sum_for_contiguous.copy().set_error(None) > fl.plot(forplot,alpha = 0.25,linewidth = 3) > print “this is what the max looks like”,0.5*sum_for_contiguous.set_error(None).runcopy(max,’t2’) > print sum_for_contiguous > 0.5*sum_for_contiguous.runcopy(max,’t2’) > retval = sum_for_contiguous.contiguous(quarter_of_max,’t2’) > print “contiguous range / 1e6:”,retval/1e6 > for j in range(retval.shape[0]): > a,b = retval[j,:] > fl.plot(forplot[‘t2’:(a,b)]) > fl.show() > exit() > #}}}
-
contour
(labels=True, **kwargs)¶ Contour plot – kwargs are passed to the matplotlib contour function.
See docstring of figlist_var.image() for an example
-
labels
¶ Whether or not the levels should be labeled. Defaults to True
Type: boolean
-
-
convolve
(axisname, filterwidth, convfunc=<function <lambda>>)¶ Perform a convolution.
Parameters: - axisname (str) – apply the convolution along axisname
- filterwidth (double) – width of the convolution function.
- convfunc (function) – A function that takes two arguments – the first are the axis coordinates and the second is filterwidth.
Default is a normalized Gaussian of width (\(\sigma\))
filterwidth
\(\frac{1}{2 \sigma^2}\exp\left( - \frac{x^2}{2 \sigma^2} \right)\)
For example if you want a complex lorentzian with filterwidth controlled by the rate $R$,
i.e.
\(\frac{-1}{-i 2 \pi f - R}\)
then
convfunc = lambda f,R: -1./(-1j*2*pi*f-R)
-
copy
(data=True)¶ Return a full copy of this instance.
Because methods typically change the data in place, you might want to use this frequently.
Parameters: data (boolean) – Default to True. False doesn’t copy the data – this is for internal use, e.g. when you want to copy all the metadata and perform a calculation on the data.
The code for this also provides the definitive list of the nddata metadata.
-
copy_props
(other)¶ Copy all properties (see
get_prop()
) from another nddata object – note that these include properties pertaining the the FT status of various dimensions.
-
cropped_log
(subplot_axes=None, magnitude=4)¶ For the purposes of plotting, this generates a copy where I take the log, spanning “magnitude” orders of magnitude This is designed to be called as abs(instance).cropped_log(), so it doesn’t make a copy
-
dot
(arg)¶ Tensor dot of self with arg – dot all matching dimension labels. This can be used to do matrix multiplication, but note that the order of doesn’t matter, since the dimensions that are contracted are determined by matching the dimension names, not the order of the dimension.
>>> a = nddata(r_[0:9],[3,3],['a','b']) >>> b = nddata(r_[0:3],'b') >>> print a.C.dot(b) >>> print a.data.dot(b.data)
>>> a = nddata(r_[0:27],[3,3,3],['a','b','c']) >>> b = nddata(r_[0:9],[3,3],['a','b']) >>> print a.C.dot(b) >>> print tensordot(a.data,b.data,axes=((0,1),(0,1)))
>>> a = nddata(r_[0:27],[3,3,3],['a','b','c']) >>> b = nddata(r_[0:9],[3,3],['a','d']) >>> print a.C.dot(b) >>> print tensordot(a.data,b.data,axes=((0),(0)))
-
extend
(axis, extent, fill_with=0, tolerance=1e-05)¶ If axis is uniformly ascending with spacing \(dx\), then extend by adding a point every \(dx\) until the axis includes the point extent. Fill the newly created datapoints with fill_with.
Parameters: - axis (str) – name of the axis to extend
- extent (double) – extend the axis axis out to this point
- fill_with (double) – fill the new data points with this value (defaults to 0)
- tolerance (double) – when checking for ascending axis labels, etc., values/differences must match to within tolerance (assumed to represent the actual precision, given various errors, etc.)
-
extend_for_shear
(altered_axis, propto_axis, skew_amount, verbose=False)¶ this is propto_axis helper function for .fourier.shear
-
fld
(dict_in, noscalar=False)¶ flatten dictionary – return list
-
fourier_shear
(altered_axis, propto_axis, by_amount, zero_fill=False, start_in_conj=False)¶ the fourier shear method – see .shear() documentation
-
fromaxis
(*args, **kwargs)¶ Generate an nddata object from one of the axis labels.
Can be used in one of several ways:
self.fromaxis('axisname')
: Returns an nddata where retval.data consists of the given axis values.self.fromaxis('axisname',inputfunc)
: use axisname as the input for inputfunc, and load the result into retval.dataself.fromaxis(inputsymbolic)
: Evaluate inputsymbolic and load the result into retval.data
Parameters: - axisname (str | list) – The axis (or list of axes) to that is used as the argument of inputfunc or the function represented by inputsymbolic. If this is the only argument, it cannot be a list.
- inputsymbolic (sympy.Expr) – A sympy expression whose only symbols are the names of axes. It is preferred, though not required, that this is passed without an axisname argument – the axis names are then inferred from the symbolic expression.
- inputfunc (function) – A function (typically a lambda function) that taxes the values of the axis given by axisname as input.
- overwrite (bool) – Defaults to False. If set to True, it overwrites self with retval.
- as_array (bool) – Defaults to False. If set to True, retval is a properly dimensioned numpy ndarray rather than an nddata.
Returns: retval – An expression calculated from the axis(es) given by axisname or inferred from inputsymbolic.
Return type: nddata | ndarray
-
ft
(axes, tolerance=1e-05, cosine=False, verbose=False, **kwargs)¶ This performs a Fourier transform along the axes identified by the string or list of strings axes.
- It adjusts normalization and units so that the result conforms to
- \(\tilde{s}(f)=\int_{x_min}^{x_max} s(t) e^{-i 2 \pi f t} dt\)
Note that, as noted in the
ift()
documentation, the inverse transform doesn’t correspond to the equivalent expression for the IFT.pre-FT, we use the axis to cyclically permute \(t=0\) to the first index
post-FT, we assume that the data has previously been IFT’d If this is the case, passing
shift=True
will cause an error If this is not the case, passingshift=True
generates a standard fftshiftshift=None
will choose True, if and only if this is not the caseParameters: - pad (int or boolean) – pad specifies a zero-filling. If it’s a number, then it gives the length of the zero-filled dimension. If it is just True, then the size of the dimension is determined by rounding the dimension size up to the nearest integral power of 2.
- automix (double) – automix can be set to the approximate frequency value. This is useful for the specific case where the data has been captured on a sampling scope, and it’s severely aliased over.
- cosine (boolean) – yields a sum of the fft and ifft, for a cosine transform
-
ft_clear_startpoints
(axis, t=None, f=None, nearest=None)¶ Clears memory of where the origins in the time and frequency domain are. This is useful, e.g. when you want to ift and center about time=0. By setting shift=True you can also manually set the points.
Parameters: - t (float, 'current', 'reset', or None) – keyword arguments t and f can be set by (1) manually setting the start point (2) using the string ‘current’ to leave the current setting a lone (3) ‘reset’, which clears the startpoint and (4) None, which will be changed to ‘current’ when the other is set to a number or ‘rest’ if both are set to None.
- t – see t
- nearest (bool) –
Shifting the startpoint can only be done by an integral number of datapoints (i.e. an integral number of dwell times, dt, in the time domain or integral number of df in the frequency domain). While it is possible to shift by a non-integral number of datapoints, this is done by applying a phase-dependent shift in the inverse domain. Applying such a axis-dependent shift can have vary unexpected effects if the data in the inverse domain is aliased, and is therefore heavily discouraged. (For example, consider what happens if we attempt to apply a frequency-dependent phase shift to data where a peak at 110 Hz is aliased and appears at the 10 Hz position.)
Setting nearest to True will choose a startpoint at the closest integral datapoint to what you have specified.
Setting nearest to False will explicitly override the safeties – essentially telling the code that you know the data is not aliased in the inverse domain and/or are willing to deal with the consequences.
-
ft_state_to_str
(*axes)¶ Return a string that lists the FT domain for the given axes.
\(u\) refers to the original domain (typically time) and \(v\) refers to the FT’d domain (typically frequency) If no axes are passed as arguments, it does this for all axes.
-
ftshift
(axis, value)¶ FT-based shift. Currently only works in time domain.
This was previously made obsolete, but is now a demo of how to use the ft properties. It is not the most efficient way to do this.
-
get_covariance
()¶ this returns the covariance matrix of the data
-
get_error
(*args)¶ get a copy of the errors either set_error(‘axisname’,error_for_axis) or set_error(error_for_data)
-
get_ft_prop
(axis, propname=None)¶ Gets the FT property given by propname. For both setting and getting, None is equivalent to an unset value if no propname is given, this just sets the FT property, which tells if a dimension is frequency or time domain
-
get_prop
(propname=None)¶ return arbitrary ND-data properties (typically acquisition parameters etc.) by name (propname)
In order to allow ND-data to store acquisition parameters and other info that accompanies the data, but might not be structured in a gridded format, nddata instances always have a other_info dictionary attribute, which stores these properties by name.
If the property doesn’t exist, this returns None.
Parameters: propname (str) – Name of the property that you’re want returned. If this is left out or set to “None” (not given), the names of the available properties are returned. If no exact match is found, and propname contains a . or * or [, it’s assumed to be a regular expression. If several such matches are found, the error message is informative.
Todo
have it recursively search dictionaries (e.g. bruker acq)
Returns: Return type: The value of the property (can by any type) or None if the property doesn’t exist.
-
hdf5_write
(h5path, directory='.')¶ Write the nddata to an HDF5 file.
h5path is the name of the file followed by the node path where you want to put it – it does not include the directory where the file lives. The directory can be passed to the directory argument.
Parameters: - h5path (str) – The name of the file followed by the node path where you want to put it – it does not include the directory where the file lives. (Because HDF5 files contain an internal directory-like group structure.)
- directory (str) – the directory where the HDF5 file lives.
-
ift
(axes, n=False, tolerance=1e-05, verbose=False, **kwargs)¶ This performs a Fourier transform along the axes identified by the string or list of strings axes.
- It adjusts normalization and units so that the result conforms to
- \(s(t)=t_{dw} \int_{x_min}^{x_max} \tilde{s}(t) e^{i 2 \pi f t} df\)
Where \(t_{dw}=\frac{1}{\Delta f}\), is the dwell time (with \(\Delta f\) the spectral width).
Why do we do this? Note that while the analytical integral this corresponds to is normalized, performing
ft()
followed byift()
on a discrete sequence is NOT completely invertible (due to integration of the implied comb function??), and would require division by a factor of $Delta f$ (the spectral width) in order to retrieve the original functionpre-IFT, we use the axis to cyclically permute $f=0$ to the first index
post-IFT, we assume that the data has previously been FT’d If this is the case, passing
shift=True
will cause an error If this is not the case, passingshift=True
generates a standard ifftshiftshift=None
will choose True, if and only if this is not the caseParameters: pad (int or boolean) – pad specifies a zero-filling. If it’s a number, then it gives the length of the zero-filled dimension. If it is just True, then the size of the dimension is determined by rounding the dimension size up to the nearest integral power of 2. It uses the start_time ft property to determine the start of the axis. To do this, it assumes that it is a stationary signal (convolved with infinite comb function). The value of start_time can differ from by a non-integral multiple of \(\Delta t\), though the routine will check whether or not it is safe to do this.
- ..note ::
- In the code, this is controlled by p2_post (the integral \(\Delta t\) and p2_post_discrepancy – the non-integral.
-
imag
¶ Return the imag component of the data
-
indices
(axis_name, values)¶ Return a string of indeces that most closely match the axis labels corresponding to values. Filter them to make sure they are unique.
-
inhomog_coords
(direct_dim, indirect_dim, tolerance=1e-05, method='linear', plot_name=None, fl=None, debug_kwargs={})¶ Apply the “inhomogeneity transform,” which rotates the data by \(45^{\circ}\), and then mirrors the portion with \(t_2<0\) in order to transform from a \((t_1,t_2)\) coordinate system to a \((t_{inh},t_{homog})\) coordinate system.
Parameters: - direct_dim (str) – Label of the direct dimension (typically \(t_2\))
- indirect_dim (str) – Label of the indirect dimension (typically \(t_1\))
- method ('linear', 'fourier') – The interpolation method used to rotate the data and to mirror the data. Note currently, both use a fourier-based mirroring method.
- plot_name (str) – the base name for the plots that are generated
- fl (figlist_var) –
- debug_kwargs (dict) –
with keys:
correct_overlap: if False, doesn’t correct for the overlap error that occurs during mirroring
-
integrate
(thisaxis, backwards=False, cumulative=False)¶ this performs an integration – which is similar to a sum, except that it takes the axis into account, i.e., it performs: $int f(x) dx$ rather than $sum_i f(x_i)$
Gaussian quadrature, etc, is planned for a future version.
-
interp
(axis, axisvalues, past_bounds=None, return_func=False, **kwargs)¶ interpolate data values given axis values
Parameters: return_func (boolean) – defaults to False. If True, it returns a function that accepts axis values and returns a data value.
-
invinterp
(axis, values, **kwargs)¶ interpolate axis values given data values
-
item
()¶ like numpy item – returns a number when zero-dimensional
-
labels
(*args) label the dimensions, given in listofstrings with the axis labels given in listofaxes – listofaxes must be a numpy array; you can pass either a dictionary or a axis name (string)/axis label (numpy array) pair
-
like
(value)¶ provide “zeros_like” and “ones_like” functionality
Parameters: value (float) – 1 is “ones_like” 0 is “zeros_like”, etc.
-
linear_shear
(along_axis, propto_axis, shear_amnt, zero_fill=True)¶ the linear shear – see self.shear for documentation
-
matchdims
(other)¶ add any dimensions to self that are not present in other
-
matrices_3d
(also1d=False, invert=False, max_dimsize=1024, downsample_self=False)¶ returns X,Y,Z,x_axis,y_axis matrices X,Y,Z, are suitable for a variety of mesh plotting, etc, routines x_axis and y_axis are the x and y axes
-
mayavi_surf
()¶ use the mayavi surf function, assuming that we’ve already loaded mlab during initialization
-
mean
(*args, **kwargs)¶ Take the mean and set the error to the standard deviation
Parameters: return_error (bool) – whether or note to return the standard deviation as an error
-
mean_all_but
(listofdims)¶ take the mean over all dimensions not in the list
-
mean_weighted
(axisname)¶ perform the weighted mean along axisname (use $sigma$ from $sigma = $self.get_error() do generate $1/sigma$ weights) for now, it clears the error of self, though it would be easy to calculate the new error, since everything is linear
unlike other functions, this creates working objects that are themselves nddata objects this strategy is easier than coding out the raw numpy math, but probably less efficient
-
meshplot
(stride=None, alpha=1.0, onlycolor=False, light=None, rotation=None, cmap=<matplotlib.colors.LinearSegmentedColormap object>, ax=None, invert=False, **kwargs)¶ takes both rotation and light as elevation, azimuth only use the light kwarg to generate a black and white shading display
-
mkd
(*arg, **kwargs)¶ make dictionary format
-
name
(*arg)¶ args: .name(newname) –> Name the object (for storage, etc) .name() –> Return the name
-
nnls
(dimname, newaxis_dict, kernel_func, l=0)¶ Perform regularized non-negative least-squares “fit” on self.
Capable of solving for solution in 1 or 2 dimensions.
We seek to minimize \(Q = \| Ax - b \|_2 + \|\lambda x\|_2\) in order to obtain solution vector \(x\) subject to non-negativity constraint given input matrix \(A\), the kernel, and input vector \(b\), the data.
The first term assesses agreement between the fit \(Ax\) and the data \(b\), and the second term accounts for noise with the regularization parameter \(\lambda\) according to Tikhonov regularization.
To perform regularized minimization in 2 dimensions, set l to :str:`BRD` and provide a tuple of parameters :str:`dimname`, :nddata:`newaxis_dict`, and :function:`kernel_func`. Algorithm described in Venkataramanan et al. 2002 is performed which determines optimal \(\lambda\) for the data (DOI:10.1109/78.995059).
See: Wikipedia page on NNLS, Wikipedia page on Tikhonov regularization
Parameters: - dimname (str) – Name of the “data” dimension that is to be replaced by a distribution (the “fit” dimension); e.g. if you are regularizing a set of functions \(\exp(-\tau*R_1)\), then this is \(\tau\)
- newaxis_dict (dict or nddata) – a dictionary whose key is the name of the “fit” dimension (\(R_1\) in the example above) and whose value is an array with the new axis labels. OR this can be a 1D nddata – if it has an axis, the axis will be used to create the fit axis; if it has no axis, the data will be used
- kernel_func (function) – a function giving the kernel for the regularization.
The first argument is the “data” variable
and the second argument is the “fit” variable
(in the example above, this would be something like
lambda x,y: exp(-x*y)
) - l (double (default 0) or str) – the regularization parameter \(lambda\) – if this is set to 0, the algorithm reverts to standard nnls. If this is set to :str:`BRD`, then algorithm expects tuple of each parameter described above in order to perform a 2-dimensional fit.
Returns: The regularized result. For future use, both the kernel (as an nddata, in a property called “nnls_kernel”) and the residual (as an nddata, in a property called “nnls_residual”) are stored as properties of the nddata. The regularized dimension is always last (innermost). If :str:`BRD` is specified, then the individual, uncompressed kernels \(K_{1}\) and \(K_{2}\) are returned as properties of the nddata “K1” and “K2” respectively. The number of singular values used to compressed each kernel is returned in properties of the nddata called, respectively, “s1” and “s2”.
Return type: self
-
plot_labels
(labels, fmt=None, **kwargs_passed)¶ this only works for one axis now
-
polyfit
(axis, order=1, force_y_intercept=None)¶ polynomial fitting routine – return the coefficients and the fit ..note:
later, should probably branch this off as a new type of fit class- ..warning:
- for some reason, this version doesn’t use orthogonal polynomials, as the numpy routine does – we had diagnosed and determined that that creates noticeably different results, so fix that here.
Parameters: - axis (str) – name of the axis that you want to fit along (not sure if this is currently tested for multi-dimensional data, but the idea should be that multiple fits would be returned.)
- order (int) – the order of the polynomial to be fit
- force_y_intercept (double or None) – force the y intercept to a particular value (e.g. 0)
Returns: - c (ndarray) – a standard numpy array containing the coefficients (in ascending polynomial order)
- formult (nddata) – an nddata containing the result of the fit
-
random_mask
(axisname, threshold=None, inversion=False)¶ generate a random mask with about ‘threshold’ of the points thrown out
-
real
¶ Return the real component of the data
-
register_axis
(arg)¶ Interpolate the data so that the given axes are in register with a set of specified values. Does not change the spacing of the axis labels.
It finds the axis label position that is closest to the values given in arg, then interpolates (Fourier/sinc method) the data onto a new, slightly shifted, axis that passes exactly through the value given. To do this, it uses
.ft_clear_startpoints()
and uses.set_ft_prop()
to override the “not aliased” flag.Parameters: arg (dict (key,value = str,double)) – A list of the dimensions that you want to place in register, and the values you want them registered to.
-
reorder
(*axes, **kwargs)¶ Reorder the dimensions the first arguments are a list of dimensions
Parameters: - *axes (str) – Accept any number of arguments that gives the dimensions, in the order that you want thee.
- first (bool) – (default True) Put this list of dimensions first, while False puts them last (where they then come in the order given).
-
run
(*args)¶ run a standard numpy function on the nddata:
d.run(func,'axisname')
will run function func (e.g. a lambda function) along axis named ‘axisname’d.run(func)
will run function func on the datain general: if the result of func reduces a dimension size to 1, the ‘axisname’ dimension will be “popped” (it will not exist in the result) – if this is not what you want, use
run_nopop
-
run_avg
(thisaxisname, decimation=20, centered=False)¶ a simple running average
-
secsy_transform
(direct_dim, indirect_dim, has_indirect=True, method='fourier', truncate=True)¶ Shift the time-domain data backwards by the echo time.
As opposed to
secsy_transform_manual
, this calls on onskew
, rather than directly manipulating the phase of the function, which can lead to aliasing.Parameters: - has_indirect (bool) –
(This option is largely specific to data loaded by
acert_hdf5
)Does the data actually have an indirect dimension? If not, assume that there is a constant echo time, that can be retrieved with
.get_prop('te')
. - truncate (bool) – If this is set, register_axis <pyspecdata.axis_manipulation.register_axis> to \(t_{direct}=0\), and then throw out the data for which \(t_{direct}<0\).
- method (str) – The shear method (linear or fourier).
- has_indirect (bool) –
-
secsy_transform_manual
(direct_dim, indirect_dim, has_indirect=True, truncate=False)¶ Shift the time-domain data backwards by the echo time. As opposed to
secsy_transform
, this directlly manipulates the phase of the function, rather than calling onskew
.Parameters: - has_indirect (bool) –
(This option is largely specific to data loaded by
acert_hdf5
)Does the data actually have an indirect dimension? If not, assume that there is a constant echo time, that can be retrieved with
.get_prop('te')
. - truncate (bool) – If this is set, register_axis <pyspecdata.axis_manipulation.register_axis> to \(t_{direct}=0\), and then throw out the data for which \(t_{direct}<0\).
- has_indirect (bool) –
-
set_error
(*args)¶ set the errors: either
set_error(‘axisname’,error_for_axis) or set_error(error_for_data)
error_for_data can be a scalar, in which case, all the data errors are set to error_for_data
-
set_ft_prop
(axis, propname=None, value=True)¶ Sets the FT property given by propname. For both setting and getting, None is equivalent to an unset value if propname is a boolean, and value is True (the default), it’s assumed that propname is actually None, and that value is set to the propname argument (this allows us to set the FT property more easily)
-
set_prop
(*args)¶ set a ‘property’ of the nddata This is where you can put all unstructured information (e.g. experimental parameters, etc)
-
set_to
(otherinst)¶ Set data inside the current instance to that of the other instance.
Goes through the list of attributes specified in copy, and assigns them to the element of the current instance.
This is to be used:
- for constructing classes that inherit nddata with additional methods.
- for overwriting the current data with the result of a slicing operation
-
setaxis
(*args)¶ set or alter the value of the coordinate axis
Can be used in one of several ways:
self.setaxis('axisname', values)
: just sets the valuesself.fromaxis('axisname',inputfunc)
: take the existing function, apply inputfunc, and replaceself.fromaxis(inputsymbolic)
: Evaluate inputsymbolic and load the result into the axes, appropriately
-
shear
(along_axis, propto_axis, shear_amnt, zero_fill=True, start_in_conj=False, method='linear')¶ Shear the data \(s\):
\(s(x',y,z) = s(x+ay,y,z)\)
where \(x\) is the altered_axis and \(y\) is the propto_axis. (Actually typically 2D, but \(z\) included just to illustrate other dimensions that aren’t involved)
Parameters: - method ({'fourier','linear'}) –
- fourier
- Use the Fourier shift theorem (i.e., sinc interpolation). A
shear is equivalent to the following in the conjugate domain:
..math: tilde{s}(f_x,f’_y,z) = tilde{s}(f_x,f_y-af_x,f_z)
Because of this, the algorithm also automatically extend`s the data in `f_y axis. Equivalently, it increases the resolution (decreases the interval between points) in the propto_axis dimension. This prevents aliasing in the conjugate domain, which will corrupt the data w.r.t. successive transformations. It does this whether or not zero_fill is set (zero_fill only controls filling in the “current” dimension)
- linear
- Use simple linear interpolation.
- altered_axis (str) – The coordinate for which data is altered, i.e. ..math: x such that ..math: f(x+ay,y).
- by_amount (double) – The amount of the shear (..math: a in the previous)
- propto_axis (str) – The shift along the altered_axis dimension is proportional to the shift along propto_axis. The position of data relative to the propto_axis is not changed. Note that by the shift theorem, in the frequency domain, an equivalent magnitude, opposite sign, shear is applied with the propto_axis and altered_axis dimensions flipped.
- start_in_conj ({False, True}, optional) –
Defaults to False
For efficiency, one can replace a double (I)FT call followed by a shear call with a single shear call where start_in_conj is set.
self before the call is given in the conjugate domain (i.e., \(f\) vs. \(t\)) along both dimensions from the one that’s desired. This means: (1) self after the function call transformed into the conjugate domain from that before the call and (2) by_amount, altered_axis, and propto_axis all refer to the shear in the conjugate domain that the data is in at the end of the function call.
- method ({'fourier','linear'}) –
-
smoosh
(dimstocollapse, dimname=0, noaxis=False)¶ Collapse (smoosh) multiple dimensions into one dimension.
Parameters: - dimstocollapse (list of strings) – the dimensions you want to collapse to one result dimension
- dimname (None, string, integer (default 0)) –
if dimname is:
- None: create a new (direct product) name,
- a number: an index to the
dimstocollapse
list. The resulting smooshed dimension will be nameddimstocollapse[dimname]
. Because the default is the number 0, the new dimname will be the first dimname given in the list. - a string: the name of the resulting smooshed dimension (can be part of the
dimstocollapse
list or not)
- noaxis (bool) – if set, then just skip calculating the axis for the new dimension, which otherwise is typically a complicated record array
Returns: - self (nddata) – the dimensions dimstocollapse are smooshed into a single dimension, whose name is determined by dimname. The axis for the resulting, smooshed dimension is a structured array consisting of two fields that give the labels along the original axes.
- ..todo:: – when we transition to axes that are stored using a slice/linspace-like format, allow for smooshing to determine a new axes that is standard (not a structured array) and that increases linearly.
-
squeeze
(return_dropped=False)¶ squeeze singleton dimensions
Parameters: return_dropped (bool (default False)) – return a list of the dimensions that were dropped as a second argument Returns: - self
- return_dropped (list) – (optional, only if return_dropped is True)
-
to_ppm
()¶ Function that converts from Hz to ppm using Bruker parameters
Todo
Figure out what the units of PHC1 in Topspin are (degrees per what??), and apply those as well.
make this part of an inherited bruker class
-
unitify_axis
(axis_name, is_axis=True)¶ this just generates an axis label with appropriate units
-
unset_prop
(arg)¶ remove a ‘property’
-


A SOLDIER'S DAUGHTER NEVER CRIES (1998) A Film Review by Ted Prigge Copyright 1999 Ted Prigge
Director: James Ivory Writers: James Ivory and Ruth Prawer Jhabvala (based on the novel by Kaylie Jones) Starring: Kris Kristofferson, Barbara Hershey, Leelee Sobieski, Jesse Bradford, Anthony Ruth Costanzo, Dominique Blanc, Jane Birkin, Virginie Ledoyen, Samuel Gruen, Luisa Conlon, Isaach de Bankolé, Nick Nolte
"A Soldier's Daughter Never Cries" is a beautifull shot and beautifully memorable film, crafted like it was a series of episodes from one life, divided into three sections of emotional maturity. It just so happens that that's exactly what its source is. Adapted from the semi-autobiographical novel by Kaylie Jones, daughter of famous American war scribe, James Jones (author of "Red Badge of Courage" and "The Thin Red Line"), this film has been meticulously created to be episodic in structure, and more like distant remembrances than actual emotional involvement. And like all films like this, it not only involves in the story at hand, but it forces us to remember our own pasts, and what has shaped us to be the person that we are at the moment.
As a skematic for a person's current life, "A Soldier's Daughter Never Cries" is never fully complete, and there are moments where we don't understand the lead's motives until the moment she makes her choices. As a tragedy, which what it would be in the hands of others, it's unfulfilling, and little subplots (like the daughter's relationship with her brother) are never totally together. And there are more than a couple notable ends left dangling in the wind. But that's exactly how it has been designed to be: just the right amount of judgment on situations with a twist of emotion. The events of the film are told in an almost distant tone, but what transpires from them become exactly like happy/sad memories. For instance, the story's plot is supposed to be about a family who has lived most of their life in France coming back to America, where the teenage children have to assimilate, but it never feels like that is the actual point of this story. It feels more like a woman at an older, more mature age rereading her diary she kept when a young girl.
The woman, renamed Channe Willis (played at a young age by Luisa Conlon), is first seen living in Paris with her parents, author Bill (Kris Kristoferson) and beautiful wife Marcella (Barbara Hershey), when they adopt a young child named Benoit (played at a young age by Samuel Gruen), who was the son of a young french woman (Virginie Ledoyen), too young to keep him. Benoit happily renames himself after his new father, and becomes best friends with Channe. Once grown up to about the age of 14, the two have drifted apart and Channe (now played by Leelee Sobieski) befriends an affeminate boy named Francis (Anthony Ruth Costanzo) at her multi-lingual school, and the two become inseperable, isolating Billy (Jesse Bradford). Slowly and methodically, Francis gets on her nerves, though, distancing himself from her until he finally confesses his undying love for her in an idiosyncratic and touching scene.
But throughout, despite who is the closest man or boy in her life, her father always lingers over her. Though a notorious drunkard and being totally and hilarious redneck, Kristoferson brilliantly crafts Bill into the most wonderfully paternal figure of the year. He's gruff and intimidating but he's also bizarrely charming and approachable. When his health begins to fail a bit, he decides he wants to move back to America, and his children react differently to the massive change. Channe becomes promiscuous, and Billy becomes a loafer, watching TV constantly, a bag of chips never being far away.
As her father's days near an end due to a mortal illness, they become even closer: she confesses her promiscuous ways to him, and he takes it matter-of-factly. When she becomes serious over a boy, and they get to the point that they want to sleep together, Bill shocks both of them by suggesting they sleep in her bed, under the same roof - "If they're gonna do it, they might as well do it right."
This film is chock full of moments like that, the moments that become memorable not only to the people who live through them, but to those who observe silently. And throughout the film, we get the picture that this family is completely unique, like all families. They're close yet still comfortably distant, and all are respective of eachother, even when they have fits of selfish rage (on New Years Eve, Marcella lays a massive head trip on her daughter the likes of which I hope I never have to endure personally). This is all told in the reserved, matter-of-fact manner that Merchant Ivory productions have been acclaimed for. They tell their plot points flat out, without a whole lot of production, but then quietly observe the little emotional attachments that come along with them. "The Remains of the Day" would be such a boring flick if it hadn't been for the way they quietly observed the Anthony Hopkins character, and brought out his inner demons (that's also thanks to Hopkins, of course). Well, they work the same way for the characters in "A Soldier's Daughter Never Cries." They observe Channe, and all those around her, especially her father, a man who borders on flawless legend and down-to-earth flawed human being.
The acting is simplistic and pretty incredible. Sobieski, totally annoying in her past films like "Jungle 2 Jungle" and "Deep Impact," is totally fascinating to watch here (this gives me hopes for her supporting turn in the upcoming Kubrick film). Hershey hasn't been this good in years. And Kristoferson gives the performance of his life, at least as to what I've seen of him (which means, I guess, that this is his best performance, followed by "Big Top Pee Wee"). As notoriously redneck as he is, he shows that he's a totally lovable actor, and if there's some special award for "Best Performance by an Actor Who We All Thought Had Very Little Talent Previously," hands down it'd go to Kristoferson. He and the other actors make this all seem real, and that's the reason this film is so entertaining to watch. A film like this reminds us how little plot matters in certain films - it just matters how much it affects us with the little things, and the memories it gives us after the film has been long over.
MY RATING (out of 4): ***1/2
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


ofPath
ofPath is a way to create a path or multiple paths consisting of points. It allows you to combine multiple paths consisting of points into a single vector data object that can be drawn to the screen, manipulated point by point, or manipulated with it's child subpaths. It is better at representing and manipulating complex shapes than the ofPolyline and more easily represents multiple child lines or shapes as either ofSubPath or ofPolyline instances. By default ofPath uses ofSubPath instances. Closing the path automatically creates a new path:
for( int i = 0; i < 5; i++) {
path.arc( i * 50 + 20, i * 50 + 20, i * 40 + 10, i * 40 + 10, 0, 360); // creates a new ofSubPath
path.close();
}
To use ofPolyline instances, simply set the mode to POLYLINES
path.setMode(POLYLINES);
- arc(...)
- arcNegative(...)
- bezierTo(...)
- clear()
- close()
- curveTo(...)
- draw(...)
- flagShapeChanged()
- getArcResolution()
- getCurveResolution()
- getFillColor()
- getOutline()
- getStrokeColor()
- getStrokeWidth()
- getSubPaths()
- getTessellation()
- getUseShapeColor()
- getWindingMode()
- hasOutline()
- isFilled()
- lineTo(...)
- moveTo(...)
- newSubPath()
- quadBezierTo(...)
- rotate(...)
- scale(...)
- setArcResolution(...)
- setColor(...)
- setCurveResolution(...)
- setFillColor(...)
- setFillHexColor(...)
- setFilled(...)
- setHexColor(...)
- setMode(...)
- setPolyWindingMode(...)
- setStrokeColor(...)
- setStrokeHexColor(...)
- setStrokeWidth(...)
- setUseShapeColor(...)
- simplify(...)
- tessellate()
- translate(...)
ofPath methods
arc(...)
void ofPath::arc(const ofPoint ¢re, float radiusX, float radiusY, float angleBegin, float angleEnd)
Creates an arc at centre, which has the radiusX, radiusY, and begins at angleBegin and ends at angleEnd. To draw a circle with a radius of 50 pixels at 100, 100:
path.arc( 100, 100, 50, 50, 0, 360);
Note that angleBegin needs to be larger than angleEnd, i.e. 0, 180 is ok, while 180,0 is not.
arc(...)
void ofPath::arc(float x, float y, float radiusX, float radiusY, float angleBegin, float angleEnd)
Creates an arc at x,y, which has the radiusX, radiusY, and begins at angleBegin and ends at angleEnd. To draws a shape with a radius of 200 pixels at 300, 300:
path.moveTo(300, 300);
path.arc( 300, 300, 200, 200, 0, 271); // note 271, not 270 for precision
Note that angleBegin needs to be larger than angleEnd, i.e. 0, 180 is ok, while 180,0 is not.
arc(...)
void ofPath::arc(float x, float y, float z, float radiusX, float radiusY, float angleBegin, float angleEnd)
Creates an arc at x,y,z, which has the radiusX, radiusY, and begins at angleBegin and ends at angleEnd.
arc(...)
void ofPath::arc(const ofPoint ¢re, float radiusX, float radiusY, float angleBegin, float angleEnd, bool clockwise)
arcNegative(...)
void ofPath::arcNegative(const ofPoint ¢re, float radiusX, float radiusY, float angleBegin, float angleEnd)
arcNegative(...)
void ofPath::arcNegative(float x, float y, float radiusX, float radiusY, float angleBegin, float angleEnd)
arcNegative(...)
void ofPath::arcNegative(float x, float y, float z, float radiusX, float radiusY, float angleBegin, float angleEnd)
bezierTo(...)
void ofPath::bezierTo(const ofPoint &cp1, const ofPoint &cp2, const ofPoint &p)
Creates a cubic bezier line from the current drawing point with the 2 control points indicated by ofPoint cp1 and cp2, that ends at ofPoint to. For instance, the following:
line.addVertex(ofPoint(200, 400));
line.bezierTo(100, 100, 800, 100, 700, 400);
Creates this: The control points are shown in yellow.
bezierTo(...)
void ofPath::bezierTo(float cx1, float cy1, float cx2, float cy2, float x, float y)
Creates a cubic bezier line from the current drawing point with the 2 control points indicated by the coordinates cx1, cy1 and cx2, cy2, that ends at the coordinates x, y.
bezierTo(...)
void ofPath::bezierTo(float cx1, float cy1, float cz1, float cx2, float cy2, float cz2, float x, float y, float z)
Creates a cubic bezier line in 3D space from the current drawing point with the 2 control points indicated by the coordinates cx1, cy1, cz1 and cx2, cy2, cz2, that ends at the coordinates x, y, z.
float cx = ofGetWidth()/2;
float cy = 200;
float step = TWO_PI / 60;
for (float i = 0.0; i < TWO_PI; i+=step) {
if(i == 0.0) {
line.addVertex(cx + (400*cos(i)), cy+400, 400 * sin(i));
} else {
line.bezierTo( cx - (200*cos(i)), cy-100, 400 * sin(i),
cx + (200*cos(i)), cy+600, 400 * sin(i),
cx + (400*cos(i)), cy+400, 400 * sin(i));
}
}
close()
void ofPath::close()
Closes the current subpath and creates a new subpath, either an ofPolyline or ofSubPath by calling newSubPath(), ensuring that the closed path doesn't have new points added to it.
curveTo(...)
void ofPath::curveTo(const ofPoint &p)
Draws a curve to p from the current drawing position.
curveTo(...)
void ofPath::curveTo(float x, float y)
Draws a curve to x,y from the current drawing position. To draw a small rose curves at the mouse position:
float scale = ofDist(mouseX, mouseY, px, py);
for( float theta = 0; theta < TWO_PI; theta += 0.1)
{
float r = cos(theta * (scale/6)) * scale;
path.curveTo(mouseX + r * cos(theta), mouseY + r * sin(theta));
}
px = mouseX;
py = mouseY;
curveTo(...)
void ofPath::curveTo(float x, float y, float z)
Draws a curve to x,y,z from the current drawing position.
draw(...)
void ofPath::draw(float x, float y)
Draws the path at x,y. Calling draw() also calls tessllate().
getOutline()
ofPolyline ofPath::getOutline()
This returns an ofPolyline representing the outline of an ofPath.
getStrokeColor()
ofColor ofPath::getStrokeColor()
Returns the stroke color that the ofPath is using.
getSubPaths()
ofSubPath ofPath::getSubPaths()
This returns a vector of ofSubPath instances that you can walk to inspect their properties. If you've set your ofPath instance to use ofPolylines then this method does nothing.
getWindingMode()
ofPolyWindingMode ofPath::getWindingMode()
Returns the poly winding mode currently in use.
lineTo(...)
void ofPath::lineTo(const ofPoint &p)
Draws a straight line from the current drawing position to the location indicated by p.
lineTo(...)
void ofPath::lineTo(float x, float y)
Draws a straight line from the current drawing position to the location indicated by x,y.
lineTo(...)
void ofPath::lineTo(float x, float y, float z)
Draws a straight line from the current drawing position to the location indicated by x,y,z.
moveTo(...)
void ofPath::moveTo(const ofPoint &p)
Moves the drawing position to p. This means that a subsequent calls to, for instance, lineTo() or curveTo() will connect the location p to the new location.
moveTo(...)
void ofPath::moveTo(float x, float y, float z=0)
Moves the drawing position to x,y.z. This means that a subsequent calls to, for instance, lineTo() or curveTo() will connect the location x,y,z to the new location.
newSubPath()
void ofPath::newSubPath()
Creates a new subpath, either an ofPolyline instance or an ofSubPath instance. All points added after a call to ofSubPath will be done in the newly created subpath. Calling close() automatically calls create newSubPath(), ensuring that the closed path doesn't have new points added to it.
quadBezierTo(...)
void ofPath::quadBezierTo(const ofPoint &cp1, const ofPoint &cp2, const ofPoint &p)
Creates a quadratic bezier line in 3D space from the current drawing point with the beginning indicated by the coordinates cx1, cy1, cz1, the control point at cx2, cy2, cz2, and that ends at the coordinates x, y, z.
quadBezierTo(...)
void ofPath::quadBezierTo(float cx1, float cy1, float cx2, float cy2, float x, float y)
Creates a quadratic bezier line in 2D space from the current drawing point with the beginning indicated by the point p1, the control point at p2, and that ends at the point p3.
quadBezierTo(...)
void ofPath::quadBezierTo(float cx1, float cy1, float cz1, float cx2, float cy2, float cz2, float x, float y, float z)
Creates a quadratic bezier line in 3D space from the current drawing point with the beginning indicated by the coordinates cx1, cy1, the control point at cx2, cy2, and that ends at the coordinates x, y.
scale(...)
void ofPath::scale(float x, float y)
Changes the size of either the ofPolyline or ofSubPath instances that the ofPath contains. These changes are non-reversible, so for instance scaling by 0,0 zeroes out all data.
setColor(...)
void ofPath::setColor(const ofColor &color)
This sets the color of the path. This affects both the line if the path is drawn as wireframe and the fill if the path is drawn with fill. All subpaths are affeted.
setFillColor(...)
void ofPath::setFillColor(const ofColor &color)
This sets the fill color of the path. This has no affect if the path is drawn as wireframe.
setFillHexColor(...)
void ofPath::setFillHexColor(int hex)
This sets the fill color of the path. This has no affect if the path is drawn as wireframe.
setFilled(...)
void ofPath::setFilled(bool hasFill)
Sets whether the path should be drawn as wireframes or filled.
setHexColor(...)
void ofPath::setHexColor(int hex)
This sets the color of the path. This affects both the line if the path is drawn as wireframe and the fill if the path is drawn with fill. All subpaths are affeted.
setPolyWindingMode(...)
void ofPath::setPolyWindingMode(ofPolyWindingMode mode)
This sets the way that the points in the sub paths are connected. OpenGL can only render convex polygons which means that any shape that isn't convex, i.e. that has points which are concave, going inwards, need to be tessellated into triangles so that OpenGL can render them. If you're using filled shapes with your ofPath this is done automatically for you. The possible options you can pass in are:
OF_POLY_WINDING_ODD OF_POLY_WINDING_NONZERO OF_POLY_WINDING_POSITIVE OF_POLY_WINDING_NEGATIVE OF_POLY_WINDING_ABS_GEQ_TWO
So adding the following points:
void testApp::setup(){
path.lineTo(0, 400);
path.lineTo(400, 400);
path.lineTo(400, 0);
path.lineTo(0, 0); // outer
path.close();
path.moveTo(100, 100);
path.lineTo(100, 300);
path.lineTo(300, 300);
path.lineTo(300, 100);
path.lineTo(100, 100); // inner 1
path.close();
path.moveTo(250, 150);
path.lineTo(150, 150);
path.lineTo(150, 250);
path.lineTo(250, 250);
path.lineTo(250, 150); // inner 2 (backwards)
path2.lineTo(0, 400);
path2.lineTo(400, 400);
path2.lineTo(400, 0);
path2.lineTo(0, 0); // outer
path2.close();
path2.moveTo(100, 100);
path2.lineTo(300, 100);
path2.lineTo(300, 300);
path2.lineTo(100, 300);
path2.lineTo(100, 100); // inner 1
path2.close();
path2.moveTo(150, 150);
path2.lineTo(250, 150);
path2.lineTo(250, 250);
path2.lineTo(150, 250);
path2.lineTo(150, 150); // inner 2 (fwds)
}
void testApp::draw(){
ofTranslate(40,40);
path.draw();
ofTranslate(410, 0);
path2.draw();
}
void testApp::keyPressed(int key){
mode++;
if( mode > 4 ) mode = 0;
path.setPolyWindingMode((ofPolyWindingMode) mode);
path2.setPolyWindingMode((ofPolyWindingMode) mode);
}
we can see non zero and positive handle the winding differently:
setStrokeColor(...)
void ofPath::setStrokeColor(const ofColor &color)
This sets the stroke color of the path. This has no affect if the path is drawn filled.
setStrokeHexColor(...)
void ofPath::setStrokeHexColor(int hex)
This sets the stroke color of the path. This has no affect if the path is drawn filled.
setStrokeWidth(...)
void ofPath::setStrokeWidth(float width)
Sets the stroke width of the line if the ofPath is to be drawn not in wireframe.


19.1 [dbsig-exercise]Show, by translating into conjunctive normal form and applying resolution, that the conclusion drawn on page dbsig-page concerning Brazilians is sound.
19.2 For each of the following determinations, write down the logical representation and explain why the determination is true (if it is):
Design and denomination determine the mass of a coin.
For a given program, input determines output.
Climate, food intake, exercise, and metabolism determine weight gain and loss.
Baldness is determined by the baldness (or lack thereof) of one’s maternal grandfather.
19.3 For each of the following determinations, write down the logical representation and explain why the determination is true (if it is):
Zip code determines the state (U.S.).
Design and denomination determine the mass of a coin.
Climate, food intake, exercise, and metabolism determine weight gain and loss.
Baldness is determined by the baldness (or lack thereof) of one’s maternal grandfather.
19.4 Would a probabilistic version of determinations be useful? Suggest a definition.
19.5 [ir-step-exercise]Fill in the missing values for the clauses $C_1$ or $C_2$ (or both) in the following sets of clauses, given that $C$ is the resolvent of $C_1$ and $C_2$:
$C = {True} {\:\;{\Rightarrow}\:\;}P(A,B)$, $C_1 = P(x,y) {\:\;{\Rightarrow}\:\;}Q(x,y)$, $C_2 = ??$.
$C = {True} {\:\;{\Rightarrow}\:\;}P(A,B)$, $C_1 = ??$, $C_2 = ??$.
$C = P(x,y) {\:\;{\Rightarrow}\:\;}P(x,f(y))$, $C_1 = ??$, $C_2 = ??$.
If there is more than one possible solution, provide one example of each different kind.
19.6 [prolog-ir-exercise]Suppose one writes a logic program that carries out a resolution inference step. That is, let ${Resolve}(c_1,c_2,c)$ succeed if $c$ is the result of resolving $c_1$ and $c_2$. Normally, ${Resolve}$ would be used as part of a theorem prover by calling it with $c_1$ and $c_2$ instantiated to particular clauses, thereby generating the resolvent $c$. Now suppose instead that we call it with $c$ instantiated and $c_1$ and $c_2$ uninstantiated. Will this succeed in generating the appropriate results of an inverse resolution step? Would you need any special modifications to the logic programming system for this to work?
19.7 [foil-literals-exercise]Suppose that is considering adding a literal to a clause using a binary predicate $P$ and that previous literals (including the head of the clause) contain five different variables.
How many functionally different literals can be generated? Two literals are functionally identical if they differ only in the names of the new variables that they contain.
Can you find a general formula for the number of different literals with a predicate of arity $r$ when there are $n$ variables previously used?
Why does not allow literals that contain no previously used variables?
19.8 Using the data from the family tree in Figure family2-figure, or a subset thereof, apply the algorithm to learn a definition for the ${Ancestor}$ predicate.


Data of Class _oslVolumeInfo
- uStructSize
- sal_uInt32 uStructSize;
- Summary
- Must be initialized with the size in bytes of the structure before passing it to any function
- uValidFields
- sal_uInt32 uValidFields;
- Summary
- Determines which members of the structure contain valid data
- uAttributes
- sal_uInt32 uAttributes;
- Summary
- Attributes of the volume (remote and/or removable)
- uTotalSpace
- sal_uInt64 uTotalSpace;
- Summary
- Total availiable space on the volume for the current process/user
- uUsedSpace
- sal_uInt64 uUsedSpace;
- Summary
- Used space on the volume for the current process/user
- uFreeSpace
- sal_uInt64 uFreeSpace;
- Summary
- Free space on the volume for the current process/user
- uMaxNameLength
- sal_uInt32 uMaxNameLength;
- Summary
- Maximum length of file name of a single item
- uMaxPathLength
- sal_uInt32 uMaxPathLength;
- Summary
- Maximum length of a full quallified path in system notation
- ustrFileSystemName
- rtl_uString * ustrFileSystemName;
- Summary
- Points to a string that receives the name of the file system type. String should be set to zero before calling
osl_getVolumeInformation
and released after usage.
- pDeviceHandle
- oslVolumeDeviceHandle * pDeviceHandle;
- Summary
- Pointer to handle the receives underlying device. Handle should be set to zero before calling
osl_getVolumeInformation
Top of Page
Copyright © 2012, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


._overflow:auto
utility on an element with fixed width and height dimensions. The content of this div will scroll vertically.
._overflow:hidden
utility on an element with fixed width and height dimensions. The content below the fold of this div will be hidden.


Git user FAQ: How do I show or change my Git username (or email address)?
How to show your Git username
There are several ways to show your Git username. One way is with the "git config" command, like this:
git config user.name
which in my case returns:
Alvin Alexander
Another way to show your Git username is with this git config command:
git config --list
which returns this output:
user.name=Alvin Alexander user.email=[omitted] merge.tool=vimdiff
Finally, you can also see your Git username in the Git configuration file in your HOME directory on Unix systems, i.e., this file:
~/.gitconfig
My file on this new test system looks like this:
[user] name = Alvin J. Alexander email = [omitted] [merge] tool = vimdiff
It's important to note that this is your "global" Git username. You can also have a different username on a per-project basis, but I haven't done that yet.
How to change your Git username
You can change your Git username like this:
git config --global user.name "Alvin J. Alexander"
You can probably also just edit the Git config file in your HOME directory and change it there:
vi ~/.gitconfig
I just did that on my test system, and it seems to work fine.
It's important to note that this is your "global" username. You can also have a different username on a per-project basis, but I haven't had to do that yet. I just looked it up, and in theory you can change your Git username on a per-project basis like this, without the "--global" option:
git config user.name "Alvin J. Alexander"
How to change your Git email address
While I'm in the Git username neighborhood, I'll also add that you can view your Git email address like this:
git config user.email
And you can change your Git email address like this:
git config --global user.email [your email address here]
Finally, you can also see your password by viewing the Git config file in your HOME directory:
more ~/.gitconfig


|
Lufy
Project lufy : website for Ga
|
Public Member Functions | |
| executeIndex (sfWebRequest $request) | |
| executeFilter (sfWebRequest $request) | |
| executeView (sfWebRequest $request) | |
| executeNew (sfWebRequest $request) | |
| executeCreate (sfWebRequest $request) | |
| executeEdit (sfWebRequest $request) | |
| executeUpdate (sfWebRequest $request) | |
| executeDelete (sfWebRequest $request) | |
| executeView (sfWebRequest $request) | |
| Display Team and set right for current user. | |
| executeAddMember (sfWebRequest $request) | |
| Add a member at team. | |
| executeInviteMember (sfWebRequest $request) | |
| Invite a player with check on is_accepted. | |
| executeDeleteMember (sfWebRequest $request) | |
| Delete a team member and reset his invitation 0. | |
| executeSetPlayer (sfWebRequest $request) | |
| Define a member as a player or not a player. | |
| executeSetCaptain (sfWebRequest $request) | |
| Define a player as a captain or not a captain. | |
| executeLeaveTeam (sfWebRequest $request) | |
| Permit to leave a team and reset invitation 0. | |
| executeDeleteTeam (sfWebRequest $request) | |
| Permit for a captain to delete a team. | |
| executeNew (sfWebRequest $request) | |
| Create a new team form. | |
| executeSearchPlayers (sfWebRequest $request) | |
| Permit search players. | |
| executeView (sfWebRequest $request) | |
| executeIndex (sfWebRequest $request) | |
| executeDeletePlayer (sfWebRequest $request) | |
| executeDeleteTeam (sfWebRequest $request) | |
| executeNew (sfWebRequest $request) | |
| executeCreate (sfWebRequest $request) | |
| executeEdit (sfWebRequest $request) | |
| executeUpdate (sfWebRequest $request) | |
| executeManagement (sfWebRequest $request) | |
| executeManagementIsPlayer (sfWebRequest $request) | |
| executeManagementIsCaptain (sfWebRequest $request) | |
| isGoodNbPlayer ($nbPlayerTeam, $nbPlayerTournament) |
Protected Member Functions | |
| processForm (sfWebRequest $request, sfForm $form) | |
| getFilters () | |
| setFilters (array $filters) | |
| getPager () | |
| setPage ($page) | |
| getPage () | |
| buildQuery () | |
| addSortQuery ($query) | |
| getSort () | |
| setSort (array $sort) | |
| isValidSortColumn ($column) | |
| processForm (sfWebRequest $request, sfForm $form) | |
| Overriding processForm. | |
| processForm (sfWebRequest $request, sfForm $form) | |
| processNewTeamForm (sfWebRequest $request, sfForm $form) |
Definition at line 11 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 252 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 227 of file actions.class.php.
| executeAddMember | ( | sfWebRequest | $request | ) |
Add a member at team.
| [in] | $request | a sfWebRequest |
Definition at line 50 of file actions.class.php.
| executeCreate | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 91 of file actions.class.php.
| executeCreate | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 265 of file actions.class.php.
| executeDelete | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 134 of file actions.class.php.
| executeDeleteMember | ( | sfWebRequest | $request | ) |
Delete a team member and reset his invitation 0.
| [in] | $request | a sfWebRequest |
Definition at line 128 of file actions.class.php.
| executeDeletePlayer | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 131 of file actions.class.php.
| executeDeleteTeam | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 158 of file actions.class.php.
| executeDeleteTeam | ( | sfWebRequest | $request | ) |
Permit for a captain to delete a team.
| [in] | $request | a sfWebRequest |
Definition at line 217 of file actions.class.php.
| executeEdit | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 107 of file actions.class.php.
| executeEdit | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 281 of file actions.class.php.
| executeFilter | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 39 of file actions.class.php.
| executeIndex | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 19 of file actions.class.php.
| executeIndex | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 59 of file actions.class.php.
| executeInviteMember | ( | sfWebRequest | $request | ) |
Invite a player with check on is_accepted.
| [in] | $request | a sfWebRequest |
Definition at line 76 of file actions.class.php.
| executeLeaveTeam | ( | sfWebRequest | $request | ) |
Permit to leave a team and reset invitation 0.
| [in] | $request | a sfWebRequest |
Definition at line 199 of file actions.class.php.
| executeManagement | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 383 of file actions.class.php.
| executeManagementIsCaptain | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 469 of file actions.class.php.
| executeManagementIsPlayer | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 451 of file actions.class.php.
| executeNew | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 81 of file actions.class.php.
| executeNew | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 254 of file actions.class.php.
| executeNew | ( | sfWebRequest | $request | ) |
Create a new team form.
| [in] | $request | a sfWebRequest |
Definition at line 312 of file actions.class.php.
| executeSearchPlayers | ( | sfWebRequest | $request | ) |
Permit search players.
| [in] | $request | a sfWebRequest |
Definition at line 355 of file actions.class.php.
| executeSetCaptain | ( | sfWebRequest | $request | ) |
Define a player as a captain or not a captain.
| [in] | $request | a sfWebRequest |
Definition at line 173 of file actions.class.php.
| executeSetPlayer | ( | sfWebRequest | $request | ) |
Define a member as a player or not a player.
| [in] | $request | a sfWebRequest |
Definition at line 148 of file actions.class.php.
| executeUpdate | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 118 of file actions.class.php.
| executeUpdate | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 314 of file actions.class.php.
| executeView | ( | sfWebRequest | $request | ) |
Display Team and set right for current user.
| [in] | $request | a sfWebRequest |
Definition at line 18 of file actions.class.php.
| executeView | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 19 of file actions.class.php.
| executeView | ( | sfWebRequest | $request | ) |
| [in] | @return |
Definition at line 71 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 172 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 217 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 192 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 272 of file actions.class.php.
| isGoodNbPlayer | ( | $nbPlayerTeam, | |
| $nbPlayerTournament | |||
| ) |
| [in] | @return |
Definition at line 487 of file actions.class.php.
|
protected |
Definition at line 299 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 156 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 334 of file actions.class.php.
|
protected |
Overriding processForm.
| [in] | $request | a sfWebRequest |
| [in] | $form | a sfForm |
Definition at line 340 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 350 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 182 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 207 of file actions.class.php.
|
protected |
| [in] | @return |
Definition at line 289 of file actions.class.php.


SceneJS
- orbiting camera using a
cameras/trackball
node
drag mouse to orbit
mouse wheel to zoom in and out


Purple Martians
Technical Code Descriptions
Netgame - Config
Overview
Settings you can change
Settings you probably shouldn't change!
Overview
There are a number of variables in the file 'pm.cfg' used to setup and control netgame.
[NETWORK]
server_IP = <IP_ADDRESS>
mNetgame.TCP=0
mPlayer.loc[0].server_state_freq_mode=1
mShot.deathmatch_shots=0
mShot.deathmatch_shot_damage=5
mShot.suicide_shots=0
Settings you can change
server_IP
This is for the clients only. They need to know the server hostname or IP address to connect to.
This value is completely ignored by the server. A server doesn't need to have anything set for clients.
valid entries:
server_IP=<IP_ADDRESS>
server_IP=myhostname
mShot.deathmatch_shots
Used to set Deathmatch Mode. Controls whether player's shots affect other players.
valid entries:
mShot.deathmatch_shots=0 // Deathmatch Mode Off
mShot.deathmatch_shots=1 // Deathmatch Mode On
default:
mShot.deathmatch_shots=0 // Deathmatch Mode Off
mShot.deathmatch_shot_damage
Used to set the amount of damage player's shots do in Deathmatch Mode.
Has no effect if Deathmatch Mode is off.
The value is the amount of health lost when shot by another player.
100 will instantly kill. 50 will take 50 health...etc.
Note: If set to zero, shots will not take any health, but will still cause the player to recoil.
Note: If set to a negative value, shots will actually give health!
valid entries:
mShot.deathmatch_shot_damage=100
mShot.deathmatch_shot_damage=50
mShot.deathmatch_shot_damage=10
mShot.deathmatch_shot_damage=0
mShot.deathmatch_shot_damage=-10
default:
mShot.deathmatch_shot_damage=5
mShot.suicide_shots
Controls whether player's shots affect the same player that shot them.
This can happen if a player shoots, then immediately takes a door to where the shot is headed.
It can also happen when shooting upwards, then jumping on a spring.
valid entries:
mShot.suicide_shots=0 // suicide shots off
mShot.suicide_shots=1 // suicide shpts on
default:
mShot.suicide_shots=0 // suicide shots off
Settings you probably shouldn't change!
For the variables below, it is not recommended to change them from their default values.
mNetgame.TCP
Used to set the packet type. Must be the same on client and server.
Both seem to work about the same. (Your mileage may vary....)
valid entries:
mNetgame.TCP=0 // use UDP packet type
mNetgame.TCP=1 // use TCP packet type
default:
mNetgame.TCP=0 // use UDP packet type
mPlayer.loc[0].server_state_freq_mode
Lets the server automatically adjust how often to send states to clients.
valid entries:
mPlayer.loc[0].server_state_freq_mode=0 // manual
mPlayer.loc[0].server_state_freq_mode=1 // auto
default:
mPlayer.loc[0].server_state_freq_mode=1 // auto


Mango distributed array (DistributedDataStruct) python API.
Methods
| __init__ | Raises an exception |
| asarray(( (object)arg1) -> object :) | Returns numpy.array object which references the elements of this Dds object. |
| copy(*args, **kwargs) | Creates a (deep) copy of this Dds object (halo elements not copied or updated). |
| copyMetaData(( (_Dds_uint16)arg1, ...) | Copies meta-data from ddsSrc to this Dds. |
| fill(( (_Dds_uint16)arg1, ...) | Copies intersecting voxel data from ddsSrc to this Dds. |
| minmax(( (_Dds_uint16)dds, ...) | Calculates (min,max) over all non-masked elements in Dds. |
| mirrorOuterLayersToBorder(...) | Mirrors the layers closest to the global-boundary into the halo-regions. |
| mirrorOuterLayersToHalo(( (_Dds_uint16)arg1, ...) | Mirrors the layers closest to the global-boundary into the halo-regions. |
| resizeHalo(( (_Dds_uint16)arg1, ...) | Resizes the halo/border region of the halo-sub-domain. |
| setAllToValue(( (_Dds_uint16)arg1, ...) | Set all voxels to constant value (includes halo voxels). |
| setBorderToValue(( (_Dds_uint16)arg1, ...) | Set the value of the voxels in the global (outer) boundary to a specified value. |
| setBoundaryLayerToValue(( (_Dds_uint16)arg1, ...) | Assign specified value to the local/sub-domain and global boundary/halo layers. |
| setFacesToValue(( (_Dds_uint16)arg1, ...) | Sets specified global domain face voxels to a specified value. |
| setHaloLayerToValue(( (_Dds_uint16)arg1, ...) | Assign specified value to the local/sub-domain and global boundary/halo layers. |
| setHaloToValue(( (_Dds_uint16)arg1, ...) | Set the value of the voxels in the global (outer) boundary to a specified value. |
| updateHaloRegions(( (_Dds_uint16)arg1) -> None :) | Updates halo voxels to be consistant with neighbouring MPI sub-domains. |
| updateOverlapRegions(...) | Updates halo voxels to be consistant with neighbouring MPI sub-domains. |
Attributes
| dtype | |
| halo | The halo/overlap (zsz, ysz, xsz) between neighbouring MPI sub-domains of the Dds array. |
| md | The meta-data (mango.DdsMetaData) associated with this Dds object. |
| mpi | The MPI properties (mango.DdsMpiInfo) associated with this Dds object. |
| origin | The global origin tuple(zor, yor, xor) of the Dds array (read/write). |
| shape | The global shape tuple(zsz, ysz, xsz) of the Dds array. |
| subd | The non-halo-sub-domain properties (mango.DdsNonHaloSubDomain) of this Dds object. |
| subd_h | The halo-sub-domain properties (mango.DdsHaloSubDomain) of this Dds object. |


Abednega Alfinanto
I can..
Java Programing
Networking
Front End dev.
Adobe Premiere
Made with by Abednega Alfinanto