Sunday, January 28, 2018

Seed Swap ABAC 2018

Seed Swap: On January 27, 2018 I went to the sixth annual Plant and Seed Swap at the Wiregrass Farmers Market at the Georgia Museum of Agriculture at Abraham Baldwin Agricultural College (ABAC). I heard of the event through the Georgia Native Plant Society (GNPS) email list serve. I thought this could be an interesting event, see some GNPS members, and get some seeds for my seed collection. In addition I thought it would be neat to give away some seeds myself.

I had a lot of seeds of Sarracenia oreophila, the Green Pitcher Plant, that I discussed in a previous post. I had 1389 seeds, but used 289 for my 2017 seed planting. With 1100 remaining, I had some to spare. I felt I could spare 700. Also seeds get old and lose their viability, although I don't know how long these seeds would last. The idea to give some very rare seeds to others could interest people. I also wanted to put into practice what I learned about such legality of this type of stuff. Paranoid on wanting to find the legality of giving seeds away of a federal and state listed plant, I contacted the Georgia Department of Natural Resources. This call was one of the most helpful. She answered my question and gave me my answer, in writing! It said I was allowed to bring such seeds into Georgia and give them away to the Georgia Native Plant Society. If I can give seeds to them, I can give seeds to anyone. I always fear that a "give away" can also be seen as a promotion item to encourage purchases, but the website stated: "No money changes hands, this swap is an outreach event by the Wiregrass Farmers Market." That settled that. Already in Georgia, I packed up my seeds and went to the event.

After 2 hours driving, an easy drive as there is not much in this part of Georgia, I arrived. There were few cars in the parking lot. I then looked up on my phone to see if I was at the right place at the right time. The website said the 28th! I was disappointed, I was there on the 27th. Defeated, I cranked up my car to leave. Before leaving the parking lot, I thought let me turn around and talk to the people inside the building. I asked if the seed swap was tomorrow. They said no, it is located at a bigger building in the back of the facility. I was back on for the swap! Seems the website had the wrong date listed, which makes sense. Why would they schedule an event on a Sunday, that is church day? Just as I thought, Saturday was the correct day. I arrived at the correct place and found some tables.

I then looked to set up to give away seeds. I saw another GNPS member take a spot and display their seeds. I reintroduced myself to her. Not sure what to do, I walked around and watched others. I then took a seat and started to give seeds away. I gave at least 20 packs of 15-20 seeds away to people who came to my spot. I think the full number of people was 23. I gave between 200-300 seeds away. I know this from my empty 100 packets. To the fellow GNSP member, I gave 3 packets, 300 seeds.

Georgia Museum of Agriculture at Abraham Baldwin Agricultural College Sixth Annual Seed Swap 2018
This was a successful event. I gave seeds of a rare plant away to others. I also handed out a sheet of information.

"Sarracenia oreophila, The Green Pitcher Plant -First off, it is not federal illegal to own federally endangered plants. Many of such plants grow on lands owned by private citizens. The parent plant for these seeds came from USFWS Permit TE022690 holder, authorized to sale cultivated plants. I obtained, grew, and self-pollinated the plant in 2016. I obtained 1389 seeds. I planted 240 seeds in 2016; 207 (86%) germinated.

To grow: a 50/50 mixture of sphagnum moss and sand is suggested. This type of soil is low in nutrients. Do not use potting soil and never fertilize this plant; too many nutrients will kill this plant. Water only with clean rainwater or distilled water, as water from most facets has too many natural and added nutrients that will kill these plants. Keep the soil moist, this plant grows in bogs/swamps; yet do not keep flooded. Give plenty of sunlight, the more the better. Questions Contact: ------------. Let me know if they grow! I forgot to mention, these plants eat bugs."


Did I use the wrong sale or sell?

On the back of the sheet:

"Do not plant these seeds/plants in the wild. These seeds are old and “inbred,” thus lower quality. The plant and seeds are also “domesticated.” For these reasons and it is illegal, these seeds/plants should not be planted in the wild. Federal laws are complex, keep these seeds/plants within the state of Georgia. Different states have different laws on possession of such plants. Much research should be conducted and understood before moving this seeds/plants to another state. To learn more about this and other endangered plants do research! https://ecos.fws.gov/ecp/. Support local environmental organizations.

I want to thank: Georgia Department of Natural Resources, Georgia Native Plant Society, Georgia Botanical Society, New England Carnivorous Plant Society, International Carnivorous Plant Society, US Department of Agriculture, US Fish & Wildlife Service, other state agencies, Maedowview Biological Research Station, and others involved in helping to recover endangered plant species. This was made by ---------------, everything is his opinion and not that of any of the listed agencies."


I also wrote on each slip: "Illegal to sell" as I have seen people on Ebay try to sell 10 seeds of pitcher plants for dollars.

So I was able to put seeds back into the hands of the people to help understand federally endangered plants. The people probably have no idea what they got. It is not easy to get these types or seeds.

I was also given some Ricinus communis, castor bean, and Zamia integrifolia, coontie seeds. I think that is the correct species name for the coontie, I will find out later. Those are two neat plants I didn't have seeds previously. I almost forgot, I was given carrot seeds as well.

Oh, more about the picture I have posted. Those tables with newspaper covering them, that is where people sat to hand out seeds or plants. There must have been about 10-12 people handing out seeds, myself included. Maybe 30-50 people came. It wasn't too large, but it wasn't too little. I was dividing out seeds into packets, handing them out, and talking non-stop. I enjoyed the event.

This post was just a short journal entry for the event. Maybe it was interesting. Post comments if you would like and thank you for reading! Have a nice day!

Sunday, January 14, 2018

R Functions - Part 2 - Finding the Random Number

R Functions - Part 2 - Finding the Random Number (& How Long It Took)
Using R Studio

At this site, I got this result from R:

This is the type of model I am looking to generate for my point on a line. Each time it is run, it makes a different line. It is advanced and I don't understand it all. I don't plan to either. Yet I do want to come up with something similar.

First objective is how to generate random numbers.

I found this site helpful for some basic R processes. It explained some of the runif function in R.


runif uses the form runif(#,#,#). The first # tells the program how many numbers to return. The second and third numbers explain the range where the program will randomly pick a number.

This site added to the runif function using the sample function. Similar, the runif will give fractions, the sample will give whole numbers.


sample, uses the form sample(#:#, #). The range of numbers that the program will pull a number from is listed with #:#. The # after the comma determines how many numbers are randomly pulled from the range of numbers.

Second objective is how to determine how many random numbers are needed before I obtain a specific number I am looking for.

I need sample to run multiple times until it randomly pulls a specific number I am looking for. I first found while. I then was led to repeat. I also took note of print to see the outputs. I entered this:

repeat {
x = sample(1:100,1)
print(x)
}

into the program. It then continuously spit out a random number. This is what I wanted, but I need it to stop at a specific number. This code starts with repeat {...} and the stuff in the brackets is what is repeated in the program. x = sample(1:100,1) pulls the random number. print(x) displays the result. So the code repeatedly, pulls and displays a single random whole number between 1 and 100. This code keeps going and going and....

To stop the repeating program, I need an if statement. Such as:

repeat {
x = sample(1:100,1)
print(x)
if (x == 6){
       break
   }
}

The additional  if ... {...} is a part of the code that allows for something to happen. The (x==6) tells the program if this statement, in the case x==6 also described when x is 6, then do what is inside the {...}, in this case break also described as stop repeating the problem. I chose 6 to stop the code, but I could have chosen any number.


In this run of the code, it took 13 random numbers from 1 to 100 until 6 was chosen. I will note, the same number could have been picked twice; so the total numbers during some of the runs is larger than 100, the amount of runs to go through every number. For example, one run of the code took 399 runs before the program selected 6.

The next step is coding something that will count how many times the code ran until it came up with the number 6. I obtained the code form this site. I added the code and obtained the following:

i = 0
repeat {
y = sample(1:100,1)
print(y)
i = i + 1
if (y == 6){
       break
   }
}
print(sprintf("The loop repeated %s times.", i))

An example of the results:
...


The code now counts how many attempts it took to randomly pick 6, when picking a single number between 1 and 100. Now to go into some detail on the code.

i = 0
repeat {
y = sample(1:100,1)
print(y)
i = i + 1
if (y == 6){
       break
   }
}
print(sprintf("The loop repeated %s times.", i))

i=0 is presented before the repeat. i is the counter. Then in the repeat, i = i + 1 added one to the zero. Each time it is repeated, one is added. Once the number is picked, the repeat stops, the code spits out the result of the ones added each run. This gives me the total. print(sprintf("The loop repeated %s times.", i)) is the fancy code to just display the results.

That is enough for now.

Have a nice day!
Comment if you would like.

Sunday, January 7, 2018

R Functions

1/7/2018

My last post tried to model the random movement of a point on a line. Although successful, the process can be cleaned. Definitely instead of using two programs, I should just use one. To get there I need to learn more about the R program. I am using R Studio.

I reviewed others to get a better grasp on how to run functions in R. Functions are written as:

name = function (inputs) {the function work} or something like that is the style.

add.it = function(x)
{add = x + 1; return(add)}
add.it(x)

so

add.it = function(x)
{add = x + 1; return(add)}
add.it(1)



What did I just do? The first two lines tells R what to process. The 3rd line is where I placed a number. I changed the color to try to show what I am changing. The first two lines explain to R whatever number I put within the 3rd line ( ), it will add 1 to it. In this case I put 1, and 1 was added to 1 resulting in 2.

This is what I paste into the program:

add.it = function(x)
{add = x + 1
return(add)}
add.it(100)

 This is the return:






This time I used 100. The function added the 1 to 100, and the result was 101.

Now that was wordy and confusing. To sum it up with a better explanation:





#1. In notepad I typed 3 lines for my equation. I copied these lines.
#2. I pasted the copied lines into R Studio.
#3. I pressed enter.
#4. Then I looked in the Global Environment area, it showed functions: add.it.
So this shows the function is stored and ready to go!

Then I started messing around:



What this shows is a complicated way to get the program to add 1. But the power to have the program recall a process in future applications is powerful. Although a simple function here, more complicated functions can be developed, then utilized with ease.

Functions can also be placed within function.


Above, the add.it(2) makes 3; yet it itself is within an add.it, so another is added to make 4.

The idea would be to figure out the simple pieces of a process, then start putting those processes together to form more complex processes. Concepts can be brain stormed to find the smaller parts, the linkages to hold them together, then develop the program to return a result.

Thanks for looking. If you made it this far, you are a real trooper.
Enjoy the day!
Comment if you would like!