Scripts that show real-world flows¶
The Python scripts below are detailed, working examples of ADMIT processing as might be done in the ALMA pipeline or by a scientist with an ALMA FITS cube.
Example 1: Ingest through LineID and Moment¶
This script takes a FITS cube and does the following:
- Create an ADMIT project directory and import the FITS cube into a CASA image. [Ingest]
- Compute robust statistics on the input data. [CubeStats]
- Sum all cube along all channels of the frequency axis to make a integrated map. [CubeSum]
- Compute a spectrum through the cube at a specified point (default: the spatial center). [CubeSpectrum]
- Create a position-velocity diagram by selecting an optimum slice position angle through examination of the emission properties. [PVSlice]
- Compute a position-velocity cross-correlation [PVCorr]
- Identify any spectral lines present in the data [LineID]
- Create a cutout cube for each spectral lines identified [LineCube]
- Compute moment 0,1,2 maps, and spectra for each cutout cube [Moment, CubeSpectrum]
- Write out the ADMIT project results to XML and a summary HTML file.
admit_example1.py¶
| Line # | Notes |
|---|---|
| 1 | casarun is ADMIT’s wrapper for running Python scripts with ‘casapy –quiet –nogui -c’ |
| 21 | You need only to ‘import admit’ to get all ADMIT functionality. |
| 27-45 | Initial parameters to for script options. |
| 48-54 | ALMA does not yet pass VLSR to its output cubes, so we have to kludge it here. |
| 56-70 | Method to create string name of output directory based on input cube name. E.g., for input cube ‘mycube.fits’, output directory will be ‘mycube.admit’ |
| 73-80 | Parse command line arguments |
| 89-91 | Potentially clean up an old run |
| 98 | Create an ADMIT project or open existing one (if it wasn’t cleaned up) |
| 100-108 | If a new ADMIT project, copy the FITS file into it, otherwise print some info and exit |
| 111 | Set default plotting parameters. |
| 114-116 | Create the first task, Ingest, which reads in the FITS cube, and add the task to the project flow. Optionally mask data that are zero (useMask=True). |
| 119-123 | Create the second task, CubeStats_AT which calculates data statistics, and add the task to the project flow. Set the method of robust statistics to be used (robust) and optionally create the peak-point plot (usePPP=True). |
| 125-129 | Create the third task, CubeSum_AT which calculates a map over all channels, and add it to the flow. |
| 131-137 | Create the fourth task, CubeSpectrum_AT calculates a spectrum through the cube and add it to the flow. |
| 141-146 | Choose one of the hardcoded ways of specifying a slice or slit for a position-velocity diagram. See PVSlice for the difference between slices and slits. |
| 147-151 | Alternatively, let PVSlice_AT determine the best slice location. |
| 152-153 | Now create the 5th task, PVSlice, and add it to the flow. |
| 155-156 | Create the 6th task, PVCorr, and add it to the flow. |
| 159-166 | This is a workaround for the fact that ALMA data cubes do not currently include the source LSR velocity in the image header. So we look in our own internal list to see if there is an entry for the source. Future releases should not need this workaround. |
| 168-170 | Create the 6th task, LineID, and add it to the flow. |
| 168-170 | Create the 7th task, LineCube, and add it to the flow. Set the growth option to include 10 channels around the channel range found by LineID. |
| 172-174 | Now we must run the tasks created so far, so that the subsequent tasks, which depend the number of lines found, can run. |
| 179-180 | Now we must run the tasks created so far, so that the subsequent tasks, which depend the number of lines found, can run. Write the results to disk. |
| 183-184 | Informational, print the number of lines found, equal the the length of the linecube output BDP vector. |
| 193-195 | For each spectral line found, there will be a linecube image, accessed by ImageBDP.getimagefile. |
| 197 | Make the tuple needed for the subsequent addTask |
| 198 | Create and add a Moment task for the i-th spectral line. |
| 200-202 | Set the parameters for the moment tasks |
| 203-214 | Make a choice as to how to compute the CubeSpectrum for each output of LineCube. Use the peak the moment map (usePeak=True), the positions listed in maxpos, or the location of the original input FITS cube emission maximum. |
| 216-221 | If no spectral lines were found, create moments of the whole input cube instead. |
| 224-229 | Finally, run all the un-run tasks, write the output to disk, and create a summary HTML file index.html in the output admit directory. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | #! /usr/bin/env casarun
#
# admit-example1 version using new package style
#
# admit-example1.py : a first example ADMIT pipeline/flow
#
# Usage: $ADMIT/admit/test/admit-example1.py [spwcube.fits] [alias]
#
# This will create a spwcube.admit directory with all the
# BDP's and associated data products inside. Linecubes will
# have their own directory with their associates products
# within that directory.
#
# If you give an admit directory, it will try and re-run in that directory.
# ==============================================================================
# python system modules
import sys, os, math
# Always import admit!
import admit
version = '29-oct-2015'
# ===>>> set some parameters for this run <<<===========================================
#
file = 'foobar.fits' # the default FITS input name to be ingested
alias = '' # use a short alias instead of the possibly long basename?
#
useMask = True # use a mask where fits data == 0.0
vlsr = None # either set it below, or make get_vlsr() to work (else vlsr=0 will be used)
maxpos = [] # default to the peak in the cube for CubeSpectrum
clean = True # clean up the previous admit tree, i.e. no re-running
plotmode = admit.PlotControl.BATCH # NOPLOT, BATCH, INTERACTIVE, SHOW_AT_END
plottype = admit.PlotControl.PNG # output image format. PNG, JPG, etc.
loglevel = 15 # 10=DEBUG, 15=TIMING 20=INFO 30=WARNING 40=ERROR 50=FATAL
usePeak = True # LineCubeSpectra through peak of a Moment0 map? (else pos[] or SpwCube Peak)
pvslice = [] # PV Slice (x0,y0,x1,y1)
pvslit = [] # PV Slice (xc,yc,len,pa) if none given, it will try and find out
usePPP = True # create and use PeakPointPlot?
useMOM = True # if no lines are found, do a MOM0,1,2 anyways ?
pvSmooth = [10,10] # smooth the PVslice ? Pos or Pos,Vel pixel numbers
robust = () # Robust statistics method, () = default.
# ====================================================================
# placeholder until we have an official way to find the VLSR of a source
# this is a remnant from how we did this in milestone2.py
# See the file $ADMIT/etc/vlsr.tab if you want to add sources
def get_vlsr(source, vlsr=None):
if vlsr != None : return vlsr
vq = admit.VLSR()
return vq.vlsr(source.upper())
def admit_dir(file):
""" Create the admit directory name from a filename.
This filename can be a FITS file (usually with a .fits extension
or a directory, which would be assumed to be a CASA image or
a MIRIAD image. It can be an absolute or relative address.
"""
loc = file.rfind('.')
ext = '.admit'
if loc < 0:
return file + ext
else:
if file[loc:] == ext:
print "Warning: assuming a re-run on existing ",file
return file
return file[:loc] + ext
# Parse command line arguments, FITS file name and alias
argv = admit.utils.casa_argv(sys.argv)
if len(argv) > 1:
file = argv[1]
alias = ""
if len(argv) > 2:
file = argv[1]
alias = argv[2]
#-----------------------------------------------------------------------------------------
#----------------------------------- start of script -------------------------------------
# announce version
print 'ADMIT1: Version ',version
# do the work in a proper ".admit" directory
adir = admit_dir(file)
# dirty method, it really should check if adir is an admit directory
if clean and adir != file:
print "Removing previous results from ",adir
os.system('rm -rf %s' % adir)
create=True
else:
create=False
a = admit.Project(adir,name='Testing ADMIT1 style pipeline - version %s' % version,create=create,loglevel=loglevel)
if a.new:
# copy the script into the admit directory
print "Starting a new ADMIT using ",argv[0]
os.system('cp -a %s %s' % (argv[0],adir))
else:
print "All done, we just read an existing admit.xml and it should do nothing"
a.fm.diagram(a.dir()+'admit.dot')
a.show()
a.showsetkey()
sys.exit(0) # doesn't work properly in IPython!
# Default ADMIT plotting environment
a.plotparams(plotmode,plottype)
# Ingest
ingest1 = a.addtask(admit.Ingest_AT(file=file,alias=alias))
a[ingest1].setkey('mask',useMask)
bandcube1 = (ingest1,0)
# CubeStats - will also do log(Noise),log(Peak) plot
cubestats1 = a.addtask(admit.CubeStats_AT(), [bandcube1])
a[cubestats1].setkey('robust',robust)
a[cubestats1].setkey('ppp',usePPP)
csttab1 = (cubestats1,0)
# CubeSum
moment1 = a.addtask(admit.CubeSum_AT(), [bandcube1,csttab1])
a[moment1].setkey('numsigma',4.0) # Nsigma clip in cube
# >0 force single cuberms sigma from cubestats; <0 would use rms(freq) table
a[moment1].setkey('sigma',99.0)
csmom0 = (moment1,0)
# CubeSpectrum
if len(maxpos) > 0:
cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1])
a[cubespectrum1].setkey('pos',maxpos)
else:
cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1,csmom0])
csptab1 = (cubespectrum1,0)
# PVSlice
if len(pvslice) == 4:
# hardcoded with a start,end
slice1 = a.addtask(admit.PVSlice_AT(slice=pvslice,width=5),[bandcube1,csmom0])
elif len(pvslit) == 4:
# hardcoded with a center,len,pa
slice1 = a.addtask(admit.PVSlice_AT(slit=pvslit,width=5),[bandcube1,csmom0])
else:
# use cubesum's map to generate the best slice
slice1 = a.addtask(admit.PVSlice_AT(width=5),[bandcube1,csmom0])
a[slice1].setkey('clip',0.3) # TODO: this is an absolute number for mom0
a[slice1].setkey('gamma',1.0) # SB185 works better with gamma=4
a[slice1].setkey('smooth',pvSmooth) # smooth, in pixel numbers
pvslice1 = (slice1,0)
corr1 = a.addtask(admit.PVCorr_AT(),[pvslice1,csttab1])
pvcorr1 = (corr1,0)
#----------- Workaround because ALMA data don't include VLSR in header -----------------
# Need to run now, since LineID_AT needs the vlsr
a.run()
a.write()
source = a.summaryData.get('object')[0].getValue()[0]
vlsr = get_vlsr(source,vlsr)
print "OBJECT = %s VLSR = ", (source, vlsr)
#---------------------------------------------------------------------------------------
# LineID uses integer segment=<STRING>: pick ASAP or ADMIT
lineid1 = a.addtask(admit.LineID_AT(vlsr=vlsr,segment="ADMIT"), [csptab1,csttab1,pvcorr1])
lltab1 = (lineid1,0)
# LineCube
linecube1 = a.addtask(admit.LineCube_AT(), [bandcube1,lltab1])
a[linecube1].setkey('grow',10) # +growth
# RUN_1: now we need to run the flow, since we need to
# know the number of Lines found and produce the linecubes
# for the next for-loop.
a.run()
a.write()
nlines = len(a[linecube1])
print "Found %d lines during runtime" % nlines
x = range(nlines) # place holder to contain mol/line
m = {} # task id for moment on this mol/line
sp= {} # task id for cubespectrum on this mol/line
st= {} # task id for cubestats
# loop over all lines
# produce moments and spectra from the linecubes just created
for i in range(nlines):
x[i] = a[linecube1][i].getimagefile(admit.bdp_types.CASA)
print "LineDir:", i, x[i]
# Moment maps from the LineCube
linecubei = (linecube1,i)
m[x[i]] = a.addtask(admit.Moment_AT(),[linecubei,csttab1])
print "MOMENT_AT:",m[x[i]]
a[m[x[i]]].setkey('moments',[0,1,2])
a[m[x[i]]].setkey('numsigma',[2.0])
a[m[x[i]]].setkey('mom0clip',2.0) # TODO: this is still an absolute value
if usePeak:
momenti0 = (m[x[i]],0) # this linecube mom0
# CubeSpectrum through the line cube where the mom0 map has peak
sp[x[i]] = a.addtask(admit.CubeSpectrum_AT(),[linecubei,momenti0])
elif len(maxpos) > 0:
# CubeSpectrum through the line cube at given point,
# use the same maxpos for all linecubes as we used before
sp[x[i]] = a.addtask(admit.CubeSpectrum_AT(),[linecubei])
a[sp[x[i]]].setkey('pos',maxpos)
else:
# CubeSpectrum last resort, where it takes the peak from cube maximum
sp[x[i]] = a.addtask(admit.CubeSpectrum_AT(),[linecubei,csttab1])
if useMOM and nlines == 0:
# if no lines found, take a moment (0,1,2) over the whole cube
moment1 = a.addtask(admit.Moment_AT(),[bandcube1,csttab1])
a[moment1].setkey('moments',[0,1,2])
a[moment1].setkey('numsigma',[2.0])
a[moment1].setkey('mom0clip',2.0) # Nsigma
# final run and save
a.run()
a.write()
# symlink resources, create dot file, and write out index.html
a.updateHTML()
|
Example 2: Adding optional continuum map input, Smooth, and OverlapIntegral¶
This script is identical to Example1 , with the addition of optional clipping and smoothing of the input FITS file when ingested, finding sources in a related continuum map using SFind2D, and creating an OverlapIntegral image of the first three spectral lines identified. The notes below highlight the differences between Example1 and Example2.
admit_example2.py¶
| Line # | Notes |
|---|---|
| 7 | The name of the continuum image can be passed in on the command line |
| 40-44 | Options to smooth the cube when ingesting (insmooth), or trim the size of the input cube (inbox or inedge). See Ingest documentation for details of these keywords. Note this is an in-place smoothing, the output will be the smoothed cube. |
| 45 | Optionally, one can smooth the output of Ingest, rather than doing it in place. |
| 129-133 | Smooth and trim options passed to Ingest. |
| 136-152 | Add a task to smooth the output of Ingest with Smooth and use the smoothed output from here on (bandcube1 = bandcube2). |
| 157-165 | If a continuum image was give, set up processing of it with Ingest, CubeStats, and SFind2D. |
| 273-281 | If more than 3 spectral lines were identified by LineID, create an OverlapIntegral task and add it to the flow. |
| 284-289 | Run the flow, write the output to disk, and create a summary HTML file index.html in the output admit directory. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | #! /usr/bin/env casarun
#
# admit-example1 version using new package style
#
# admit-example2.py : a second example ADMIT pipeline/flow
#
# Usage: $ADMIT/admit/test/admit-example2.py [spwcube.fits [alias]] [cont.fits]
#
# This will create a spwcube.admit directory with all the
# BDP's and associated data products inside. Linecubes will
# have their own directory with their associates products
# within that directory.
# Optionally you can give a continuum image, cont.fits
#
# If you give an admit directory, it will try and re-run in that directory.
# ========================================================================================
# python system modules
import sys, os, math
# Always import admit!
import admit
version = '29-oct-2015'
# ===>>> set some parameters for this run <<<========================================================
#
file = 'foobar.fits' # the default FITS input name to be ingested
alias = '' # use a short alias instead of the possibly long basename?
cont = '' # add this continuum fits file to the ingestion process?
#
useMask = True # use a mask where fits data == 0.0
vlsr = None # either set it below, or make get_vlsr() to work (else vlsr=0 will be used)
maxpos = [] # default to the peak in the cube for CubeSpectrum
clean = True # clean up the previous admit tree, i.e. no re-running
plotmode = admit.PlotControl.BATCH # NOPLOT, BATCH, INTERACTIVE, SHOW_AT_END
plottype = admit.PlotControl.PNG # output image format. PNG, JPG, etc.
loglevel = 15 # 10=DEBUG, 15=TIMING 20=INFO 30=WARNING 40=ERROR 50=FATAL
insmooth = [] # smooth inside of Ingest_AT, in pixels
inbox = [] # box to cut in Ingest_AT [x0,y0,x1,y1] or [x0,y0,z0,x1,y1,z1]
inedge = [] # edges to cut in Ingest_AT [zleft,zright]
# [0] and [1] are spatial
# [2] is frequency: 1=>Hanning >1 Boxcar
smooth = [] # if set, smooth the cube right after ingest
usePeak = True # LineCubeSpectra through peak of a Moment0 map? (else pos[] or SpwCube Peak)
pvslice = [] # PV Slice (x0,y0,x1,y1)
pvslit = [] # PV Slice (xc,yc,len,pa) if none given, it will try and find out
usePPP = True # create and use PeakPointPlot?
useMOM = True # if no lines are found, do a MOM0,1,2 anyways ?
pvSmooth = [10,10] # smooth the PVslice ? Pos or Pos,Vel pixel numbers
robust = () # Robust statistics method, () = default.
minOI = 3 # If at least minOI linecubes present, use them in an OverlapIntegral
# placeholder until we have an official way to find the VLSR of a source
# this is a remnant from how we did this in milestone2.py
# See the file $ADMIT/etc/vlsr.tab if you want to add sources
def get_vlsr(source, vlsr=None):
if vlsr != None : return vlsr
vq = admit.VLSR()
return vq.vlsr(source.upper())
def admit_dir(file):
""" Create the admit directory name from a filename.
This filename can be a FITS file (usually with a .fits extension
or a directory, which would be assumed to be a CASA image or
a MIRIAD image. It can be an absolute or relative address.
"""
loc = file.rfind('.')
ext = '.admit'
if loc < 0:
return file + ext
else:
if file[loc:] == ext:
print "Warning: assuming a re-run on existing ",file
return file
return file[:loc] + ext
# allow a command line argument to be the fits file name, unless you have foobar.fits ;-)
argv = admit.utils.casa_argv(sys.argv)
if len(argv) > 1:
file = argv[1]
alias = ""
if len(argv) > 2:
file = argv[1]
alias = argv[2]
if len(argv) > 3:
file = argv[1]
alias = argv[2]
cont = argv[3]
#----------------------------------------------------------------------
#--------------------------- start of script --------------------------
# announce version
print 'ADMIT2: Version ',version
# do the work in a proper ".admit" directory
adir = admit_dir(file)
# dirty method, it really should check if adir is an admit directory
if clean and adir != file:
print "Removing previous results from ",adir
os.system('rm -rf %s' % adir)
create=True
else:
create=False
a = admit.Project(adir,name='Testing ADMIT2 style pipeline - version %s' % version,create=create,loglevel=loglevel)
if a.new:
# copy the script into the admit directory
print "Starting a new ADMIT using ",argv[0]
os.system('cp -a %s %s' % (argv[0],adir))
else:
print "All done, we just read an existing admit.xml and it should do nothing"
print "Use admit0.py to re-run inside of your admit directory"
#
a.fm.diagram(a.dir()+'admit.dot')
a.show()
a.showsetkey()
sys.exit(0) # doesn't work properly in IPython!
# Default ADMIT plotting environment
a.plotparams(plotmode,plottype)
# Ingest
ingest1 = a.addtask(admit.Ingest_AT(file=file,alias=alias))
a[ingest1].setkey('mask',useMask)
a[ingest1].setkey('smooth',insmooth)
if len(inbox) > 0:
a[ingest1].setkey('box',inbox)
if len(inedge) > 0:
a[ingest1].setkey('edge',inedge)
bandcube1 = (ingest1,0)
if len(smooth) > 0:
smooth1 = a.addtask(admit.Smooth_AT(), [bandcube1])
a[smooth1].setkey('bmaj',{'value':smooth[0], 'unit':'pixel'})
a[smooth1].setkey('bmin',{'value':smooth[1], 'unit':'pixel'})
a[smooth1].setkey('bpa',0.0)
if len(smooth) > 2:
a[smooth1].setkey('velres',{'value':smooth[2], 'unit':'pixel'})
bandcube2 = (smooth1,0)
# Forget about the original, so we can continue the flow with the smoothed cube
# in this model, it would be better to use insmooth= for Ingest_AT, it doesn't
# need the extra space to hold bandcube1
#
# Another model could be to have two flows in this script, up to LineID,
# one with each (or more) smoothing factor and decide which one to continue with
# or do LineID with bandcube2, but make linecube's from bandcube1
bandcube1 = bandcube2
# If a continuum image was given, set up to ingest it and run
# source-find on it.
if cont != '':
ingest2 = a.addtask(admit.Ingest_AT(file=cont,alias=alias+'-cont'))
contmap = (ingest2,0)
cubestats2 = a.addtask(admit.CubeStats_AT(), [contmap])
csttab2 = (cubestats2,0)
sfind2 = a.addtask(admit.SFind2D_AT(), [contmap,csttab2])
cslist = (sfind2,0)
else:
cslist = ()
# CubeStats - will also do log(Noise),log(Peak) plot
cubestats1 = a.addtask(admit.CubeStats_AT(), [bandcube1])
a[cubestats1].setkey('robust',robust)
a[cubestats1].setkey('ppp',usePPP)
csttab1 = (cubestats1,0)
# CubeSum
moment1 = a.addtask(admit.CubeSum_AT(), [bandcube1,csttab1])
a[moment1].setkey('numsigma',4.0) # Nsigma clip in cube
# >0 force single cuberms sigma from cubestats; <0 would use rms(freq) table
a[moment1].setkey('sigma',99.0)
csmom0 = (moment1,0)
# CubeSpectrum
if len(maxpos) > 0:
cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1])
a[cubespectrum1].setkey('pos',maxpos)
elif len(cslist) > 0:
cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1,cslist])
else:
cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1,csmom0])
csptab1 = (cubespectrum1,0)
# PVSlice
if len(pvslice) == 4:
# hardcoded with a start,end
slice1 = a.addtask(admit.PVSlice_AT(slice=pvslice,width=5),[bandcube1,csmom0])
elif len(pvslit) == 4:
# hardcoded with a center,len,pa
slice1 = a.addtask(admit.PVSlice_AT(slit=pvslit,width=5),[bandcube1,csmom0])
else:
# use cubesum's map to generate the best slice
slice1 = a.addtask(admit.PVSlice_AT(width=5),[bandcube1,csmom0])
a[slice1].setkey('clip',0.3) # TODO: this is an absolute number for mom0
a[slice1].setkey('gamma',1.0) # SB185 works better with gamma=4
a[slice1].setkey('smooth',pvSmooth) # smooth, in pixel numbers
pvslice1 = (slice1,0)
corr1 = a.addtask(admit.PVCorr_AT(),[pvslice1,csttab1])
pvcorr1 = (corr1,0)
#----------- Workaround because ALMA data don't include VLSR in header -----------------
# Need to run now, since LineID_AT needs the vlsr
a.run()
a.write()
source = a.summaryData.get('object')[0].getValue()[0]
vlsr = get_vlsr(source,vlsr)
print "OBJECT = %s VLSR = ", (source, vlsr)
#---------------------------------------------------------------------------------------
# LineID uses integer segment=<STRING>: pick ASAP or ADMIT
lineid1 = a.addtask(admit.LineID_AT(vlsr=vlsr,segment="ADMIT"), [csptab1,csttab1,pvcorr1])
lltab1 = (lineid1,0)
# LineCube
linecube1 = a.addtask(admit.LineCube_AT(), [bandcube1,lltab1])
a[linecube1].setkey('grow',10) # +growth
# RUN_1: now we need to run the flow, since we need to
# know the number of Lines found and produce the linecubes
# for the next for-loop.
a.run()
a.write()
nlines = len(a[linecube1])
print "Found %d lines during runtime" % nlines
x = range(nlines) # place holder to contain mol/line
m = {} # task id for moment on this mol/line
sp= {} # task id for cubespectrum on this mol/line
st= {} # task id for cubestats
# loop over all lines
# produce moments and spectra from the linecubes just created
for i in range(nlines):
x[i] = a[linecube1][i].getimagefile(admit.bdp_types.CASA)
print "LineDir:", i, x[i]
# Moment maps from the LineCube
linecubei = (linecube1,i)
m[x[i]] = a.addtask(admit.Moment_AT(),[linecubei,csttab1])
print "MOMENT_AT:",m[x[i]]
a[m[x[i]]].setkey('moments',[0,1,2])
a[m[x[i]]].setkey('numsigma',[2.0])
a[m[x[i]]].setkey('mom0clip',2.0) # TODO: this is still an absolute value
if usePeak:
momenti0 = (m[x[i]],0) # this linecube mom0
# CubeSpectrum through the line cube where the mom0 map has peak
sp[x[i]] = a.addtask(admit.CubeSpectrum_AT(),[linecubei,momenti0])
elif len(maxpos) > 0:
# CubeSpectrum through the line cube at given point,
# use the same maxpos for all linecubes as we used before
sp[x[i]] = a.addtask(admit.CubeSpectrum_AT(),[linecubei])
a[sp[x[i]]].setkey('pos',maxpos)
else:
# CubeSpectrum last resort, where it takes the peak from cube maximum
sp[x[i]] = a.addtask(admit.CubeSpectrum_AT(),[linecubei,csttab1])
if useMOM and nlines == 0:
# if no lines found, take a moment (0,1,2) over the whole cube
moment1 = a.addtask(admit.Moment_AT(),[bandcube1,csttab1])
a[moment1].setkey('moments',[0,1,2])
a[moment1].setkey('numsigma',[2.0])
a[moment1].setkey('mom0clip',2.0) # Nsigma
# OverlapIntegral
if minOI > 0 and nlines >= minOI:
# would really like to take the 3 strongest lines
print "Testing OverlapIntegral, just take the first 3 lines"
r = (m[x[0]],0)
g = (m[x[1]],0)
b = (m[x[2]],0)
oi1 = a.addtask(admit.OverlapIntegral_AT(),[r,g,b])
elif minOI > 0:
print "Only found %d lines, need %d for OverlapIntegral" % (nlines,minOI)
# final run and save
a.run()
a.write()
# symlink resources, create dot file, and write out index.html
a.updateHTML()
|
Example 3: Multiflow¶
This is an example of a simple multiflow that takes the output of several Moment tasks to use as input to PrincipalComponent analysis. The initial setup is similar to Example1 and Example2.
admit_example3.py¶
| Line # | Notes |
|---|---|
| 45 | At least two projects must be provided on the command line (or you can’t do PCA!) |
| 83 | In order to create a multiflow, one uses the ProjectManager. |
| 85-94 | For each input project, find output of Moment tasks to use as input to PrincipalComponent. |
| 89 | findTask will locate tasks of a specific type, in this case Moment_AT. |
| 92 | Add each Moment task that is found to the current project, in case the tasks are stale and need to be re-run. |
| 93 | Keep track of the zeroth moment output BDPs of each Moment task |
| 100 | Create the PrincipalComponent task and add it to the flow. Its input BDPs are the zeroth moment outputs of the Moment tasks. |
| 102-105 | Run the flow, including possible re-run of the Moment tasks, write the output to disk, and create a summary HTML file index.html in the output admit directory. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #! /usr/bin/env casarun
#
# admit-example3.py : process a series of admit projects with PCA
#
# Usage: admit-example3.py aproject p1.admit p2.admit p3.admit ....
#
# This will create a new aproject.admit directory and search through p1,p2,p3,....
# for moment0 maps to enter into PCA, optional smooth to a common beam.
#
# ==================================================================================
# python system modules
import sys, os, math
import admit
version = '29-oct-2015'
# ===>>> set some parameters for this run <<<=========================================
clean = True # clean up the previous admit tree, i.e. no re-running
plotmode = admit.PlotControl.BATCH # NOPLOT, BATCH, INTERACTIVE, SHOW_AT_END
plottype = admit.PlotControl.PNG # PNG, JPG, etc.
loglevel = 15 # 10=DEBUG, 15=TIMING 20=INFO 30=WARNING 40=ERROR 50=FATAL
def admit_dir(file):
""" create the admit directory name from a filename
This filename can be a FITS file (usually with a .fits extension
or a directory, which would be assumed to be a CASA image or
a MIRIAD image. It can be an absolute or relative address
"""
loc = file.rfind('.')
ext = '.admit'
if loc < 0:
return file + ext
else:
if file[loc:] == ext:
print "Warning: assuming a re-run on existing ",file
return file
return file[:loc] + ext
# Parse command line arguments
argv = admit.utils.casa_argv(sys.argv)
if len(argv) < 3:
raise Exception,"Need an admit project name, followed by one or more FITS files"
file = argv[1]
#-------------------------------------------------------------------------------
#--------------- start of script -----------------------------------------------
# announce version
print 'ADMIT3: Version ',version
# do the work in a proper ".admit" directory
adir = admit_dir(file)
# dirty method, it really should check if adir is an admit directory
if clean and adir != file:
print "Removing previous results from ",adir
os.system('rm -rf %s' % adir)
create=True
else:
create=False
a = admit.Project(adir,name='Testing ADMIT3 style pipeline - version %s' % version,create=create,loglevel=loglevel)
if a.new:
print "Starting a new ADMIT using ",argv[0]
os.system('cp -a %s %s' % (argv[0],adir))
a.set(admit_dir=adir)
else:
print "All done, we just read an existing admit.xml and it should do nothing"
print "Use admit0.py to re-run inside of your admit directory"
#
a.fm.diagram(a.dir()+'admit.dot')
a.show()
a.showsetkey()
sys.exit(0) #doesn't work in IPython!
# Default ADMIT plotting environment
a.plotparams(plotmode,plottype)
pm = a.getManager() # get ProjectManager
bdps = []
for ap in argv[2:]: # loop over projects
_p = pm.addProject(ap)
# Search for Moment_AT tasks in the projects
ats = pm.findTask(_p, lambda at: type(at) == type(admit.Moment_AT()))
print "Found %d Moment_AT's in %s" % (len(ats),ap)
for at in ats:
tid = a.addtask(at) # add the AT to the
bdps.append((tid,0)) # for now, assume '0' was the mom0
print "Moment_AT ",ap,tid,0
print "ADIR:",argv[2:]
print "Found %d BDP's" % len(bdps)
print "BDPs:",bdps
pca = a.addtask(admit.PrincipalComponent_AT(),bdps)
# Run the flow, write the outputs, update the web page.
a.run()
a.write()
a.updateHTML()
|


Conference will take place on September the 9th.
We are mainly looking for speakers who can talk about Microsoft Azure, but if you want to share your experience in some adjacent topic – do not hesitate to apply, because we review all applications.
Your presentation should be 50 minutes long (+10 minutes for questions) and be prepared beforehand in English, Ukrainian or Russian.


Before Change
@pytest.mark.skipif(os.environ.get("TRAVIS") is not None, reason="causes OOM error and crashes on Travis")
def test_cpu_vs_gpu(self):
config = Params.from_file("tests/fixtures/srl/experiment.json")
predictor_gpu = SemanticRoleLabelerPredictor.from_config(config)
// params have been consumed, so reload them
config = Params.from_file("tests/fixtures/srl/experiment.json")
model_cpu = Model.load(config, weights_file="tests/fixtures/srl/serialization/best_cpu.th")
predictor_cpu = SemanticRoleLabelerPredictor(
model=model_cpu,
tokenizer=predictor_gpu.tokenizer,
token_indexers=predictor_gpu.token_indexers
)
sentences = [
"Squirrels write unit tests to make sure their nuts work correctly.",
"My code never works when I need it to.",
After Change
gpu_archive = load_archive("tests/fixtures/srl/serialization/model.tar.gz")
predictor_gpu = Predictor.from_archive(gpu_archive)
cpu_archive = load_archive("tests/fixtures/srl/serialization/model_cpu.tar.gz")
predictor_cpu = Predictor.from_archive(cpu_archive)
sentences = [
"Squirrels write unit tests to make sure their nuts work correctly.",
"My code never works when I need it to.",


Animate!
Choose your selector/animation/options and click animate!
You can add multiple animations (the order matters),
undo, reset, and copy the raw CSS to clipboard. Have fun!
Selector
element
predefined
custom
Select a specific element...
Choose a CSS selector and (optionally) pseudo-class...
selector
psuedo-class
Specify a CSS selector...
Animation
animate.css
construct
custom
Select an animation from
animate.css
...
Construct a to-state from the following
CSS properties.
It is your responsibility to ensure they are valid CSS!
transform
translate
scale
rotate
skew
transform-origin
size
width
height
margin
padding
color/border
background
opacity
border
outline
box-shadow
font
color
font
letter-spacing
text-shadow
Specify a custom @keyframes animation...
Options
simple
advanced
Select from the available options...
duration
timing-function
Specify the animation properties...
duration
delay
iteration-count
direction
timing-function
fill-mode
Copy unavailable... are you on HTTPS?


--- layout: post title: "morning lyrics" comments: true ---
Come by the hills to the land where fancy is free
And stand where the peaks meet the sky and the rocks reach the sea
Where the rivers run clear and the bracken is gold in the sun
And cares of tomorrow must wait till this day is done.


|
BL3 SDK
0.0.1
Borderlands 3 Class Documentation
|
#include <BL3_GbxGameSystemCore_structs.hpp>
Public Attributes | |
| class UHealthTypeData * | HealthTypeData |
| class UGameResourcePoolData * | HealthPoolData |
| TArray< float > | HealthSectionPercentages |
| unsigned char | bResetIdleTimerIfNoDamage: 1 |
| unsigned char | bUseChanceToExist: 1 |
| unsigned char | UnknownData00 [0x7] |
| struct FAttributeInitializationData | ChanceToExist |
| struct FGameResourcePoolReference | HealthPool |
| unsigned char bResetIdleTimerIfNoDamage |
| unsigned char bUseChanceToExist |
| struct FAttributeInitializationData ChanceToExist |
| struct FGameResourcePoolReference HealthPool |
| class UGameResourcePoolData* HealthPoolData |
| TArray<float> HealthSectionPercentages |
| class UHealthTypeData* HealthTypeData |
| unsigned char UnknownData00[0x7] |


1. Andrusenko S.I., Budnychenko V.B., Podpisnov V.S. Mathematical model of traction battery capacity
3
2. DASZYKOWSKI Maciej, SIEDLECKA Sylwia. Analysis of pedestrian accidents in Poland
11
3. Boichenko S.V., Yakovlieva A.V., Kalmykova N.G Technologies of prevention of losses (emissions) of hydrocarbons from fuel tanks of vehicles
22
4. JAKUBOWSKI Mirosław.Numerical tests of the influence of the tilt angle of the motorcycle windshield on selected aerodynamic parameters
35
5. Gutarevych Y.F. Shuba Y.V., Sirota A.V., Trifonov D.N., Ovchinnikov D.V.Effect of air heating at the intake on the energy and environmental performance of a transport engine when running on alcohol-containing gasoline at low temperatures
46
6. Dobrovolsky O.S., Tsiuman M.P., Stupak N.S., Sosida S.V. Effect of alcohol additive to gasoline on emissions of pollutants with the exhaust gas of spark ignition engine
57
7. JAWORSKI Artur, JAREMCIO Mirosław, LEJDA Kazimierz, MĄDZIEL Maksymilian, WOŚ Paweł. Characteristics of selected driving cycles used for exhaust emissions measurement from passenger car engines
67
8. Zaporozhets О.I., Karpenko S.V., Puzik S.A., Sagaidak B.V. A model for calculating the sound levels of noise from compressor stations to justify the boundaries of the sanitary protection zone
81
9. Ivanushko O.M. Efficiency use of working time in car service enterprises
92
10. KONIECZNY Dariusz, KRAWCZUK Sofia. Combustion of gasoline and etanol mixture
104
11. Kostian N.L., SMESHEK Miroslav. To determining the performance and energy efficiency of vehicles in the context of urban mobility
113
12. Morozov А.V. Environmental aspects of road accidents
123
13. Musiyko V.D., Koval A.B., Patsora D.I. Ways to increase the productivity in continuously operating trenching excavators
132
14. KRZEMIŃSKI Artur. Determination of the kinematic viscosity and density of a mixture of diesel fuel with ethanol and the addition of dodecanol
144
15. Pidgorny M.V., Lukianchenko O.Y., Rakhimi Ya. Models of information support of complete supply chains
153
16. KRZEMIŃSKI Artur, SZYMCZUK Paulina. Analysis of repeatbitity of technical tests of vehicle with total weight up to 3,5 tonnes
161
17. Rabosh I.O., Khrutyba V.A., Kobzysta O.P. Features of the study of the environmental situation around the objects of road transport infrastructure
170
18. Rychok S. Ways to improve of the combined method of power control of a spark ignition engine
180
19. KRZEMIŃSKI Artur, SZYMCZUK Paulina. Effect of contaminatants in fuel used in diesel engines on fuel lubricity
188
20. Sakhno V.P., Dykykh O.V. To the comparative assessment of fuel economy of the BTR-70 car with different gearboxes
198
21. LEW Krzysztof. Analysis of the impact of various pressures in the vehicle wheels on the wheel geometry
210
22. Simonenko R.V., Mateichyk V.P., Gritsuk I.V., Volkov V.P., Savostin-Kosiak D.O. Formation of the integration platform of information supply of the "Wheeled vehicles – Infrastructure" system
221


This will delete the selected club records from the league table.
Are you sure you want to delete the club?


OpenGadgetList()
Syntax
OpenGadgetList(#Gadget [, Item])Description
Use the specified gadget as a GadgetList, to dynamically add new gadgets to it.
Parameters
#Gadget The gadget in which new gadgets should be created. Item (optional) For the PanelGadget(): Specifies the panel to which the gadgets should be added. To add a new panel dynamically to the PanelGadget() the 'Item' parameter must be omitted.
Return value
None.
Remarks
The following gadgets are supported by OpenGadgetList():
- ContainerGadget()
- PanelGadget()
- ScrollAreaGadget()
Once the all the needed changes are done, CloseGadgetList() should be called.
See Also
CloseGadgetList(), ContainerGadget(), PanelGadget(), ScrollAreaGadget()
Supported OS
All


I think you should remove the functionality where when you post in a thread it automatically adds it to thread favorites. That or give us an option between the two if possible, because not every thread I post in is a favorite. Just my opinion, thanks.
BrainFooLong
Administrator
You are right. I will give you an option for the auto add to favorites in the next update.


Good day to you. I am Ahmed Ali the director in charge of Auditing and Accounting section of Bank of Africa Benin in West Africa,and also a special account officer of Mr. Abel Faiza Bahar, a Lebanese.He was a Seasoned Contractor with Benin Cement Company in Benin Republic., who unfortunately died in the plane crash of Union Transport Africaines Flight Boeing 727 in Cotonou, Benin republic on the december 26,2003. You will read more stories about the crash on visiting this website: www.cnn.com/2003/WORLD/africa/12/26/benin.crash/ Before his death on the 26th December 2003, Mr. Abel Faiza Bahar has a fixed deposit account with the bank and no other person knows about this account or any thing concerning it, the account has no other beneficiary and my investigation proved to me that his supposed next of kin died along with him in the crash. Since then I have made several enquiries to locate any of my clients extended relatives, this has also proved unsuccessful. After these several unsuccessful attempts, I decided to contact you. I contacted you to assist in repatriating the money left behind by my client before they get confiscated or declared unserviceable by the bank. Consequently, Since I have been unsuccessful in locating the relatives for over 5 weeks now. I seek your consent to present you as the next of kin of the deceased so that the proceeds of this account valued at US$10.8 million can be paid to you and then you and me can share the money. 80% to me and 20% to you.I have all necessary legal documents that can be used to back up any claim we may make. All I require is your honest co-operation to enable us see this deal through. I guarantee that this will be executed under a legitimate arrangement that will protect you from any breach of the law. All documents of transaction will be destroyed immediately we receive this money leaving no trace to any place. If this proposal is acceptable to you, kindly email your following information to me: a.Complete names b.Private telephone number c.Private fax number d.Private email Until you write,have a nice day and God bless. You can also contact me via another<EMAIL_ADDRESS>Sincerely,Ahmed Ali.


Introduction of Myself
I am currently enrolled in the Software Engineering Technology program at Centennial College, at their Progress Campus. Before that, I attended 2 years at the University of Toronto (UofT) in the Computer Science - Software Engineering program, at their Scarborough campus. I plan to return to UofT in the future to complete my BComputer Science bachelor's degree once I've integrated myself into the workforce thanks to a Centennial College degree.
As a full-time student life can be very stressful when dealing with course work and maintaining your personal life. Whenever I feel as though I can't take it anymore, I'm reminded to myself of what Kobe Bryant, an NBA player, once said:
Favourite Activites of Mine
- Creating artistic projects using Adobe Creative Suite applications
- Reading thought-provoking books during the daily commute to Centennial College
- Self-learning Russian as a second language
- Napping for 10 minutes during the day whenever feeling exhausted
- Thinking silently while attempting to solve a complex coding problem
- Waking up at 4 AM every day to get a head start on the current day's tasks


TOOLS
MD5Testing
(current)
MD5 Convertor
MD5Convertor is used to generate an MD5 hash from a word .
Encryption
Decrypted String


All Classes
Account
Alias
Asset
Attachment
Attachment.ColoredCoinsAskOrderCancellation
Attachment.ColoredCoinsAskOrderPlacement
Attachment.ColoredCoinsAssetIssuance
Attachment.ColoredCoinsAssetTransfer
Attachment.ColoredCoinsBidOrderCancellation
Attachment.ColoredCoinsBidOrderPlacement
Attachment.ColoredCoinsOrderCancellation
Attachment.ColoredCoinsOrderPlacement
Attachment.MessagingAliasAssignment
Attachment.MessagingArbitraryMessage
Block
Blockchain
Convert
CountingInputStream
CountingOutputStream
Crypto
Genesis
HttpJSONRequestHandler
HttpRequestHandler
JSON
Logger
Nxt
NxtException
NxtException.ValidationException
Order
Order.Ask
Order.Bid
Peer
Peer.State
ThreadPools
Transaction
Transaction.NotYetEnabledException
Transaction.Type
Transaction.Type.ColoredCoins
Transaction.Type.Messaging
Transaction.Type.Payment
Transaction.UndoNotSupportedException
User
UserRequestHandler


{% extends "layout.html" %} {% block content %}
Hello people, I am Ishan Lakhwani, 3rd year B.Tech student at Nirma University. I've created this network for students to express themselves. It will cover updates from all over university and all clubs. Languages and Framework used -
This is Nirma's first social netwrok website. The network architechture is based on anonymous self- stabilizing algorithm.


{% user_display user %}'s Profile
Your Upcoming Events:
{% for event in user.event_set.all %}
{%endfor%}
{{ event.event_name }}
By:
{{ event.event_organizer }}
Description:
{{ event.event_description }}
When:
{{ event.event_date }}


I create, design and implement computer systems and software. I love things that are well done and that last.
My journey began 7 years ago, when for the first time in my life I made my first "hello world" by turning on a led, since then my love for electronics has guided me to more complex activities, such programing old microprocessors like the famous Z80, microcontrollers in Assembler and basic programs in C language. It wasn't until my college days that I discovered that my passions were not only electronics and programming, but also create and design complex computer systems.
I'm an Engineer, history nerd, electronics enthusiast and mathematics lover. I believe that mathematics and computing are the sciences that will guide the technological advance of mankind in the years to come . Therefore, I want to contribute to that magnificent change that will take place by innovation and creating something new.
I care about people and how we interact with each other, realizing of the importance of good communication and organization if things are to be done well
I like to code things from scratch, and enjoy bringing ideas to life by giving them shape, structure and purpose.
I like to go to the bottom of things, being the curiosity of wanting to know how things work my biggest drive.
I value simple content structure, clean design patterns, and thoughtful interactions between human and computer.
These are the most relevant projects that I've done during my time as student, to check out for more please take a look to my Github
I am always open to discussing new projects, jobs or partnership opportunities, please don't hesitate to contact me:


{% extends "base_templates/page_base.html" %} {# base_templates/page_base.html extends base_templates/base.html #} {% block main %}
Choose the pricing that best fits your business


OCR Test
Version 0.5.7
Application by Robert Theis
This app is a mash-up of several open source projects: the Tesseract Tools for Android image processing library APIs (tesseract-android-tools), the ZXing Barcode Scanner, the Google-api-translate-java and Microsoft-translator-java-api translation APIs, and a San Francisco State University grad school project.


The Question Site
Please answer the following questions for a free gift
* Required
Do you like macaroni and cheese?
Yes
No
I like chicken
This is a required question
Who is your favorite cook?
Rachel Ray
Rachel Ray
Rachel Ray
This is a required question
If you could eat a dog, which one would it be?
German Shepard well done
Golden Retriever cooked medium rare
Pug not cooked
This is a required question
Do you prefer regular noodles or gluten free?
gluten free
regular
This is a required question
What is your favorite color?
blue
red
green
pink
This is a required question
What is your favorite sport to play?
lacrosse
soccer
basketball
softball
swimming
volleyball
This is a required question
What is your favorite dessert?
brownies
ice cream
cupcakes
cake
Option 5
This is a required question
The average person does what thirteen times a day?
Laughs
sneezes
clears their throat
goes to the bathroom
This is a required question
Who said "I've never had an accident worth talking about" ?
Captain E J Smith of the Titanic
Martin Luther King Jr.
Justin Bieber
Johnny Depp
This is a required question
What is your favorite television show?
This is a required question
Would you rather eat 5 raw fish or eat 10 live cockroaches ?
*
5 raw fish
10 cockroaches
This is a required question
Never submit passwords through Google Forms.
Screen reader support enabled.


Derek Eder
@derekeder
For tomorrow's budget hearing, members of Chicago's civic technology community have prepared a set of critical questions to ask of the proposed DoIT/2FM merger
@AldMattMartin
@AldermanLaSpata
@ward32chicago
@AldermanSmith43
@JamesCappleman
@King4thWard
@CDRosa
@AldReilly https://twitter.com/derekeder/status/1189315036126334978
10/30/2019, 4:07:57 PM
Favs: 2
Retweets: 1
link


90% can't solve this equation
I bet javascript could do better...
+
+
=
+
+
=
+
+
=
+
x
=
Controleer


Compound Interest Calculator
Principal:
Interest Rate:
Times Compounded/Year:
# of Years:
Final Amount:


Awesome paragraph explaining awesome application.
Another awesome paragraph explaing awesome application in more awesome detail.
Get in touch!


Your file sharing link: @|access-link|
Keep this link somewhere safe as it cannot be retrieved again.


WITNESS LIST State, Federal & International Relations Committee April 15, 1997-8:00A HB 2087 For: Gardner, Glen Jr. (TX Coalition of Vets) Raymond, Richard (Himself) Registering, but not testifying: For: Bier, Samuel (TX Veterans Commission) Hall, Kerry (American Legion) McLemore, Bill (TX Assoc of Vets) Palmquist, Michael (American Legion) On: Green, Billy (TX Veterans Commission) HB 2242 For: Bush, Robert (Himself) Caldwell, Shirley (Herself) Davis, Yvonne (Herself) Fehrenbach, T.R. (THC) Milton, Tate (Brazos State Park Assoc) Nau, John (Himself) Plitt, Walter (Nat'l Park Commission) Willis, Libby (Preservation Texas) Against: Burleson, Micky (TX Parks and wildlife) Ogilvie, Charlie (Historical Park Vol) Summers, Scott (W. Columbia Chamber) On: Miglicco. Gary (LPMG Peat Marwick) Sansom, Andrew (Parks and Wildlife) Steely, James (THC) Registering, but not testifying: Against: Byfield, Dan (Amer. Land Foundation) Rhodes, Denise (Herself) On: Dolman, Bill (TPWD) Hunt, Conover (Himself) Milne, Robert (KPMG) Tunnell, Chris (THC) HB 2356 For: Bush. Robert (Himself) Davis, Yvonne (Herself) Willis, Libby (Preservation TX) Against: Burleson, Micky (Parks and Wildlife) Davidson, Sam (Access Fund) Gilleland, Ellis (TX Animals) Grojean, Charles (Adm. Nimitz Foundation) Gustafson, Laurence (The Access Fund) Hanson, Jerry (Himself) Head, David (Himself) Hobday, Eric (TX Moutaineers) Kiker, Robert (Permian Basin Petrol) Klussmann, Wallace (Himself) Meyer, Joe (CIty of Palestine) Mollard, Jean (Herself) Mummert, Clyde (TX Mountain Climbers) Ogilvie, Charlie (State Hist. Vols) Probst, Diane (Rockport C of C) Rhodes, Denise (Herself) Tate, Milton (Brazos State Park) Whitehead, Emmett (Rusk) Wilkes, Morris (Himself) Williams, John (Nat'l Audobon Society) Williams, Tony (Marshall city manager) On: Hunt, Conover (Himself) Miglicco, Gary (LPMG Peat Marwick) Sansom, Andrew (Parks and Wildlife) Steely, James (THC) Registering, but not testifying: For: Caldwell, Shirley (Himself) Fehrenbach, TR (THC) Nau, John (Himself) Plitt, WAlter (Palo Alto Park) Williams, David (Himself) Against: Bucher, Robert (Natl Railway Hist Soc) Byfield, Dan (American Land Found.) Cartwright, Sam (Palestine Chamber) Caveness, Louis (Rusk Chamber) Conway, Kenneth (TX Rec and Park) Ethridge, Lila (Hays Co. HC) Gonzalez, Rebecca (Central TX Climbers) Jerger, Scott (The Access Fund) Lewis, Michael (Central TX Climbers) Meyer, Yvonne (City of Palestine) Murray, Mike (Rusk) Schwartz, Georgina (Herself) Summers, Scott (W. Columbia_Chamber) Trostle, Maurice (Brazos State Park) On: Blake, Roy (Rusk and Palestine) Dolman, Bill (TPWD) Milne, Robert (KPMG) Tunnel, Curtis (THC) HCR 2 For: McLemore, Bill (TX Assoc of County Vets) Turner, Bob (Himself) Registering, but not testifying: For: Garnder, Glen Jr. (TX Coalition of Vet Org) On: Bier, Samuel (TX Veterans Commission) HCR 67 For: McLemore, Bill (TX Assoc of County Vets) Turner, Bob (Himself) Registering, but not testifying: For: Gardner, Glen Jr. (TX Coalition of Vet Org) Hall, Kerry (American Legion (TX)) Palmquist, Michael (American Legion) On: Bier, Samuel (TX Veterans_Commission) HCR 85 For: HIghtower, Allen (Himself) HCR 86 For: Hirschi, John (Himself) HCR 125 For: Davis, Yvonne (Herself) Nau, John (THC) Plitt, Walter (Paloalto Nat. Park Comm) Schwarz, Georgina (Herself) Against: Burleson, Micky (TX Parks and Wildlife) Rhodes, Denise (Herself) On: Hunt, Conover (Himself) Miglicco, Gary (LPMG Peat Marwick) Sansom, Andrew (TX Parks and Wildlife) Steely, James (THC) Registering, but not testifying: For: Bush, Robert (Himself) Caldwell, Shirley (Herself) Fehrenbach, T.R. (Himself) Against: Byfield, Dan (Amer Land Foundation) On: Dolman, Bill (Himself) Milne, Robert (LPMG Peat Marwick) Tunnell, Curtis (THC) SB 352 For: Counts, David (Himself) Hightower, Allen (Himself) On: Boyd, Hal (TX Nat. Guard Armory) Registering, but not testifying: On: Hubbard, John (Sunset Commision) Huff, Mike (TX Nat. Guard Armory) SB 353 For: Counts, David (Himself) Hightower, Allen (Himself) James, Danial (Adj. General) Registering, but not testifying: On: Hubbard, John (Sunset Commission)


--- layout: post title: Spotify + Vaadin = truthy date: '2011-12-30T17:49:00+02:00' tags: - vaadin - spotify - api - labs - experiment tumblr_url: http://blog.porotype.com/post/15028802108/spotify-vaadin-truthy ---
For the last workday of the year, I decided to spend my @Vaadin #CF on something a bit different: @Spotify + @Vaadin
Spotify recently announced the Spotify Apps API, and I conveniently gained access today. This being the last workday of the year, I decided to spend some CF time (the Vaadineer version of Googles 20% time) checking if it’s possible to use Vaadin to make Spotify Apps.
The environment provided is basically Chromium, and you can grant your app remote XHR access to specific sites - in short, it lookes pretty promising! And indeed, I was able to run a Vaadin application quite easily.
However, before you get your hopes up, I found this notice in the documentataion:
In order for Spotify to be able to verify the security aspects of the submitted applications, the JavaScript code must not be minified or obfuscated.
Uh-oh. Vaadin is using GWT, and GWT javascript is indeed quite obfuscated. I guess you could compile using pretty or detailed modes, but I’m not sure that would be sufficient. I guess I’ll have to contact Spotify and ask…
Anyway, if you still want to give it a shot, here’s the basic procedure.
First get a version of Spotify that supports Apps (then apply for Apps developer status, so you get the devel tools in Spotify).
Then make a Spotify folder (~/Spotify on Mac, My Documents/Spotify on Win) and a folder for you app under that (e.g ~Spotify/vaadin/).
Now choose a Vaadin Application you want to spotifyify. Any test application will do for now. Browse to it (make sure it works) and copy the content of the page into ~Spotify/vaadin/index.html.
Next, create a manifest.json in the same folder with the following content:
{
"BundleType": "Application",
"AppIcon": {
"18x18": "vaadin.png"
},
"AppName": {
"en": "Vaadin"
},
"SupportedLanguages": [
"en"
],
"RequiredPermissions": [
"http://<IP_ADDRESS>:8080"
]
}
Replace stuff to your liking - especially make sure the RequiredPermissons points to your application. Mine is running at http://<IP_ADDRESS>:8080.
Now copy the whole VAADIN folder from your Vaadin application to e.g ~Spotify/vaadin/VAADIN/ - yes, we can actually install the widgetset and themes locally, and only make UIDL requests to the server. Neat.
In order for the application to know where the server is located, we’ll need to edit index.html just a little bit: look for the part that says appUri:’…’ and make it point to your server. Mine looks like this:
appUri:‘http://<IP_ADDRESS>:8080/’
That is basically it! Fire up Spotify, and search for spotify:app:vaadin where the last part is the name of your app (vaadin in my case).
The main problem with this is that it’s quite unclear if apps like this would be allowed into Spotify. I’m guessing the answer is a firm 'no’ unless you compile pretty/detailed, and perhaps not even then. This is something Spotify needs to comment on - I’ll get back to you if I find out the answer! :-) Until then, this will remain an interesting experiment.
Ignoring the possible problems with app submission, the obvious next steps would be:
Anyway, have a nice new years eve, and let me know if you have some thoughts on this topic!


Mexican Kitchen
Spicy Chicken Taquitos
Mexican Lasagna With White Sauce
Chicken Fajita Rice Bowls
Super-Speedy Chicken Tacos
Chorizo Chilaquiles
Carnitas Taco
Best-Ever Migas
Chicken Chilaquiles
Pineapple-Serrano Pico de Gallo
Black Bean and Spinach Enchiladas
Citrusy Shrimp-Stuffed Avocados
Dulce De Leche Sandwiches


|
ITEM |
PRICE |
CONTACT |
|
. |
. |
. |
|
AEA DSP-1232 TNC with power supply and manual. Some
proceeds will be donated to PWARC. |
$55 |
Jim, N0OBV, Penrose,<PHONE_NUMBER> |
|
. |
. |
. |
|
Kenwood TS-820 Transceiver and matching antenna tuner |
Call |
Billy, K5LKT, Pueblo,
Cell:<PHONE_NUMBER> |
|
Vintage Drake TR-3 Transceiver with Speaker and AC
Power Supply |
Call |
Billy, K5LKT, Pueblo,
Cell:<PHONE_NUMBER> |
|
. |
. |
. |
|
Kenwood Station! Kenwood TS-430S Transceiver (160-10
meters) with hand mic, matching Kenwood PS-430 power supply and
Kenwood AT-130 manual tuner |
$500 |
David, KY6YYY, Pueblo,
(719) 542-7650 cell: 568-4054 |
|
. |
. |
. |
|
Henry/Tempo Solid State VHF Amplifier, Model 100AL10.
Ten watts in delivers 100 watts output on 2 meters. Works with FM,
SSB, CW, AM. Operate fixed or mobile from your 13.8 VDC power supply
or battery. Anderson Power Poles installed on power leads. Built with
conservatively rated components and a large heat sink for maximum
heat dissipation. Operating/maintenance manual with schematic included. |
$95 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
Astron RS-50M Heavy Duty Power Supply -- 37 amps
continuous, 50 amps surge - Output Voltage: 13.8 VDC (+/- 0.05 V)
Internally Adjustable (11-15 V) - Voltage and Amp Meters. List
price $356.95 |
$185
Pick up only |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
MFJ-962B Manual Antenna Tuner. Handles 1500 Watts PEP
SSB amplifier input power (800 Watts PEP SSB amplifier output power)
1.8-30 MHz.. This is a nice tapped inductor tuner. I have been using
it occasionally for about 5 years running up to 500 watts PEP, and it
works very well. It will work into coax, ladder line or a long wire.
This tuner uses cross-needle metering, so it will
monitor forward power as well as reflected power at the same time.
Metering is switchable from 300 watts to 1.5 KW.
The tuner measures 11" wide x 15 1/4" deep x
4" tall. |
$150 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
SWR/Watt Meter/Field Strength Meter - 10 W and 100 W
scales. Model P5403A. Made in Japan for Pace, Vanco, Sears, GE and
other vendors. No instructions. No Field Strength antenna. |
$10 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
Swan WM-2000 HF Wattmeter/SWR meter; 200, 1000, 2000
watt ranges. Nice large meter for easy viewing. |
$50 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
One set of six (6) snap-on ferrite suppressor chokes
used for reduction or elimination of rf interference from such
sources as AM or FM radio stations, Amateur Radio, CB radio,
flourescent lights, electric motors, switching power supplies,
computers, etc. These will fit TV coax, RG-58 and RG-8X coax, as well
as several wraps of speaker wires or phone line. |
$10 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
(1) 11' RG-8/U Coax with PL-259 connectors on both ends |
$10 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
(1) 42' RG-8/U Coax with PL-259 connector on one end |
$35 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
(2) B & W Model 550A coax switch This model will
switch up to 5 antennas, and does NOT ground unused antennas. It has
six SO-239 connectors coming out like spokes of a wheel. Hole mount. |
$15 ea. |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
B&W 6-position coax switch -- Rectangular box with
SO-239 connectors on top. Can be wall mounted. Does NOT ground unused antennas. |
$15 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
Cushcraft Ten-3 3-element 10 meter monoband beam
Forward gain 8 dBd
Boom length 8 ft
Longest element 18 ft
Antenna weight 9.9 lbs
List price for new antenna: $299
www.cushcraftamateur.com for full details. |
$100
Pick up only |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER>
|
|
2"x24' aluminum boom with mounting plate |
$50 |
Bill, WA0KAQ, Pueblo West,<PHONE_NUMBER> |
|
MORE LISTINGS ON PAGE 2 |
|
|
|
. |
. |
. |
|
Outbacker mobile antenna with Tri-mag mount and quick disconnect |
$185 |
Jim, NE0DA, Pueblo West<PHONE_NUMBER> |
|
. |
. |
. |
|
Simpson 260 Volt Ohm Meter. Good Condition. |
$25 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Heathkit HM-201 SWR Bridge; 200 and 2,000 watts scales. |
$30 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Heathkit T-4 Signal Tracer |
$30 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Heathkit 1G-42 Laboratory Generator |
$40 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
RCA Programable TV Antenna Rotor |
$65 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
39' 18 gauge, 8-wire rotor cable |
$38.86 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
8' Tower Top Section (Hygain?) - Cleaned and painted |
$15 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Chicago 3050-watt/3500-watt portable generator with
wheel kit, Model 67560 - Almost new |
$400 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Two meter Ringo 2 base antenna |
$50 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Vintage Heathkit SB-201 amplifier - (about 500 w SSB)
- Has relay for using with modern transceivers. For 80, 40, 20, 15
meters only. No 10 meters. |
$300 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Vintage Clegg Thor 6-meter transceiver (tube type),
power cord, power supply and photocopy of manual |
$75
OBO |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Hustler 75-meter coil |
$20 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |
|
Unknown brand 20 meter mobile antenna coil |
$20 |
Stan, KC0OYO, Pueblo West<PHONE_NUMBER> |


If you've never been, they are awesome. here's a basic definition from Wikipedia.
Effectively, the people who show up form the schedule and go from there. HAX camp is not a pure Unconference as there are some
planned session items but it is largely up to the group in attendance as to what direction it goes.
If 2 people showed up wanting to talk about how StencilJS elements data binding works in React?  If everyone wanted to learn about the Theming layer in HAXcms, that'd be on the schedule.
The only requirements of the Unconference are..
- Be respectful, but vote with your feet. If a conversation is not the one you wanted, find one you do. Participants are empowered to form the optimal conversations to make the most of the day for them.
- Keep on point. If a session was called about a topic, try and stick to it unless the group wants to wander to other topics.
- It must be related to Web components
in some fashion.
Our Unconference Format
- We will start the day with 30 minutes of saying who we are and what we are interested in learning from the day.
- We will then have 10 minutes for people to build the schedule by filling out large poster cards. After which time everyone who wishes to call a session gives an elevator pitch for it.
- We will then take 10 minutes and build the schedule on the wall.
- We have now created a conference and the day commences


Edward Linden is the impoprtant node in your business. He understands the power of network and collaboration. He creates value, every decision is made with profit maximization in his backbone. His friends and collueges describe him as creative and with a passion for develop new things.
Dinner model - a commercial project! Get inspired and live your true self with this empowering food website
This app shapes connetions between people and culture. Learning language has never been easier. Download the Langqast podcast app today, and start learning a foreign language you always dreamed about learning. PS. The app is just a prototype.
All humans and animals have the right to educate themselfs. Upriver is a livestreaming website where the lecture is provided online for those who couldn't attend. Everyone deserves a second chance.


| Class | Description |
|---|---|
| BinStorageInputFormat | |
| BinStorageOutputFormat | |
| BinStorageRecordReader |
Treats keys as offset in file and value as line.
|
| BinStorageRecordWriter | |
| BufferedPositionedInputStream | |
| FileLocalizer | |
| FileLocalizer.DataStorageInputStreamIterator | |
| FileLocalizer.FetchFileRet | |
| FileSpec |
A simple class that specifies a file name and storage function which is used to read/write it
|
| InterRecordReader |
A record reader used to read data written using
InterRecordWriter
It uses the default InterSedes object for deserialization. |
| InterRecordWriter |
A record reader used to write data compatible with
InterRecordWriter
It uses the default InterSedes object for serialization. |
| InterStorage |
LOAD FUNCTION FOR PIG INTERNAL USE ONLY!
This load function is used for storing intermediate data between MR jobs of
a pig query.
|
| InterStorage.InterInputFormat | |
| InterStorage.InterOutputFormat | |
| NullableBag | |
| NullableBigDecimalWritable | |
| NullableBigIntegerWritable | |
| NullableBooleanWritable | |
| NullableBytesWritable | |
| NullableDateTimeWritable | |
| NullableDoubleWritable | |
| NullableFloatWritable | |
| NullableIntWritable | |
| NullableLongWritable | |
| NullablePartitionWritable |
NullablePartitionWritable is an adaptor class around PigNullableWritable that adds a partition
index to the class.
|
| NullableText | |
| NullableTuple | |
| NullableUnknownWritable |
This class can be used when data type is 'Unknown' and
there is a need for PigNullableWritable object.
|
| PigFile | |
| PigNullableWritable |
A base class for all types that pig uses to move data between map and
reduce.
|
| ReadToEndLoader |
This is wrapper Loader which wraps a real LoadFunc underneath and allows
to read a file completely starting a given split (indicated by a split index
which is used to look in the List
|
| SequenceFileInterStorage |
Store tuples (BinSedesTuples, specifically) using sequence files to leverage
sequence file's compression features.
|
| SequenceFileInterStorage.SequenceFileTupleOutputFormat | |
| TFileRecordReader |
A record reader used to read data written using
InterRecordWriter It
uses the default InterSedes object for deserialization. |
| TFileRecordWriter |
A record reader used to write data compatible with
InterRecordWriter
It uses the default InterSedes object for serialization. |
| TFileStorage |
LOAD FUNCTION FOR PIG INTERNAL USE ONLY! This load function is used for
storing intermediate data between MR jobs of a pig query.
|
| TFileStorage.TFileInputFormat | |
| TFileStorage.TFileOutputFormat |
| Exception | Description |
|---|---|
| ResourceNotFoundException |
Copyright © 2007-2017 The Apache Software Foundation