Student Trip! Portal
Eric Nowina - Freelance User Experience Architect
Jason and I came to S-Trip! around the same time and after quickly finding his way around the company and it's systems he became an invaluable resource. What I most appreciated was his cool and logical approach to product development, not to mention his extensive technical wherewithal.
In the time since we worked together Jason has always been a friendly and reliable resource whenever I need to pick someone's brain. I'm really thankful for that.
- January 7, 2013
WordsPlus
Great App!
Just played first game, easy and fun! Considering buying the full version!!
Good
I like this game. It's everything it says. No bugs, no problems. It's something all ages can enjoy. :-)
Nice Game
The game is fun, like the word of the day concept.
Wonderful
Entertainment of high quality. Most games out there is really not worth something, but im very impress it works fabulous on my Z10.
Website Development
Karen Rebecca Black - Client
I hired Jason to build the back end of an add-on to my Fat Rock site after a very frustrating experience trying to work with a freelancer overseas through an outsourcing site. Jason gracefully stepped in and took over without much more than a few emails to outline the project. He was organized, extremely easy to communicate with, quick, yet flexible with my schedule - and always delivered exactly on the dates we agreed. Jason's work on the project was seamless.
[...] I'd hire him again in a heartbeat: he's fantastic. And most importantly? I trust him. Please feel free to contact me directly if you have any questions at all.
- November 6, 2010


This course provides an in-depth examination of advanced topics in cartographic representation, or the graphics, sounds, haptics, etc., constituting a map that are employed to encode geographic information. It is a direct extension of 370, but with a focus on cartographic design for the web rather than print, and draws upon research and practice on graphic design, web design, and art. Specifically, it integrates theory on both mapmaking and map use (compared to 170 or 370, which focus upon one or the other) and emphasizes design of web-delivered static maps, rather than the design of interfaces for manipulating these maps (compared to 575). The course is divided into two components: lectures and labs.
Check out past syllabi and finals projects below!
Instructor: Meghan Kelly
TA: Pete Bauknecht
Caroline Armer
Dawson Bancroftshort
Austin Coppernoll
Robert Darlington
Andrea Eibergen
Trevor Grayson
Caitin Hartnett
Carly Herron
Casey Kalman
Anna Ostermeier
Will Shere
Mike Smale
Matthew Smith
Grace Vriezen
David Waro


Technical overview of EAM¶
CIME in E3SM¶
E3SM uses CIME (Common Infrastructure for Modeling the Earth), which contains the support scripts (configure, build, run, test), data models, essential utility libraries, a “main” and other tools that are needed to build a single-executable coupled Earth System Model.
CIME documentation is available here.
Flow chart¶
Spatial resolution¶
Technically, EAM can run with horizontal resolution from ne4
(about 750km) to ne120
(about 25km)
(with F1850C5AV1C-04P2 compset):
ne4_ne4 (~750km)
ne11_ne11 (~280km)
ne16_ne16 (~190km)
ne30_ne30 (~100km)
ne120_ne120 (~25km)
The vertical resolution is L30 (lev) for V0 and L72 (lev) for V1. Detailed information about the vertical coordinate in EAMv1 can be found here :
ID hyai hyam hybi hybm P_int P_full
-- ------ ------ ------ ------ ------ ------
1 0.1000 0.0000 0.1000 <--- layer interface
0.1238 0.0000 0.1238 <--- layer center
2 0.1477 0.0000 0.1477
0.1828 0.0000 0.1828
3 0.2180 0.0000 0.2180
0.2699 0.0000 0.2699
4 0.3219 0.0000 0.3219
0.3986 0.0000 0.3986
5 0.4753 0.0000 0.4753
0.5885 0.0000 0.5885
6 0.7017 0.0000 0.7017
0.8689 0.0000 0.8689
7 1.0361 0.0000 1.0361
1.2830 0.0000 1.2830
8 1.5299 0.0000 1.5299
1.8944 0.0000 1.8944
9 2.2588 0.0000 2.2588
2.7970 0.0000 2.7970
10 3.3352 0.0000 3.3352
4.1298 0.0000 4.1298
11 4.9245 0.0000 4.9245
5.9684 0.0000 5.9684
12 7.0124 0.0000 7.0124
8.3774 0.0000 8.3774
13 9.7424 0.0000 9.7424
11.4738 0.0000 11.4738
14 13.2052 0.0000 13.2052
15.3339 0.0000 15.3339
15 17.4627 0.0000 17.4627
19.9963 0.0000 19.9963
16 22.5300 0.0000 22.5300
25.4447 0.0000 25.4447
17 28.3594 0.0000 28.3594
31.5933 0.0000 31.5933
18 34.8271 0.0000 34.8271
38.3663 0.0000 38.3663
19 41.9055 0.0000 41.9055
45.6712 0.0000 45.6712
20 49.4369 0.0000 49.4369
53.3096 0.0000 53.3096
21 57.1822 0.0000 57.1822
61.0152 0.0000 61.0152
22 64.8482 0.0000 64.8482
68.4764 0.0000 68.4764
23 72.1046 0.0000 72.1046
75.3553 0.0000 75.3553
24 78.6061 0.0000 78.6061
81.9463 0.0000 81.9463
25 85.2865 0.0000 85.2865
88.9105 0.0000 88.9105
26 92.5346 0.0000 92.5346
96.4667 0.0000 96.4667
27 100.3987 0.0000 100.3987
104.6650 0.0000 104.6650
28 108.9312 0.0000 108.9312
113.5600 0.0000 113.5600
29 118.1888 0.0000 118.1888
123.2110 0.0000 123.2110
30 128.2332 0.0000 128.2332
133.6822 0.0000 133.6822
31 139.1312 0.0000 139.1312
145.0433 0.0000 145.0433
32 150.9554 0.0000 150.9554
157.3699 0.0000 157.3699
33 163.7844 0.0000 163.7844
170.7441 0.0000 170.7441
34 177.7038 0.0000 177.7038
178.5448 6.7101 185.2549
35 179.3858 13.4202 192.8061
177.5309 23.4681 200.9989
36 175.6759 33.5159 209.1918
173.6633 44.4177 218.0810
37 171.6507 55.3194 226.9702
169.4671 67.1477 236.6148
38 167.2835 78.9759 246.2594
164.9142 91.8094 256.7237
39 162.5450 104.6429 267.1880
159.9745 118.5671 278.5416
40 157.4039 132.4913 289.8952
154.6149 147.5988 302.2136
41 151.8259 162.7063 314.5321
148.7998 179.0977 327.8975
42 145.7738 195.4891 341.2629
142.4905 213.2736 355.7641
43 139.2073 231.0581 370.2654
135.6451 250.3540 385.9990
44 132.0828 269.6499 401.7327
128.2178 290.5857 418.8035
45 124.3528 311.5214 435.8743
120.1594 334.2364 454.3958
46 115.9659 356.9515 472.9174
111.5393 380.9292 492.4686
47 107.1127 404.9070 512.0198
102.6706 428.9689 531.6395
48 98.2285 453.0308 551.2593
93.8440 476.7809 570.6249
49 89.4594 500.5311 589.9905
85.2361 523.4077 608.6438
50 81.0128 546.2842 627.2970
76.9323 568.3877 645.3200
51 72.8517 590.4912 663.3429
68.9676 611.5304 680.4980
52 65.0835 632.5697 697.6532
61.4493 652.2553 713.7046
53 57.8151 671.9410 729.7561
54.4827 689.9922 744.4748
54 51.1502 708.0434 759.1936
48.1685 724.1943 772.3628
55 45.1869 740.3452 785.5321
42.6011 754.3516 796.9527
56 40.0154 768.3580 808.3734
37.8655 780.0033 817.8688
57 35.7157 791.6486 827.3643
33.9653 801.1299 835.0952
58 32.2149 810.6111 842.8261
30.6674 818.9938 849.6612
59 29.1199 827.3766 856.4964
27.6074 835.5690 863.1764
60 26.0950 843.7614 869.8564
24.6201 851.7505 876.3706
61 23.1453 859.7396 882.8849
21.7103 867.5124 889.2227
62 20.2754 875.2853 895.5606
18.8827 882.8292 901.7118
63 17.4900 890.3731 907.8631
16.1418 897.6757 913.8175
64 14.7937 904.9783 919.7720
13.4923 912.0274 925.5197
65 12.1910 919.0766 931.2675
10.9386 925.8604 936.7990
66 9.6862 932.6442 942.3305
8.4849 939.1512 947.6362
67 7.2837 945.6582 952.9419
6.1356 951.8772 958.0128
68 4.9875 958.0962 963.0837
3.8945 964.0166 967.9111
69 2.8015 969.9370 972.7385
1.7656 975.5485 977.3141
70 0.7296 981.1600 981.8896
0.3648 985.8405 986.2053
71 0.0000 990.5210 990.5210
0.0000 993.7570 993.7570
72 0.0000 996.9929 996.9929
0.0000 998.4964 998.4964
73 0.0000 1000.0000 1000.0000
Temporal resolution¶
The table below shows the model time step used in the default EAMv1 (FC5AV1C-04P2 compset for ne11, ne16, and ne30; FC5AV1C-H01C compset for ne120) at different model resolutions. Modified from Zhang et al. (2018).
Time stepping¶
A hybrid method is used to couple the physics and dynamics. For the fluid dynamics variables (temperature, winds, and surface pressure), physics tendencies are applied as a constant source term for dynamics in each of the dynamical (se_nsplit) sub-steps. For ne30/ne120, the coupling frequency is 900s/225s. For water vapor, liquid- and ice-phase condensate, and all other advected tracers, the hard adjustment is used and the coupling frequency is 30min/15min for ne30/ne120.
Radiation is called every hour for both ne30 and ne120. The radiation tendency (calculated hourly) is re-used at each model time step (e.g. 30min for ne30).
CLUBB and MG2 are substepped together with 5min time step. There is no internal CLUBB sub-cycle if dt_clubb_mg2 <= 5min. There is no internal MG2 subcycle either (except for sedimentation part, which is dynamically substepped). The CLUBB-MG2 loop is coupled with the host model at each model physics time step (e.g. 30min for ne30). CLUBB/MG2 doesn’t update the state variable directly (physics_update is used). If CLUBB/MG2 internal subcycles exist, the output tendency is the time-averaged tendency.
In the atmosphere-only simulation, the surface fields are updated at each atm-physics time step (30min for ne30) through the coupler. The land model uses the same time step.
In the coupled model, the coupling frequency is the same for the atmosphere and land model as in the atm-only simulation. For the ocean model, the coupling frequency is 30min for ne30 and 30min or 1h for ne120 (depending on grid setup - oRRS15to5 versus oRRS18to6) in the current version.
List of advective tracers¶
List of advective tracers in EAMv1 :
Name Description Type ------ ---------------------------------------- ----- 1 Q Specific humidity wet 2 CLDLIQ Grid box averaged cloud liquid amount wet 3 CLDICE Grid box averaged cloud ice amount wet 4 NUMLIQ Grid box averaged cloud liquid number wet 5 NUMICE Grid box averaged cloud ice number wet 6 RAINQM Grid box averaged rain amount wet 7 SNOWQM Grid box averaged snow amount wet 8 NUMRAI Grid box averaged rain number wet 9 NUMSNO Grid box averaged snow number wet 10 O3 O3 dry 11 H2O2 H2O2 dry 12 H2SO4 H2SO4 dry 13 SO2 SO2 dry 14 DMS DMS dry 15 SOAG SOAG dry 16 so4_a1 so4_a1 dry 17 pom_a1 pom_a1 dry 18 soa_a1 soa_a1 dry 19 bc_a1 bc_a1 dry 20 dst_a1 dst_a1 dry 21 ncl_a1 ncl_a1 dry 22 mom_a1 mom_a1 dry 23 num_a1 num_a1 dry 24 so4_a2 so4_a2 dry 25 soa_a2 soa_a2 dry 26 ncl_a2 ncl_a2 dry 27 mom_a2 mom_a2 dry 28 num_a2 num_a2 dry 29 dst_a3 dst_a3 dry 30 ncl_a3 ncl_a3 dry 31 so4_a3 so4_a3 dry 32 bc_a3 bc_a3 dry 33 pom_a3 pom_a3 dry 34 soa_a3 soa_a3 dry 35 mom_a3 mom_a3 dry 36 num_a3 num_a3 dry 37 pom_a4 pom_a4 dry 38 bc_a4 bc_a4 dry 39 mom_a4 mom_a4 dry 40 num_a4 num_a4 dry
List of advective tracers in EAMv0 :
Name Description Type ------ ---------------------------------------- ----- 1 Q Specific humidity wet 2 CLDLIQ Grid box averaged cloud liquid amount wet 3 CLDICE Grid box averaged cloud ice amount wet 4 NUMLIQ Grid box averaged cloud liquid number wet 5 NUMICE Grid box averaged cloud ice number wet 6 H2O2 H2O2 dry 7 H2SO4 H2SO4 dry 8 SO2 SO2 dry 9 DMS DMS dry 10 SOAG SOAG dry 11 so4_a1 so4_a1 dry 12 pom_a1 pom_a1 dry 13 soa_a1 soa_a1 dry 14 bc_a1 bc_a1 dry 15 dst_a1 dst_a1 dry 16 ncl_a1 ncl_a1 dry 17 num_a1 num_a1 dry 18 so4_a2 so4_a2 dry 19 soa_a2 soa_a2 dry 20 ncl_a2 ncl_a2 dry 21 num_a2 num_a2 dry 22 dst_a3 dst_a3 dry 23 ncl_a3 ncl_a3 dry 24 so4_a3 so4_a3 dry 25 num_a3 num_a3 dry
List of tuning parameters¶
Below is a list of parameters that are often tuned in EAM V0 (FC5), V1 default (FC5AV1C-04P2 or FC5AV1C-L), and V1 with the DECK tuning for AMIP simulations. Note that only V1 has CLUBB-related parameters. The csv file is available here.
| Parameter | Description | EAM V0 | EAM V1 | EAM V1 (DECK) |
|---|---|---|---|---|
| zmconv_dmpdz | Convective entrainment rate | -1.00E-03 | -7.00E-04 | -7.00E-04 |
| zmconv_c0_ocn | Autoconversion parameter for deep convective clouds over ocean | 0.0035 | 0.007 | 0.007 |
| zmconv_c0_lnd | Autoconversion parameter for deep convective clouds over land | 0.009 | 0.007 | 0.007 |
| zmconv_ke | Convective rain evaporation | 1.00E-06 | 1.50E-06 | 5.00E-06 |
| zmconv_tiedke_add | Perturbation added to the parcel buoyancy in ZM scheme | 0.5 | 0.8 | 0.8 |
| cldfrc_dp1 | Convective cloud fraction coefficient | 0.025 | 0.045 | 0.045 |
| rhmaxi | Threshold RH with respect to ice for ice cloud fraction to equal to 1.0 | 1.1 | 1.05 | 1.05 |
| re_ice_deep | Convective ice cloud effective radius | 2.50E-05 | 1.60E-05 | 1.60E-05 |
| micro_mg_dcs | Autoconversion size threshold for cloud ice to snow | 6.00E-04 | Temperature dependent | Temperature dependent |
| ice_sed_ai | Fall speed parameter for cloud ice | 700 | 500 | 500 |
| so4_sz_thresh_icenuc | Aitken mode sulfate aerosol size threshold for homogeneous ice nucleation | 1.00E-07 | 7.50E-08 | 5.00E-08 |
| c1 | Constant associated with the dissipation of w variance | N/A | 1.335 | 1.335 |
| clubb_C2rt | Constant associated with the dissipation of total water mixing ratio | N/A | 1.75 | 1.75 |
| clubb_C8 | Constant associated with the damping of w skewness used in CLUBB | N/A | 4.3 | 4.3 |
| clubb_C14 | Constant in Newtonian damping of u variance and v variance used in CLUBB | N/A | 1.3 | 1.06 |
| clubb_c_K10 | Momentum diffusion factor | N/A | 0.3 | 0.3 |
| clubb_gamma_coef | Constant of the width of PDF in w-coordinate | N/A | 0.32 | 0.32 |
| dust_emis_fact | Tuning parameter for dust emissions. | 0.55 | 2.05 | 2.05 |
| n_so4_monolayers_pcage | Number of so4(+nh4) monolayers needed to “age” a carbon particle | 3 | 8 | 8 |


L'ATLANTIDE A film review by Mark R. Leeper
This 1961 film seems to appear in the United States most frequently under the title JOURNEY BENEATH THE DESERT. It is based on Pierre Benoit's 1920 novel ATLANTIDA. That novel is heavily derivative of H. Rider Haggard's SHE. Both books had multiple silent adaptations and each was adapted into a film in the 1960s. (SHE was adapted also once in the 1930s.) Each is about a lost civilization found in Africa and ruled over by a beautiful but evil female tyrant. In this film three men crash a helicopter in the Sahara only to find that caverns underground hide the lost civilization of Atlantis. This desert was once under water and Atlantis was then an island, but the ocean receded and sands covered the city. Antinea, the evil queen of Atlantis, holds the men prisoner. They are desperate to escape knowing that the desert above their heads will soon be used for a nuclear test that will obliterate the lost city.
The Italian/French production of L'ATLANTIDE was directed by classic director Edgar G. Ulmer who earlier directed films like THE BLACK CAT and DETOUR. Nearly every aspect of this film falls short of its potential. The inexpensive sets are small and lack imagination. One unimaginative set just has a curtain as a background and a vase in the foreground. The musical score is weak and creates little emotion in the viewer. The model work is poor and frequently obvious. The men's costumes are unimaginative robes and the women's are just skimpy. The acting is of the quality of that of a Machiste muscle man movie. The dialog in the dubbed English version is at best uninspired and occasionally overripe. All of these factors make it hard to meet this film halfway. A film like this needs to grip the imagination but this one never quite achieves a feel of H. Rider Haggard it desperately requires. This rates a 4 on the 0 to 10 and a low 0 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 2001 Mark R. Leeper
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


Prince Andrew's Jeffrey Epstein woes are far from over despite stepping down from royal duties
by Sasha SavitskyPrince Andrew's woes are far from over.
The British royal, who is Queen Elizabeth II's son, is continuing to face many hurdles despite his decision to step down from royal duties because of his friendship with billionaire sex offender Jeffrey Epstein.
The 59-year-old prince is struggling to stay at the helm of his Pitch&Palace charity, with some British media reports indicating he has already stepped down
.PRINCE ANDREW FORCED TO MOVE OFFICE OUT OF BUCKINGHAM PALACE: REPORT
Several of the charity’s corporate backers including Barclays have stopped supporting the project, which brings young entrepreneurs together with companies that can help put their ideas into practice.
Buckingham Palace says Pitch@Palace is in a period of transition and that the ties to the palace will be dropped. It may be known as Pitch in the future.
Andrew faces continued scrutiny that is expected to intensify when a BBC interview with his primary accuser is broadcast.
The broadcast with Virginia Roberts Giuffre is set for Dec. 2.
PRINCE ANDREW'S JEFFREY EPSTEIN INTERVIEW SLAMMED AS TOTAL DISASTER BY VIEWERS, MEDIA
Andrew has denied the accusation and said he doesn’t have any recollection of meeting her, despite a photograph showing him with his arm around her.
Giuffre said she was a victim of a sex trafficking scheme operated by Epstein, a billionaire financier who died in prison in August in what was ruled a suicide.
Many legal papers relating to the case remained sealed to the public.
Andrew’s troubles reached a crescendo after he tried to end speculation about the matter by giving a live TV interview one week ago in which he didn’t express concern for Epstein’s young victims and defended his relationship with the financier.
PRINCE ANDREW TO 'STEP BACK' FROM PUBLIC DUTIES OVER JEFFREY EPSTEIN RELATIONSHIP
The backlash was almost instantaneous and led to the extremely rare decision to remove him from a carefully cultivated royal role.
Queen Elizabeth II hasn’t commented in public on the scandal and showed her support for Andrew Friday by going horseback riding with him on the grounds of Windsor Castle within view of a photographer.
Some of the victims’ lawyers are calling for Andrew to voluntarily give evidence to U.S. officials or face a possible subpoena that could force him to testify under oath.
He hasn’t been publicly charged with any crime and it wasn’t clear if U.S. officials investigating Epstein want to question Andrew.
SARAH FERGUSON PRAISES EX PRINCE ANDREW FOR TELL-ALL INTERVIEW: HE'S 'A TRUE AND REAL GENTLEMAN'
Andrew has admitted he made a mistake by staying at the New York City home of Epstein after the financier had been convicted of sex offenses.

The Associated Press contributed to this report.


38'' X 48'' - Acrylic on Canvas
24'' X 36'' - Acrylic on Canvas
36'' X 24'' - Acrylic on Canvas
48'' X 38'' - Acrylic on Canvas
36'' X 24 '' - Oil on Canvas
36'' X 36'' - Acrylic on Canvas
36'' X 30'' - Acrylic on Canvas
30'' X 21''- Acrylic on Canvas
18'' X 24'' - Oil on Canvas
30'' X 21'' - Oil on Canvas


See: Description
| Interface | Description |
|---|---|
| Cache |
The interface to be used to create/modify/delete a persistent global key/value datastore for use by an SDK step.
|
| Datastore |
The datastore interface allows the SDK to obtain details about a Data Studio datastore, including
its type (database or file) and get access to its tables for reading or writing (file only).
|
| ServerValueGetter | |
| StepColumn |
A basic interface for wrapping user-defined and internally defined Columns
|
| StepPropertyValidator |
For internal use only.
|
| TableSDK |
TableSDK represents the SDK's view of a Data Studio table, and allows certain operations to be performed on them.
|
| Class | Description |
|---|---|
| CacheConfiguration | |
| Column |
A basic class representing a user-defined column
It can be used directly in custom steps, but it is
recommended that non-advanced users use the Column object instead.
|
| ColumnManager |
Represents a list of a step's outputColumns, and exposes methods to aid the manipulation of them.
|
| ServerValueUtil |
Static utility class to get the value of glossary constants and server properties.
|
| StepConfiguration |
Metadata class that defines a step.
|
| StepOutput |
A base class that handles everything around the output of the step.
|
| StepProperty |
Class that represents a single step property - an item displayed in the UI within the step's panel, either displaying
information about the step, or allowing the user to configure it.
|
| Enum | Description |
|---|---|
| ButtonConfiguration |
For internal use only.
|
| ColumnDataType | |
| StepColumn.COLUMN_TYPE | Deprecated
As of v1.6.0, replaced by ColumnDataType
|
| StepPropertyType |
StepPropertyTypes that are used to define the type of a step property
StepPropertyType.BOOLEAN
StepPropertyType.STRING
StepPropertyType.INTEGER
StepPropertyType.DECIMAL
StepPropertyType.COLUMN_CHOOSER
StepPropertyType.INPUT_LABEL |
| StepPropertyType.MultiColumnType |
Copyright © 2019. All rights reserved.


| DOSE: |
1 tablet |
oral |
PMA |
(pill / tablet) |
Well, I had been on the outlook for some Ecstacy for a while, and I was really happy when a friend dropped by to tell me he had a few pills called roosters, so I bought them off him.
Later that evening, me and 4 people sat down at my house to drop them, all the usual preparations were made, calm psychedelic music, bottles of water, salty crackers, the works, nothing unusual there.
We dropped them all at the same time and began to wait, just chatting away. Well, about 40 minutes later, I was beginning to feel nauseous, not like the mild nausea with E, but really nauseous. I have a hard stomach though, so I didn't puke, perhaps I should've.. A couple of my friends raced to the bathroom and puked their guts out big time though, and about at the same time I began to feel unusual feelings, not like on MDMA in any way.
My muscles tensed up and my legs started twitching, I got a bit dizzy, like with alcohol intoxication, and my hearing changed somewhat, my ability to localize sounds was impaired. If someone to my right spoke 10 meters away, I would think he was 1 meter away to the left.
It just got worse and worse, and my heartbeat picked up big time, I was cold-shivering and hot-shivering at the same time, and my head just literally pounded with every heartbeat.. By now I was really panicky, I felt like I was insane, I had paranoid thoughts racing through my mind at crazy speeds and I had no way to control them.
I called a few mates I know who are very experienced with all kinds of drugs and they tried to help me with the usual things to do, 'eat something, take a shower, mellow down, change the setting' .. but nothing seemed to work, and I was in real panic and kept considering calling 911 because I was sure I was going to die.
I had mild visuals as well, distorted lights, patterns and colours as well.
Stupidly enough, I sat down at my computer to find some info on bad chemicals usually contained in ecstacy, and I wound up at one explaining PMA, and I quickly related to everything written there, which only made things worse, since I had heard so many bad things about it.. Well, luckily I was able to control myself and satisfy my mind with that it I wouldn't stay this way forever, I would eventually come down.. and I did, with some new experiences learned.
I learned control over my mind before my body.
I learned how to handle myself in panic situations.
and last but not least, I got a very important lesson about how dangerous things sold under the name Ecstacy really can be. It's not all love and euphoria.
I really do not dare to think of what the consequences might have been if I had been in different settings, like at a rave party, I'm completely sure I would have died in that case.
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.


Education
Education is near and dear to my heart. I come from a family of teachers and experienced the value of a strong public education system first-hand. The education I received at Jonathan Alder High School enabled me to succeed in college at The Ohio State University and earn a law degree afterwards.
I want to empower teachers to provide students with a world-class education that prepares them to enter the workforce or pursue a college degree. I believe that local school boards should have a strong voice in developing education policy, as that is where parents can best make decisions for their children.


Script of Scripts (SoS) is a computational environment for the development and execution of scripts in multiple languages for daily computational research. It can be used to develop scripts to analyze data interactively in a Jupyter environment, and, with minimal effort, convert the scripts to a workflow that analyzes a large amount of data in batch mode.
SoS consists of a ployglot notebook that allows the use of multiple kernels in one Jupyter notebook, and a workflow system that is designed for daily computational research. Basically,
The figure is linked to a youtube video for a presentation on SoS during the 2018 JupyterCon, which introduces both SoS Notebook and SoS Workflow System and can be a good starting point for you to learn SoS. The SoS Workflow part starts at 20min.
As an interactive environment and notebook tool that promotes literate programming, SoS allows you to perform and record your analysis in different languages in a single Jupyter notebook, with seamless integration of multiple Jupyter kernels (e.g. python, and R). The ability to exchange data between live jupyter kernels allows you to use the most appropriate languages for different parts of your analyses.
SoS can work with all Jupyter kernels and currently provides native support (with data exchange) for the following languages:
| Bash |
| JavaScript |
| Julia |
| MATLAB |
| Ruby |
| Octave |
| Python 2 |
| Python 3 |
| R |
| SAS |
| Scilab |
| Stata |
| TypeScript |
| Zsh |
Other langauges can be supported through third-party langauge modules. Please feel free to submit a PR if you would like to list your language modules below:
Most workflow systems have rigorous interfaces and syntaxes for specification of computational tasks. Inevitably, re-factoring codes for these pipeline platforms results in notably different implementations of their non-pipeline counterparts. Therefore, overuse of pipelines, particularly in the early stages of projects, decreases productivity, as researchers are forced to redirect their focus from scientific problems to engineering details. For these reasons, pipelineitis is a nasty disease and prevents the use of workflow tools for exploratory data analysis.
The SoS workflow system is designed for daily data analysis. SoS is extended from Python 3.6 with a minimal ammount of extra syntax. It also follows an incremental design so that you can literally convert your scripts into a workflow in seconds, while allowing the use of more advanced features as needs arise.
SoS follows your definition of workflow that allows you to define workflows in both foward and makefile style, even a mixture of both. More specifically, you can define workflows as ordered steps that would be executed sequentially step by step to process specified input files; or as a set of makefile-style rules that would be executed to generated specified output files; or as a sequence of steps with help from makefile-style steps. SoS automatically analyzes the input and output of steps and execute workflows using a dynamic DAG (Directed Acyclic Graph) that would be expanded and shrinked during the execution.
One of the major obstacles for reproducible data analysis is the fact that large workflows need to exploit remote computational resources, which usually involves logging to remote systems, creating system-specific wrapper scripts, submitting jobs and collecting results are the jobs are done. With SoS' remote execution model, all these steps are simplified so that you can submit tasks to different remote hosts and cluster systems, all from your local desktop or laptop.
The SoS workflow system can be embeded to SoS notebooks and be executed both from command line or from within the notebook. This allows SoS notebooks to include scientific narratives, workflow descriptions, sample input and output, along with the embedded workflows, which makes them much more readable, therefore much easier to share than other workflow systems, and becomes a perfect medium for the sharing of analytic procedures for daily data analysis.


mne.
AcqParserFIF
(info)[source]¶Parser for Elekta data acquisition settings.
This class parses parameters (e.g. events and averaging categories) that
are defined in the Elekta TRIUX/VectorView data acquisition software (DACQ)
and stored in info['acq_pars']
. It can be used to reaverage raw data
according to DACQ settings and modify original averaging settings if
necessary.
| Parameters: | info : Info
|
|---|
See also
mne.io.Raw.acqparser
Notes
Any averaging category (also non-active ones) can be accessed by indexing
as acqparserfif['category_name']
.
Attributes
categories |
Return list of averaging categories ordered by DACQ index. |
events |
Return events ordered by DACQ index. |
| reject | (dict) Rejection criteria from DACQ that can be used with mne.Epochs. Note that mne does not support all DACQ rejection criteria (e.g. spike, slope). |
| flat | (dict) Flatness rejection criteria from DACQ that can be used with mne.Epochs. |
| acq_dict | (dict) All DACQ parameters. |
Methods
__getitem__ (item) |
Return an averaging category, or list of categories. |
__hash__ () <==> hash(x) |
|
__len__ () |
Return number of averaging categories marked active in DACQ. |
get_condition (raw[, condition, …]) |
Get averaging parameters for a condition (averaging category). |
__getitem__
(item)[source]¶Return an averaging category, or list of categories.
| Parameters: | item : str or list of str
|
|---|---|
| Returns: | conds : dict or list of dict, each with following keys:
|
__hash__
() <==> hash(x)¶categories
¶Return list of averaging categories ordered by DACQ index.
Only returns categories marked active in DACQ.
events
¶Return events ordered by DACQ index.
Only returns events that are in use (referred to by a category).
get_condition
(raw, condition=None, stim_channel=None, mask=None, uint_cast=None, mask_type=’and’, delayed_lookup=True)[source]¶Get averaging parameters for a condition (averaging category).
Output is designed to be used with the Epochs class to extract the corresponding epochs.
| Parameters: | raw : Raw object
condition : None | str | dict | list of dict
stim_channel : None | string | list of string
mask : int | None
uint_cast : bool
mask_type: ‘and’ | ‘not_and’
delayed_lookup: bool
|
|---|---|
| Returns: | conds_data : dict or list of dict, each with following keys:
|


{% extends 'jobboard/base.html' %} {% load quiz_tags i18n static %} {% block head_title %}Vera Platform - examining...{% endblock %} {% block content %} {{ block.super }}
You already pass this exam.
{% if exam_passed.processed %}You scored {{ exam_passed.points }} points. Employer set passing grade {{ exam_passed.exam.passing_grade }} points.
{% else %}


WITNESS LIST Nominations Committee March 6, 2001 - 1:30P Chief Administrative Law Judge ON: Taylor, Shelia Bailey (Self), Manor, TX Judicial Districts Board ON: Wolfe, Joe (Self), McKinney, TX North Texas Tollway Authority FOR: Walls, Marilyn Kay (Self), Cleburne, TX ON: Dillard, Donald D. (Self), Dallas, TX Public Safety Commission ON: Francis, Jr., James B. (Self), Dallas, TX Secretary of State FOR: Cuellar, Henry (Self), Laredo, TX State Board of Examiners of Dietiti FOR: McGahagin, Ralph (Self), Austin, TX Wisakowsky, Eugene (Self), Waxahachie, TX Registering, but not testifying: On: Flippin, Donna (Self), Austin, TX State Commission on Judicial Conduc FOR: Jefferson, Wallace B. (Self), San Antonio, TX Olivares, Kathleen H. (Self), El Paso, TX ON: Brittingham, Marvin Wayne (Self), Mansfield, TX Statewide Health Coordinating Counc FOR: Biggerstaff, Joan (Self), Plano, TX Scott-Galinda, Susan (Self), Bryan, TX ON: Endicott, Jr., James A. (Self), Harker Heights, TX Texas Alcoholic Beverage Commission ON: Madden, Gail (Self), Dallas, TX Texas Judicial Council FOR: Carian, Delia Martinez (Self), San Antonio, TX Lopez, Jose Luis (Self), Crystal City, TX ON: Birmingham, Willie Jean (Self), Marshall, TX Manning, Ann (Self), Lubbock, TX


Marine Serre & SSENSE Team for Black & Pink Shadow Moon Long Sleeve T-Shirt
Featuring the brand’s signature crescent moon print.
by Torsten IngvaldsenMarine Serre and SSENSE have teamed up for an exclusive take on the fashion imprint’s famed crescent moon print, crafting a Black & Pink Shadow Moon Long Sleeve T-Shirt. Featuring a stretch nylon jersey base, the T-shirt features the brand’s signature graphic printed in pink and white throughout. This is met by a mock neck collar and raw edges at the cuffs and hem.
Marine Serra has become one of the most talked-about designers in recent memory following the establishment of her namesake label. In 2017 she won the LVMH Prize for Young Fashion Designers, since launching a menswear line for the Spring/Summer 2019 season. She also recently collaborated with Nike and Converse, further helping to sculpt out her genderless approach to fashion.
You can view the SSENSE-exclusive Black & Pink Shadow Moon Long Sleeve T-Shirt via the gallery above. The piece is currently available for sale via SSENSE’s webstore with a retail price set at $330 USD.
For more new pieces, take a closer look at the Dior x Rimowa SS20 luggage capsule.
Marine Serre x SSENSE Black & Pink Shadow Moon Long Sleeve T-Shirt
Release Date
November 25, 2019 - 12:00 am EST (TBC)
Price
330 USD


Welcome to Kenford's Typing Speed Test! Try and type the different types of texts below as fast as you can!
 Select the type of test below and click the 'New Text' button to grab a piece of text to begin!
If you'd like to use these awesome API's as well, feel free to check them out! Big thanks to these guys for sharing their work for public use :).


class: center, middle, inverse, title-slide # Wrangling ### Introduction to R
Bern R Bootcamp
### June 2020 --- layout: true
        www.therbootcamp.com      Introduction to R | June 2020
 --- # What is wrangling?

 from datasciencebe.com
 --- .pull-left45[ # This is wrangling!

 #### <high>Transform</high> Change variable names Add new variables #### <high>Organise</high> Sort data by variables Merging data from two separate dataframes Move data between variables and rows #### <high>Aggregate and summarise</high> Group data and calculate and summary stats ] .pull-right5[

 ] --- # `dplyr` + `tidyr` .pull-left5[ To wrangle data in R, we will use the <high><mono>dplyr</mono></high> and <high><mono>tidyr</mono></high> packages, which are part of the <high><mono>tidyverse</mono></high>. | Package | Function| Function| |:-------------|:----| |dplyr | Transformation | `rename()`, `mutate()`, `case_when()`, `*_join()` | |dplyr | Organisation | `arrange()`, `slice()`, `filter()`, `select()` | |tidyr | Organisation | `pivot_longer()`, `pivot_wider()` | |dplyr | Aggregation | `group_by()`, `summarise()` | ] .pull-right4[

 ] --- # The Pipe! <high>`%>%`</high> .pull-left4[ `dplyr` makes extensive use of a new operator called the <high>Pipe `%>%`</high>
 Read the <high>Pipe `%>%`</high> as "And Then..."
 ```r # Start with data data %>% # AND THEN... DO_SOMETHING %>% # AND THEN... DO_SOMETHING %>% # AND THEN... DO_SOMETHING %>% # AND THEN... ``` ] .pull-right55[

This is not a pipe. But <mono>%>%</mono> is!
 ] --- # The Pipe! <high>`%>%`</high> .pull-left4[ ```r # Vector of `scores` score <- c(8, 4, 6, 3, 7, 3) score ``` ``` [1] 8 4 6 3 7 3 ``` ```r # Mean: Base-R-way mean(x = score) ``` ``` [1] 5.167 ``` ```r # Mean: Tidyverse-style (with %>%) score %>% # AND THEN mean() ``` ``` [1] 5.167 ``` ] .pull-right55[

 ] --- # The Pipe! <high>`%>%`</high> .pull-left4[ ```r # Vector of `scores` score <- c(8, 4, 6, 3, 7, 3) score ``` ``` [1] 8 4 6 3 7 3 ``` ```r # Mean: Base-R-way round(mean(x = score), digits = 1) ``` ``` [1] 5.2 ``` ```r # Mean: Tidyverse-style (with %>%) score %>% # AND THEN mean() %>% # AND THEN round(digits = 1) ``` ``` [1] 5.2 ``` ] .pull-right55[

 ] --- .pull-left4[ # 2 dirty data sets ### Goals 1 Rename - Give meaningful <high>variable names</high>.

 2 Recode - Use appropriate <high>units</high> and <high>labels</high> for nominal variables.

 3 Join - <high>Combine</high> datasets.

 4 Sort - <high>Sort</high> tibble by age.

 5 Filter - Select relevant <high>cases</high>.

 6 Select - Select relevant <high>variables</high>.

 7 Pivot - Change to <high>wide format</high>.

 ] .pull-right45[
<br2> ```r # patients tibble patients ``` ``` # A tibble: 5 x 3 ID X1 X2 <dbl> <dbl> <dbl> 1 1 37 1 2 2 65 2 3 3 57 2 4 4 34 1 5 5 45 2 ``` ```r # results tibble results ``` ``` # A tibble: 5 x 3 ID t_1 t_2 <dbl> <dbl> <dbl> 1 4 100 105 2 92 134 150 3 1 123 135 4 2 143 140 5 99 102 68 ``` ] --- # Transformation .pull-left4[ Transformation functions are used to <high>alter the content</high> of a `tibble`. <br2> | Function| Description| |:-------------|:----| | `rename()` | <high>Change names</high> of variables | | `mutate()`| <high>Create variable</high> from existing variables| | `case_when()`| <high>Recode values</high> from a vector to another| | `left_join()` | <high>Combine tibbbles</high> | ] .pull-right5[ ```r patients # Baselers data ``` ``` # A tibble: 5 x 3 ID X1 X2 <dbl> <dbl> <dbl> 1 1 37 1 2 2 65 2 3 3 57 2 4 4 34 1 5 5 45 2 ``` ] --- # `rename()` .pull-left4[ <high>Change variable names</high> with `rename()`. ```r patients %>% rename(NEW = OLD, NEW = OLD) ``` ```r patients # Original ``` ``` # A tibble: 5 x 3 ID X1 X2 <dbl> <dbl> <dbl> 1 1 37 1 2 2 65 2 3 3 57 2 4 4 34 1 5 5 45 2 ``` ] .pull-right5[ Change `X1` to `age`, and `X2` to `arm`. ```r # 0) Start with patients data patients %>% # 1) Change variable names with rename() rename(age = X1, # New = Old arm = X2) # New = Old ``` ``` # A tibble: 5 x 3 ID age arm <dbl> <dbl> <dbl> 1 1 37 1 2 2 65 2 3 3 57 2 4 4 34 1 5 5 45 2 ``` ] --- # `mutate()` .pull-left4[ Create <high>new variables</high>, or <high>change existing ones</high>, with `mutate()`. ```r tibble %>% mutate( NEW1 = DEFINITION1, NEW2 = DEFINITION2, NEW3 = DEFINITION3, ... ) ``` ] .pull-right5[ Calculate two new variables `age_months` and `age_decades`. ```r patients %>% rename(age = X1, arm = X2) %>% # AND THEN... # Create new variables with mutate() mutate(age_months = age * 12, age_decades = age / 10) ``` ``` # A tibble: 5 x 5 ID age arm age_months age_decades <dbl> <dbl> <dbl> <dbl> <dbl> 1 1 37 1 444 3.7 2 2 65 2 780 6.5 3 3 57 2 684 5.7 4 4 34 1 408 3.4 5 5 45 2 540 4.5 ``` ] --- # `case_when()` .pull-left4[ Use `case_when()` with `mutate()` to define <high>new variables based on logical conditions</high>. ```r # Using mutate(case_when()) tibble %>% mutate( NEW = case_when( COND1 ~ VAL1, COND2 ~ VAL2 )) ``` ] .pull-right55[ Create `arm_lab` that carries `'placebo'` for `arm == 1` and `'drug'` for `arm == 2`. ```r patients %>% rename(age = X1, arm = X2) %>% # Create arm_lab from arm mutate(arm_lab = case_when(arm == 1 ~ "placebo", arm == 2 ~ "drug")) ``` ``` # A tibble: 5 x 4 ID age arm arm_lab <dbl> <dbl> <dbl> <chr> 1 1 37 1 placebo 2 2 65 2 drug 3 3 57 2 drug 4 4 34 1 placebo 5 5 45 2 drug ``` ] --- # Joining data

 --- # `left_join()` .pull-left35[ Use `left_join()` to <high>combine two data frames</high> based on one or more key variables. ```r # Join tibble_1 to tibble_2 # matched by KEY tibble_1 %>% left_join(tibble_2, by = c("KEY")) ``` Other `*_join()` functions: `right_join()`, `full_join()`, `inner_join()`, `anti_join()`, `semi_join()`. ] .pull-right6[ ```r # Join patients with results to create combined combined <- patients %>% rename(age = X1, arm = X2) %>% mutate(arm_lab = case_when(arm == 1 ~ "placebo", arm == 2 ~ "drug")) %>% # Join with results with left_join() left_join(results, by = "ID") ``` ```r # Show combined data set combined ``` ``` # A tibble: 5 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 2 65 2 drug 143 140 3 3 57 2 drug NA NA 4 4 34 1 placebo 100 105 5 5 45 2 drug NA NA ``` ] --- .pull-left4[ # 2 dirty data sets ### Goals 1 Rename - Give meaningful <high>variable names</high>.

 2 Recode - Use appropriate <high>units</high> and <high>labels</high> for nominal variables.

 3 Join - <high>Combine</high> datasets.

 4 Sort - <high>Sort</high> tibble by age.

 5 Filter - Select relevant <high>cases</high>.

 6 Select - Select relevant <high>variables</high>.

 7 Pivot - Change to <high>wide format</high>.

 ] .pull-right45[
<br2> ```r # patients tibble patients ``` ``` # A tibble: 5 x 3 ID X1 X2 <dbl> <dbl> <dbl> 1 1 37 1 2 2 65 2 3 3 57 2 4 4 34 1 5 5 45 2 ``` ```r # results tibble results ``` ``` # A tibble: 5 x 3 ID t_1 t_2 <dbl> <dbl> <dbl> 1 4 100 105 2 92 134 150 3 1 123 135 4 2 143 140 5 99 102 68 ``` ] --- # Organisation .pull-left4[ Organisation functions help you change the organisation of your data by <high>sorting rows</high> by variables, <high>filter rows</high> based on criteria, <high>select variables</high> (etc). | Function| Description| |:--------|:----|:-------------| | `arrange()` |<high>Sort rows</high> by variables| | `slice()`| <high>Select rows</high> by location| | `filter()` | <high>Select rows</high> by criteria| | `select()`| <high>Select variables</high>| ] .pull-right55[ ```r # combined tibble combined ``` ``` # A tibble: 5 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 2 65 2 drug 143 140 3 3 57 2 drug NA NA 4 4 34 1 placebo 100 105 5 5 45 2 drug NA NA ``` ] --- # `arrange()` .pull-left4[ Use `arrange()` to <high>sort rows</high> in increasing or decreasing (using `desc()`) order of one or more variables. ```r tibble %>% arrange(A, B) ``` To sort in descending order, use `desc()` ```r tibble %>% arrange(desc(A), B) ``` ] .pull-right55[ Sort by `arm`. ```r combined %>% arrange(arm) # Sort by arm ``` ``` # A tibble: 5 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 4 34 1 placebo 100 105 3 2 65 2 drug 143 140 4 3 57 2 drug NA NA 5 5 45 2 drug NA NA ``` ] --- # `arrange()` .pull-left4[ Use `arrange()` to <high>sort rows</high> in increasing or decreasing (using `desc()`) order of one or more variables. ```r tibble %>% arrange(A, B) ``` To sort in descending order, use `desc()` ```r tibble %>% arrange(desc(A), B) ``` ] .pull-right55[ Sort by `arm` and then `age`. ```r combined %>% arrange(arm, age) # Sort by arm then age ``` ``` # A tibble: 5 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 4 34 1 placebo 100 105 2 1 37 1 placebo 123 135 3 5 45 2 drug NA NA 4 3 57 2 drug NA NA 5 2 65 2 drug 143 140 ``` ] --- # `slice()` .pull-left4[ Use `slice()` to <high>select rows</high> (or remove) by row number. Use `c()`, `a:b`, or `seq()` to create row numbers ```r # Integer vector c(2, 6, 10) ``` ``` [1] 2 6 10 ``` ```r # Integer vector of 0 to 5 0:5 ``` ``` [1] 0 1 2 3 4 5 ``` ] .pull-right55[ Select rows `3` and `5`. ```r # Rows 3 and 5 only combined %>% slice(c(3, 5)) ``` ``` # A tibble: 2 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 3 57 2 drug NA NA 2 5 45 2 drug NA NA ``` ] --- # `slice()` .pull-left4[ Use `slice()` to <high>select rows</high> (or remove) by row number. Use `c()`, `a:b`, or `seq()` to create row numbers ```r # Integer vector c(2, 6, 10) ``` ``` [1] 2 6 10 ``` ```r # Integer vector of 0 to 5 0:5 ``` ``` [1] 0 1 2 3 4 5 ``` ] .pull-right55[ Select rows `1` through `4`. ```r # First 4 rows combined %>% slice(1:4) ``` ``` # A tibble: 4 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 2 65 2 drug 143 140 3 3 57 2 drug NA NA 4 4 34 1 placebo 100 105 ``` ] --- # `filter()` .pull-left4[ Use `filter()` to <high>select rows</high> (or remove) based on logical statements. <high>Chain</high> logical comparison operators with `&` (AND) and `|` (OR). <high>`==`</high> - is equal to
 <high>`<`</high>, <high>`>`</high> - smaller/greater than
 <high>`≤`</high>, <high>`≥`</high> - smaller/greater than or equal
 <high>`&`</high>, <high>`&&`</high> - logical AND
 <high>`|`</high>, <high>`||`</high> - logical OR
 ] .pull-right55[ Select only patients over `30`. ```r # Filter patients younger than 40 combined %>% filter(age < 40) ``` ``` # A tibble: 2 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 4 34 1 placebo 100 105 ``` ] --- # `filter()` .pull-left4[ Use `filter()` to <high>select rows</high> (or remove) based on logical statements. <high>Chain</high> logical comparison operators with `&` (AND) and `|` (OR). <high>`==`</high> - is equal to
 <high>`<`</high>, <high>`>`</high> - smaller/greater than
 <high>`≤`</high>, <high>`≥`</high> - smaller/greater than or equal
 <high>`&`</high>, <high>`&&`</high> - logical AND
 <high>`|`</high>, <high>`||`</high> - logical OR
 ] .pull-right55[ Select only patients over `30` in the `'drug'` arm. ```r # Filter patients older than 30 given drug combined %>% filter(age > 30 & arm_lab == 'drug') ``` ``` # A tibble: 3 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 2 65 2 drug 143 140 2 3 57 2 drug NA NA 3 5 45 2 drug NA NA ``` ] --- # `select()` .pull-left4[ Use `select()` to <high>select variables</high> (and remove all others) ```r # Select variables A, B tibble %>% select(A, B) ``` <high>Remove variables</high> with `-`. ```r # Select everything BUT A tibble %>% select(-A) ``` ] .pull-right55[ Select variables `ID` and `arm`. ```r combined %>% select(ID, arm) # Select ID and arm variables ``` ``` # A tibble: 5 x 2 ID arm <dbl> <dbl> 1 1 1 2 2 2 3 3 2 4 4 1 5 5 2 ``` ] --- # `select()` .pull-left4[ Use `select()` to <high>select variables</high> (and remove all others) ```r # Select variables A, B tibble %>% select(A, B) ``` <high>Remove variables</high> with `-`. ```r # Select everything BUT A tibble %>% select(-A) ``` ] .pull-right55[ Select everything except t_2 ```r combined %>% select(-t_2) # Everything BUT ID ``` ``` # A tibble: 5 x 5 ID age arm arm_lab t_1 <dbl> <dbl> <dbl> <chr> <dbl> 1 1 37 1 placebo 123 2 2 65 2 drug 143 3 3 57 2 drug NA 4 4 34 1 placebo 100 5 5 45 2 drug NA ``` ] --- # Long and wide formats .pull-left4[ Some functions require data to be in a certain shape, that is to be either in a wide or a long format. Use <high>`pivot_longer()`</high> and <high>`pivot_wider()`</high> from the `tidyr`package to change a tibble between <high>wide</high> and <high>long</high> formats.
 | Function | Result | |:----------|:-------| |`pivot_longer()`|<high>wide → long</high> format| |`pivot_wider()`|<high>long → wide</high> format| ] .pull-right55[

 ] --- # `pivot_longer()` .pull-left45[ ```r # Show original data (wide) combined ``` ``` # A tibble: 5 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 2 65 2 drug 143 140 3 3 57 2 drug NA NA 4 4 34 1 placebo 100 105 5 5 45 2 drug NA NA ``` ] .pull-right45[ ```r # "pivot_longer" wide data to long combined %>% pivot_longer(names_to = 'time', values_to = 'value', cols = c(t_1, t_2)) ``` ``` # A tibble: 10 x 6 ID age arm arm_lab time value <dbl> <dbl> <dbl> <chr> <chr> <dbl> 1 1 37 1 placebo t_1 123 2 1 37 1 placebo t_2 135 3 2 65 2 drug t_1 143 4 2 65 2 drug t_2 140 5 3 57 2 drug t_1 NA 6 3 57 2 drug t_2 NA 7 4 34 1 placebo t_1 100 8 4 34 1 placebo t_2 105 9 5 45 2 drug t_1 NA 10 5 45 2 drug t_2 NA ``` ] --- # `pivot_wider()` .pull-left45[ ```r # Show long data long ``` ``` # A tibble: 10 x 6 ID age arm arm_lab time value <dbl> <dbl> <dbl> <chr> <chr> <dbl> 1 1 37 1 placebo t_1 123 2 1 37 1 placebo t_2 135 3 2 65 2 drug t_1 143 4 2 65 2 drug t_2 140 5 3 57 2 drug t_1 NA 6 3 57 2 drug t_2 NA 7 4 34 1 placebo t_1 100 8 4 34 1 placebo t_2 105 9 5 45 2 drug t_1 NA 10 5 45 2 drug t_2 NA ``` ] .pull-right45[ ```r # "pivot_wider" long data to wide long %>% pivot_wider(names_from = 'time', values_from = 'value') ``` ``` # A tibble: 5 x 6 ID age arm arm_lab t_1 t_2 <dbl> <dbl> <dbl> <chr> <dbl> <dbl> 1 1 37 1 placebo 123 135 2 2 65 2 drug 143 140 3 3 57 2 drug NA NA 4 4 34 1 placebo 100 105 5 5 45 2 drug NA NA ``` ] --- class: middle, center
Practical


public class IsValidOp
extends java.lang.Object
isValid()
method
for Geometry
s.
See the documentation for the various geometry types for a specification of validity.| Modifier and Type | Method and Description |
|---|---|
static Coordinate |
findPtNotNode(Coordinate[] testCoords,
LinearRing searchRing,
GeometryGraph graph)
Find a point from the list of testCoords
that is NOT a node in the edge for the list of searchCoords
|
TopologyValidationError |
getValidationError()
Computes the validity of the geometry,
and if not valid returns the validation error for the geometry,
or null if the geometry is valid.
|
boolean |
isValid()
Computes the validity of the geometry,
and returns true if it is valid.
|
static boolean |
isValid(Coordinate coord)
Checks whether a coordinate is valid for processing.
|
static boolean |
isValid(Geometry geom)
Tests whether a
Geometry is valid. |
void |
setSelfTouchingRingFormingHoleValid(boolean isValid)
Sets whether polygons using Self-Touching Rings to form
holes are reported as valid.
|
public IsValidOp(Geometry parentGeometry)
public static boolean isValid(Geometry geom)
Geometry
is valid.geom
- the Geometry to testpublic static boolean isValid(Coordinate coord)
coord
- the coordinate to validatetrue
if the coordinate is validpublic static Coordinate findPtNotNode(Coordinate[] testCoords, LinearRing searchRing, GeometryGraph graph)
null
if none foundpublic void setSelfTouchingRingFormingHoleValid(boolean isValid)
The default (following the OGC SFS standard)
is that this condition is not valid (false
).
This does not affect whether Self-Touching Rings disconnecting the polygon interior are considered valid (these are considered to be invalid under the SFS, and many other spatial models as well). This includes "bow-tie" shells, which self-touch at a single point causing the interior to be disconnected, and "C-shaped" holes which self-touch at a single point causing an island to be formed.
isValid
- states whether geometry with this condition is validpublic boolean isValid()
public TopologyValidationError getValidationError()