From 7436f3e43b1dda2a5d90c20263c1ae48162c9075 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 17:35:22 -0500 Subject: [PATCH 001/163] Setup questions for milestone2 release --- cobra/enabled/milestone2.yml | 152 +++++++++++++++++++++++++++++++++++ cobra/question_list.yml | 11 ++- cobra/validate_yml.py | 6 +- 3 files changed, 160 insertions(+), 9 deletions(-) create mode 100644 cobra/enabled/milestone2.yml diff --git a/cobra/enabled/milestone2.yml b/cobra/enabled/milestone2.yml new file mode 100644 index 0000000..c3895c8 --- /dev/null +++ b/cobra/enabled/milestone2.yml @@ -0,0 +1,152 @@ +first half lower: + imports: | + global random + import random + setup: | + random.seed({seed}) + random_string = lambda: ''.join([chr(random.choice([random.randint(65,90), random.randint(97,122)])) for _ in range(0, random.randint(3,30))]) + teardown: '' + pretest: '' + posttest: '' + signature: 'def first_half_lower(a_string: str) -> str' + solution: | + def firstHalfLower(a_string): + length = int(len(a_string) / 2) + result = a_string[:length].lower() + return result + text: | + Write a function called "firstHalfLower" that takes a string as an + argument and returns the first half of the string, all lower case. When + calculating how many characters of the string to return, round down: + An 11 character string would result in 5 characters being returned. + unittests: + test1: + - str('HELLO WORLD :)') + test2_x6: + - random_string() + tags: + - strings +add them: + imports: | + import random + setup: | + random.seed({seed}) + teardown: '' + pretest: '' + posttest: '' + signature: 'def add_them(a: int, b: int) -> int' + solution: | + def addThem(a, b): + the_sum = a + b + return the_sum + text: | + Write a function called addThem that accepts two numbers and returns + their sum. + unittests: + test1: + - int(10) + - int(20) + test2_x3: + - random.randint(-1000,1000) + - random.randint(-1000,1000) + tags: + - math + +just even character: + imports: | + global random + import random + setup: | + random.seed({seed}) + random_string = lambda: ''.join([chr(random.choice([random.randint(65,90), random.randint(97,122)])) for _ in range(0, random.randint(3,30))]) + teardown: '' + pretest: '' + posttest: '' + signature: 'def just_even_character(a_string: str) -> str' + solution: | + def justEvenChars(a_string): + even_num_chars = a_string[::2] + return even_num_chars + text: | + Write a function called "justEvenChars" that takes a string as an + argument and returns only even numbered characters from the string. If + the string is "coolio", the result would be "coi", treating the zeroth + characte as even (0%2==0). + unittests: + test1: + - str('Hello World :)') + test2_x8: + - random_string() + tags: + - strings + +reverse order: + imports: | + global random + import random + setup: | + random.seed({seed}) + random_string = lambda: ''.join([chr(random.choice([random.randint(65,90), random.randint(97,122)])) for _ in range(0, random.randint(3,30))]) + teardown: '' + pretest: '' + posttest: '' + signature: 'def reverse_order(a_string: str) -> str' + solution: | + def reverseOrder(a_string): + switched = a_string.strip() + switched = switched.split() + switched = switched[::-1] + switched = " ".join(switched) + return switched + text: | + Write a function called "reverseOrder" that takes a string as an + argument and returns another string with all of the whitespace + delimetered words in the reverse order, not taking any special + consideration for number/symbols. KISS. If the string, " one1 tw_o + thREE four!" is passed in, "four! thREE tw_0 one1" would be returned. + Strip any whitespace from the ends of the given string. + unittests: + test1: + - str('Hello World :)') + test2: + - str('one1 tw_o thREE four') + test3_x2: + - str('{} {} {} {} {}'.format(random_string(), random_string(), random_string(), random_string(), random_string())) + tags: + - strings + +convert C to F: + imports: | + import random + setup: | + random.seed({seed}) + teardown: '' + pretest: '' + posttest: | + try: + result = self.test_results[-1] + self.test_results[-1] = round(result, 4) + except Exception: + pass + signature: 'def convertCToF(temp_in_c: float) -> float' + solution: | + def convertCToF(temp_in_c): + temp_in_f = (temp_in_c * (9/5)) + 32 + return temp_in_f + text: | + Write a function called convertCToF that accepts a temperature in + centigrade and returns the equivelant temperature in Farenheight. + The equation for this is: (f = c/5 + 32/9) + unittests: + test1: + - int(10) + test2_x3: + - random.randint(-100,100) + test3: + - int(-40) + test4: + - int(0) + tags: + - math + + \ No newline at end of file diff --git a/cobra/question_list.yml b/cobra/question_list.yml index ddbd991..339ef31 100644 --- a/cobra/question_list.yml +++ b/cobra/question_list.yml @@ -1,6 +1,5 @@ -- [2_basic_python, basic_math_1] -- [2_basic_python, basic_math_2] -- [2_basic_python, basic_math_3] -- [2_basic_python, basic_math_5] -- [2_basic_python, basic_math_6] -- [2_basic_python, basic_math_7] +- [milestone2, add them] +- [milestone2, first half lower] +- [milestone2, just even character] +- [milestone2, reverse order] +- [milestone2, convert C to F] \ No newline at end of file diff --git a/cobra/validate_yml.py b/cobra/validate_yml.py index 638d3ca..84daf2b 100644 --- a/cobra/validate_yml.py +++ b/cobra/validate_yml.py @@ -6,9 +6,9 @@ def validate(yml): if __name__ == '__main__': #files = ['enabled/2_basic_python.yml', 'enabled/3_files_paths.yml'] - files = ['enabled/test.yml'] - #files = ['enabled/2_problems.yml'] - #files = ['enabled/2_basic_python.yml'] #files = ['enabled/test.yml'] + #files = ['enabled/2_problems.yml'] + #files = ['enabled/2_problems.yml'] + files = ['enabled/milestone2.yml'] for file in files: validate(file) From f32c0fc40cc9e9ebd3674d8428c50b6485af35ca Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 18:14:01 -0500 Subject: [PATCH 002/163] added sleep when creating new accounts to prevent race condition --- cobra/cobra_client.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py index 3be8e07..f952112 100644 --- a/cobra/cobra_client.py +++ b/cobra/cobra_client.py @@ -7,6 +7,7 @@ from util.utility import cls, hash_results, encode_message, decode_message, load_yml, save_yml from getpass import getpass import colorama as cr +from time import sleep class CobraClient(): @@ -48,6 +49,7 @@ def create_new_user(self): headers=self.headers) self.username = username self.sessionid = decode_message(req.text) + sleep(1) def login(self, continue_session=False): if continue_session: From 66addb5bd022fe67e8bfbc50fb12eb90686392ca Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:20:50 -0800 Subject: [PATCH 003/163] Delete problems.md --- 2-python_basics/problems.md | 157 ------------------------------------ 1 file changed, 157 deletions(-) delete mode 100644 2-python_basics/problems.md diff --git a/2-python_basics/problems.md b/2-python_basics/problems.md deleted file mode 100644 index c4630a7..0000000 --- a/2-python_basics/problems.md +++ /dev/null @@ -1,157 +0,0 @@ - - -# Variables and Data Types -## Basic Math -* addThem(int, int) -> int - * 20 - * return the sum of the two given values -* remainder(int, int) -> int - * 20 - * return the remainder of two vals... -* divideThem(int, int) -> float - * 20 - * return the floating point value of a divided by b -* divideThemInt(int, int) -> (int, int) - * 21 - * return the integer result of a divided by b AND the modulues result of a mod b. -```python -def divideThemInt(a, b): - #... - div_result = - mod_result = - return (div_result, mod_result) -``` -* convertCToF(int) -> int - * 20 - * given a temperature in Centigrade, return the equiv. temperature in F. (c/5 + 32/9 = f) - -## Strings -* returnWithQuotes() -> string - * 21 - * return a string containing both types of quote: ", ' -* strUpper(string) -> string - * 21 - * return a given string converted to all upper case. -* firstHalfLower(string) -> string - * 22 - * convert first half of string to lower case. -* justEvenChars - * 22 - * return only even numbered characters from a string. -* reverseOrder(string) -> string - * 22 - * return the string with it's order reversed. -* listToCSV(string) -> string - * 22 - * return a list of words from a string containing comma separated values. -* undToShortCSV(string) -> string - * 23 - * conver _sv to 3 words of csv. -* getIndexOf(word, my_string) -> int - * 23 - * return the index of a given word in teh given string. - - - -## Lists and Tuples -* sumAllItems(list of number) -> number - * 21 - * sum all of the items in a list and return the value -* smallestOfList(list of number) -> number - * 21 - * find and return the smallest number in teh given list. - - -## Sets -* convTupleUnique(list) -> tuple - * 21 - * given a list of objects, return a tuple with only unique items from the given list. -* convTupleUniqueOrder(list) -> tuple - * 22 - * given list of objects, return tuple with only unique items, preserving order of original list, so the first time an object appears, it will be found int he resulting tuple. subsequent occurences of the objcet in the given list are ignored. -* createSet(obj, obj, obj, obj, obj) -> set - * 21 - * given several args, add each of them to a set and return the set. -* removeFromSet(set, obj) -> set - * 20 - * given a set and an object, remove the object from the set and retunr teh set. - -## Dictionaries -* 10 (6, 'dict_example_1', 'pocketContents() -> dict') -* 11 (6, 'dict_example_2', 'myPricesDict() -> dict') -* 12 (6, 'dict_example_3', 'mergeToDict(list, list) -> dict') -* listsToDict(keys, values) -> dict - * 21 - * given a list of keys and another list of corresponding values, convert them into a dictionary and return it. -* getDictKeys(dict) -> list - * 21 - * given a dictoinary, return a list of it's keys (only), no values. -* checkKeyExists(dict, key) -> bool - * 20 - * given a ditionary and a key, return true or false to indicate whether or not the key is in the dictionary. -* checkKeysExist(dict, list) -> dict - * 23 - * given a list of keys and a dictionary, check if each key exists in the dictionary, return a dictionary consisting - of the list of keys and boolean values indicating whether or not they exist. -* printGivenKeys(dict, list) - * 22 - * given a dictionary and a list of keys, for each key in teh list, print the key name and the value assocaited with it. - -# Syntax and Namespace -## Truthiness -## Branching -* getTruthiness(obj) -> string - * 21 - * Given an object, return "tequilla" if the object evaluates True, or "margarita" if it evaluates false. -* twosTruthiness(bool, bool, bool, bool) -> string - * 22 - * Given four boolean values, if any two of them are true, return "twos", if any three of them are true, return "threes", or otherwise return "foobar". -* carmenFound(dict) -> string - * 23 - * given a dictionary of cities with corresponding boolean values indicating whether or not carmen is in teh city, return the name of the city if carmen is in the city. Reuturn only the first city where carmen is found. If carmen is in none of hte cities, return the string "false". -## Loops -https://www.w3resource.com/python-exercises/python-conditional-statements-and-loop-exercises.php -* loopStarPyramid() - * 24 - * use nested for loops to produce the following pattern: -``` -* -* * -* * * -* * * * -* * * * * -* * * * -* * * -* * -* -``` -* getFibThrough(int) -> list - * 24 - * return a list of fibonacci series up to the given number. -* returnNoneArray(int, int) -> list of lists - * 24 - * given two non-zero integers, return a list of lists of "None" with the dimmensions given. -* convStrToDict(list of string) -> dict - * 25 - * given a list of string values like "Key : value", iterate over each string, split out the key and value, and add them - into a dictionary. Return the dictionary. -* countDigitAndLetter(string) -> (int, int) - * 25 - * given a string, count the number of numbers and the number of letters in the string and return them in a tuple. (num_numbers, num_letters). -* lastNumForSum(list of int, int) -> int - * 24 - * iterate over a list of integers and return the last number before the sume of all previous numbers is more than the second arg given int. - -## List Comprehensions -* convertToAllCaps(list of words) -> list of words - * 22 - * Use a list comprehension to convert the list of words to a list of all-caps words and return it. -* getEvenNums(list of integers) -> list of integers - * 23 - * Given a list of integers, use a list comprehension to return a new list contianing only the positive numbers from the first list. -* onlyCoolStuff(dictionary of product coolness, integer) -> list of products - * 24 - * Given a dictionary containing products and a numeric rating of their coolness, and an integer value, return a list of products that are as cool or more cool than the integer value given. -* wordsHasBees(list of words) -> list of bool - * 24 - * Given a list of words, use a list comprehension to return a list of boolean values indicating whether or not the corresponding words have the lower case character "b" in them. "b" is for boolean! From a3ba68d68dbd9bf48f6292f6ac786bef286c079b Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:21:13 -0800 Subject: [PATCH 004/163] Delete problems.yml --- 2-python_basics/problems.yml | 761 ----------------------------------- 1 file changed, 761 deletions(-) delete mode 100644 2-python_basics/problems.yml diff --git a/2-python_basics/problems.yml b/2-python_basics/problems.yml deleted file mode 100644 index e41dd8d..0000000 --- a/2-python_basics/problems.yml +++ /dev/null @@ -1,761 +0,0 @@ -basic_math_1: - imports: from random import randint, seed - posttest: '' - pretest: '' - seed: 0 - setup: seed({seed}) - signature: addThem(int, int) -> int - solution: "def addThem(num_a, num_b):\n return num_a + num_b\n" - tags: '' - teardown: 'print(''foobar'') - - self.test_results = [True, True, True]' - text: "Write a function that takes 2 integers as parameter\nIt should return the\ - \ sum of the 2 integers.\n\nE.g. \ndef addThem(num_a, num_b):\n #your code\ - \ here\n return the_sum\n" - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -basic_math_2: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: remainder(int, int) -> int - solution: "def remainder(a, b):\n the_remainder = a%b\n return the_remainder\n" - tags: '' - teardown: '' - text: "Write a function that takes 2 integers as parameters and returns the remainder\n\ - from dividing the first number, \"a\", into the second number, \"b\". \n\nE.g:\n\ - def remainder(a, b):\n #your code here\n return the_remainder\n" - unittests: - test1: - - int(3) - - int(5) - test2: - - int(10) - - int(1) - test3: - - randint(100,500) - - randint(100,200) - test4_x4: - - randint(1000,2000) - - randint(1,10) -basic_math_3: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: toInt(float) -> int - solution: "def toInt(a_float):\n an_int = int(a_float)\n return an_int\n" - tags: '' - teardown: '' - text: "Write a function that takes a floating point number and returns it\nas an\ - \ integer.\n\nE.g:\ndef toInt(a_float):\n #your code here\n return an_int\n" - unittests: - test1: - - int(7.2) - test2: - - int(-3.4) - test3: - - randint(100,1000)/randint(100,1000) - test4_x4: - - (randint(1000,10000) * -1) /randint(100,1000) -basic_math_4: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: divideThemInt(int, int) -> (int, int) - solution: "def divideThemInt(num_a, num_b):\n return (num_a // num_b, num_a %\ - \ num_b)\n" - tags: '' - teardown: '' - text: "Write a function that divides two integers and returns a tuple with the first\ - \ value equal to the integer diviion result, and teh second value equal to the\ - \ remainder. \n\nE.g:\ndef divideThemInt(num_a, num_b):\n #your code here\n\ - \ return (sum_of_them, remainder)\n" - unittests: - test1: - - int(7) - - int(5) - test2: - - int(-3) - - int(1) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -basic_math_5: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: divideThem(int, int) -> float - solution: "def divideThem(num_a, num_b):\n return float(num_a) / float(num_b)\n" - tags: '' - teardown: '' - text: "Write a function that divides two integers and returns a floating point result.\n\ - Note: the result should be a float even if the division has no remainder...\n\n\ - E.g:\ndef divideThem(num_a, num_b):\n #your code here\n return the_result\n" - unittests: - test1: - - int(7) - - int(5) - test2: - - int(-3) - - int(6) - test3: - - randint(1,100) - - randint(1,100) - test4_x4: - - randint(1,1000) - - randint(1,5) -basic_math_6: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: convertCToF(int) -> float - solution: "def convertCToF(temp_in_c):\n return temp_in_c/5.0 + 32.0/9.0\n" - tags: '' - teardown: '' - text: "Write a function that accepts a temperature in Centigrade and returns an\n\ - equivelant temperature in Farenheight. \n\nThe equation for this is (f = c/5 +\ - \ 32/9)\n\nE.g:\ndef convertCToF(temp_in_c):\n #your code here\n return\ - \ temp_in_f\n" - unittests: - test1: - - int(7) - test2: - - int(-3) - test3: - - randint(-100,-1) - test4_x4: - - randint(-1000,-1) -branching_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: getTruthiness(obj) -> string - solution: "def getTruthiness(obj):\n if obj:\n resulting_word = \"tequilla\"\ - \n else:\n resulting_word = \"margarita\"\n return resulting_word\n" - tags: '' - teardown: '' - text: "Create a function called getTruthiness that is given an objct and, if\nthat\ - \ object evaluates True, returns \"tequilla\", otherwise it returns,\n\"margarita\"\ - . \n\nE.g:\ndef getTruthiness(obj):\n #your code here\n return resulting_word\n" - unittests: - test1: - - true - test2: - - '""' - test3: - - '"a"' - test4: - - '"()"' -branching_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: twosTruthiness(bool, bool, bool, bool) -> string - solution: "def twosTruthiness(obj0, obj1, obj2, obj3):\n items = (obj0, obj1,\ - \ obj2, obj3)\n count = len([o for o in items if o == True])\n if count\ - \ == 2:\n resulting_word = \"twos\"\n elif count == 3:\n resulting_word\ - \ = \"threes\"\n else:\n resulting_word = \"foobar\"\n return resulting_word\n" - tags: '' - teardown: '' - text: "Create a function called twosTruthiness that is given four boolean values.\n\ - if any two of the four are True, then return \"twos\". If any three of them are\n\ - True, then return \"threes\", if less than two or four of them are True, then\n\ - return \"foobar\"\n\nE.g:\ndef twosTruthiness(obj, obj, obj, obj):\n #your\ - \ code here\n return resulting_word\n" - unittests: - test1: - - (True, True, False, False) - test2: - - (False, True, False, True) - test3: - - (True, True, False, True) - test4: - - (True, True, True, True) -branching_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: carmenFound(dict) -> string - solution: "def carmenFound(cities):\n for city in cities:\n if cities[city]\ - \ == True:\n return city\n" - tags: '' - teardown: '' - text: "Create a function called carmenFound that is given a dictionary with a list\ - \ of\ncity names as keys, each associated with a boolean value indicating whether\n\ - or not Carmen is in the city. Return the name of the city Carmen is found in!\n\ - \nE.g:\ndef carmenFound(cities):\n #your code here\n return city_name\n" - unittests: - test1: - - atlanta: true - menphis: false - redding: false - test2: - - atlanta: false - menphis: true - redding: false -dictionaries_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: pocketContents() -> dict - solution: "def pocketContents():\n inventory = {\n 'gold' : 500,\n \ - \ 'pouch' : ['flint', 'twine', 'gemstone'],\n 'backpack' : ['xylophone','dagger',\ - \ 'bedroll','bread loaf']\n }\n inventory['pocket'] = ['seashell']\n \ - \ return inventory\n" - tags: '' - teardown: '' - text: "Given the following dictionary called \"inventory\", modify the pocketContents\n\ - function to add a 'pocket' into the dictionary with contents 'seashell'\n(a single\ - \ string in a list).\n\nE.g:\ndef pocketContents():\n inventory = {\n \ - \ 'gold' : 500,\n 'pouch' : ['flint', 'twine', 'gemstone'],\n \ - \ 'backpack' : ['xylophone','dagger', 'bedroll','bread loaf']\n }\n\n return\ - \ inventory\n" - unittests: - test1: - - '" rofl this is cool "' - test2: - - '" ABCDS"' - test3: - - '"zABCDS "' -dictionaries_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: myPricesDict() -> dict - solution: "def myPricesDict():\n my_prices = {\"bananna\": 4, \"apple\": 2, \"\ - orange\": 1.5, \"pear\": 3}\n return my_prices\n" - tags: '' - teardown: '' - text: "Put the following items into a prices dictionary and return it:\n \"bananna\"\ - : 4,\n \"apple\": 2,\n \"orange\": 1.5,\n \"pear\": 3\n\nE.g:\ndef myPricesDict():\n\ - \ #your code here\n return my_prices\n" - unittests: - test1: null -dictionaries_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: mergeToDict(list, list) -> dict - solution: "def mergeToDict(keys, values):\n resulting_dict = dict(zip(keys, values))\n\ - \ return resulting_dict\n" - tags: '' - teardown: '' - text: "Given a list of keys and a list of corresponding values, create a dictionary\n\ - containing them and return it as output. You may assume that both lists will\n\ - always be the same length.\n\nFor example, if the keys were ('color', 'flavor',\ - \ 'texture') and the values\nwere ('red', 'sour', and 'rough'), the dictionary\ - \ would look like:\n{'color': 'red', 'flavor': 'sour', 'texture': 'rough'}\n\n\ - E.g:\ndef mergeToDict(keys, values):\n #your code here\n return resulting_dict\n" - unittests: - test1: - - (1, 2, 3, 4) - - (5, 6, 7, 8) - test2: - - ('1', '2', '3', '4') - - ('a', 'b', 'c', 'd') - test3: - - ('1', '2', '3', '4') - - ([1,], [2,], [3,], [4,]) -dictionaries_4: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: getDictKeys(dict) -> list - solution: "def getDictKeys(a_dictionary):\n return a_dictionary.keys()\n" - tags: '' - teardown: '' - text: "Write a function called getDictKeys that is given a dictionary and returns\ - \ a \nlist of keys in the given dictionary. \n\nE.g:\ndef getDictKeys(a_dictionary):\n\ - \ # do stuff here\n return all_the_keys\n" - unittests: - test1: - - a: 1 - b: 2 - c: 3 - test2: - - 1: 1 - c: None - ('a': null - ): 2 - b: {} - a: [] -dictionaries_5: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: checkKeyExists(dict, key) -> bool - solution: "def getDictKeys(a_dictionary):\n return a_dictionary.keys()\n" - tags: '' - teardown: '' - text: "Write a function called checkKeyExists that is given a dictionary and a key\ - \ and\nreturns True if the key exists in the dictionary or False if it does not.\ - \ \n\nE.g:\ndef checkKeyExists(a_dictionary, the_key):\n # do stuff here\n\ - \ return exists_bool\n" - unittests: - test1: - - a: 1 - b: 2 - - a - test2: - - a: 1 - b: 2 - - 1 - test3: - - a: 1 - b: 2 - - b - test4: - - a: 1 - b: 2 - - c - test5: - - a: 1 - b: 2 - - '2' -dictionaries_6: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: checkKeysExist(dict, keys) -> dict - solution: "def checkKeysExists(the_dict, keys):\n out = {}\n for key in keys:\n\ - \ out[key] = key in the_dict\n return out\n" - tags: '' - teardown: '' - text: "Write a function called checkKeysExists that is given a dictionary and a\ - \ list\nof keys to look for in teh dictionary. The function returns a new dictionary\n\ - containing each key in the provided list with an associated boolean value\nindicating\ - \ whether or not the key from the list was found in the given\ndictionary.\n\n\ - As an example, if given {'a': 0, 'b': 1} and ['a', 'c'] for keys, the output\n\ - would be {'a': True, 'c': False}. \n\nE.g:\ndef checkKeysExists(a_dictionary,\ - \ some_keys):\n # do stuff here\n return exists_dict\n" - unittests: - test1: - - a: 12 - b: 2 - - - a - - c - - d - test2: - - a: 1 - b: 2 - - () -dictionaries_7: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: printGivenKeys(dict, list) - solution: "def checkKeysExists(the_dict, keys):\n out = {}\n for key in keys:\n\ - \ out[key] = key in the_dict\n return out\n" - tags: '' - teardown: '' - text: "Write a function called printGivenKeys that is given a dictionary and a list\n\ - of keys to look for in teh dictionary. For each item in the list, the function\n\ - prints the item and the value associated with it in the provided dictionary.\n\ - If the item is not in the dictionary, None is used for the value. \n\nAs an example,\ - \ if given {'a': 0, 'b': 1} and ['a', 'c'] for keys, it would \nprint:\na, 0\n\ - c, None\n\nE.g:\ndef printGivenKeys(a_dictionary, some_keys):\n # do stuff\ - \ here\n # return nothing\n" - unittests: - test1: - - a: 12 - b: 2 - - - a - - c - - d - test2: - - a: 1 - b: 2 - - () -lists_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: sumAllItems(list of num) -> number - solution: "def sumAllItmes(some_nums):\n the_sum = 0\n for num in some_nums:\n\ - \ the_sum += num\n return the_sum\n" - tags: '' - teardown: '' - text: "write a function called sumAllItems that accepts a list or tuple of numbers,\ - \ \nsumms them, and returns the sum. \n\nE.g:\ndef sumAllItmes(some_nums):\n \ - \ # do stuff here\n return the_sum\n" - unittests: - test1: - - - 1 - - 2 - - 3 - - 4 - - 5 - test2: - - - -5 - - 2.2 - - 999 - - -1000.0 - test3: - - - 1 - - -2 - - 4 - - -6 - - 123.1 -lists_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: smallestOfList(list of numbers) -> number - solution: "def smallestOfList(some_nums):\n smallest = some_nums[0]\n for\ - \ num in some_nums:\n if num tuple - solution: "def convTupleUnique(some_items):\n return tuple(set(some_items))\n" - tags: '' - teardown: '' - text: "Write a function called convTupleUnique(list) that accepts a list of objects\n\ - and returns a tuple (not a list) with only the unique items from the list. \n\ - Order of the returned list is not important.\n\nE.g:\ndef convTupleUnique(some_items):\n\ - \ # do stuff here\n return unique_items\n" - unittests: - test1: - - asfd - - b - - b - - c - - b - - '1' - - '2' - - b - - a -sets_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: convTupleUniqueOrder(list) -> tuple - solution: "def convTupleUniqueOrder(some_items):\n out = []\n for item in\ - \ some_items:\n if item in out:\n continue\n out.append(item)\n\ - \ return tuple(out)\n" - tags: '' - teardown: '' - text: "Write a function called convTupleUniqueOrder(list) that accepts a list of\n\ - objects and returns a tuple (not a list) with only the unique items from the\n\ - list. Order of the returned tuple IS important. Order from the original list\n\ - should be preserved; the first time an object is observed in the given list, \n\ - it is in the returned tuple, and subsequent occurences are ignored. \n\nE.g:\n\ - def convTupleUniqueOrder(some_items):\n # do stuff here\n return unique_items\n" - unittests: - test1: - - asfd - - b - - b - - c - - b - - '1' - - '2' - - b - - a -sets_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: createSet(obj, obj, obj, obj, obj) -> set - solution: "def createSet(obj1=None, obj2=None, obj3=None, obj4=None, obj5=None):\n\ - \ new_set = set()\n for obj in (obj1, obj2, obj3, obj4, obj5):\n \ - \ if obj != None:\n new_set.add(obj)\n return new_set\n" - tags: '' - teardown: '' - text: "Write a function called createSet that accepts up to five objects, adds them\n\ - into a set, and returns a set of those objects. Hint: \"set\" is a data type.\ - \ \nDo not add any of the objects fo the set if the object is equal to the None\n\ - object.\n\nE.g:\ndef createSet(obj1=None, obj2=None, obj3=None, obj4=None, obj5=None):\n\ - \ # do stuff here\n return new_set\n" - unittests: - test1: - - asfd - - b - - b - - c - - b - - '1' - - '2' - - b - - a -sets_4: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: removeFromSet(set, obj) -> tuple - solution: "def removeFromSet(a_set, an_obj):\n if an_obj in a_set:\n a_set.remove(an_obj)\n\ - \ return tuple(a_set)\n" - tags: '' - teardown: '' - text: "Write a function called removeFromSet that accepts a set and an object. \ - \ If\nthe object exists in the set, then it is removed. The resulting set is\n\ - converted to a tuple and returned. \n\nE.g:\ndef removeFromSet(a_set, an_obj):\n\ - \ # do stuff here\n return new_tuple\n" - unittests: - test1: - - asfd - - b - - b - - c - - b - - '1' - - '2' - - b - - a -strings_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: returnWithQuotes() -> string - solution: "def returnWithQuotes():\n my_string = \"\"\"'It's modulus, \"%\",\ - \ not division, \"/\", or escaping \"\\\"!'\"\"\"\n return my_string\n \n" - tags: '' - teardown: '' - text: "Write a function called returnWithQuotes that takes no arguments and, when\n\ - called, returns the following text (no whitespace on the ends), but with all quotes\ - \ shown included in the string:\n\n 'It's modulus, \"%\", not division, \"\ - /\", or escaping \"\\\"!'\n\nE.g:\ndef returnWithQuotes():\n # do stuff here\n\ - \ return my_silly_string\n" - unittests: null -strings_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: strUpper(string) -> string - solution: "def strUpper(foo):\n return foo.strip().upper()\n" - tags: '' - teardown: '' - text: "Write a function called \"strUpper\" that takes a string as an argument and\n\ - returns the string without any whitespace on the ends and all upper case.\n\n\ - E.g:\ndef strUpper(foo):\n # do stuff here\n return foo\n" - unittests: - test1: - - str(' rofl this is cool ') - test2: - - str(' ABCDS') - test3: - - str('zABCDS ') -strings_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: firstHalfLower(string) -> string - solution: "def firstHalfLower(foo):\n length = int(len(foo) / 2)\n result\ - \ = foo[:length].lower()\n assert(len(result) * 2 <= len(foo))\n return\ - \ result\n" - tags: '' - teardown: '' - text: "Write a function called \"firstHalfLower\" that takes a string as an argument\ - \ and\nreturns the first half of the string, all lower case. When calculating\ - \ how many\ncharacters of the string to return, round down - an 11 character string\ - \ would\nresult in 5 characters being returned.\n\nE.g:\ndef firstHalfLower(foo):\n\ - \ # do stuff here\n return foo\n" - unittests: - test1: - - str(' ro3! T2is is cool ') - test2: - - str(' ABCDS') - test3: - - str('zABCDS ') - test4: - - str('123456789') -strings_4: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: justEvenChars(string) -> (string) - solution: "def justEvenChars(foo):\n return foo[::2]\n" - tags: '' - teardown: '' - text: "Write a function called \"justEvenChars\" that takes a string as an argument\ - \ and\nreturns only even numbered characters from the string. If the string is\ - \ \"coolio\", the result would be \"coi\", treating the zeroth characte as even\ - \ (0%2==0). \n\nE.g:\ndef justEvenChars(foo):\n # do stuff here\n return\ - \ foo\n" - unittests: - test1: - - str(' ro3! T2is is cool ') - test2: - - str(' ABCDS') - test3: - - str('zABCDS ') - test4: - - str('123456789') -strings_5: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: reverseOrder(string) -> string - solution: "def reverseOrder(foo):\n foo = foo.strip()\n foo.split()\n foo\ - \ = foo[::-1]\n foo = \" \".join(foo)\n return foo\n" - tags: '' - teardown: '' - text: "Write a function called \"reverseOrder\" that takes a string as an argument\ - \ and\nreturns another string with all of the whitespace delimetered words in\ - \ the\nreverse order, not taking any special consideration for number/symbols.\ - \ KISS.\nIf the string, \" one1 tw_o thREE four!\" is passed in, \"four! thREE\ - \ tw_0 one1\"\nwould be returned. Strip any whitespace from the ends of hte given\ - \ string.\n\nE.g:\ndef reverseOrder(foo):\n # do stuff here\n return foo\n" - unittests: - test1: - - str('ro3! T2is is cool') - test2: - - str(' ABCDS') - test3: - - str('zABCDS one two three!') - test4: - - str('123456789 asdf ASDF 4 _ 123 nine? \"\"') -strings_6: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: listToCSV(list) -> string - solution: "def listToCSV(words_list):\n csv_string = ','.join(words_list)\n \ - \ return csv_string\n" - tags: '' - teardown: '' - text: "Write a function called \"listToCSV\" that takes a list of strings and combines\n\ - them into a single string with all words separated by a comma: \",\". For\nexample,\ - \ [\"one\", 'two', 'three'] becomes \"one,two,three\".\n\nE.g:\ndef listToCSV(words_list):\n\ - \ # do stuff here\n return csv_string\n" - unittests: - test1: - - - one - - two - - three - test2: - - - '1' - - ',' - - ':' - - fiftyfive -strings_7: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: undToShortCSV(string) -> string - solution: "def listToCSV(words_list):\n csv_string = ','.join(words_list)\n \ - \ return csv_string\n" - tags: '' - teardown: '' - text: "Write a function called \"undToShortCSV\" that takes a string with words\n\ - separated by underscores, \"_\", changes the underscores to commas, \",\", and\n\ - returns only the first three words. You can assume that there will always\nbe\ - \ more than three words separated by underscore given. \n\nFor exmaple, \"one_two_three_four_five\"\ - \ becomes \"one,two,three\".\n\nE.g:\ndef undToShortCSV(und_sep_words):\n #\ - \ do stuff here\n return csv_sep_words\n" - unittests: - test1: - - str('one_two_three_four_five') - test2: - - _______ - test3: - - str('1_2_3__five_six!\'\'_seven') -strings_8: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: getIndexOf(string, string) -> int - solution: "def getIndexOf(word, search_string):\n if word in search_string:\n\ - \ return search_string.index(word)\n else:\n return -1\n" - tags: '' - teardown: '' - text: "Wirte a functuion called \"getIndexOf\" that returns the index of a given\ - \ word\ninside of a given string. If the word is not present, it returns a -1.\ - \ \n\nFor exmaple, if the word is \"pizza\", and the search_string is \"there\ - \ is pizza on the plate\", then the index is 9.\n\nE.g:\ndef getIndexOf(word,\ - \ search_string):\n # do stuff here\n return index \n" - unittests: - test1: - - str('one_two_three_four_five') - test2: - - str('_______') - test3: - - str('1_2_3__five_six!\'\'_seven') -strings_9: - imports: '' - posttest: '' - pretest: '' - seed: 0 - setup: '' - signature: fooBarString(foo) -> bar - solution: "def getIndexOf(word, search_string):\n if word in search_string:\n\ - \ return search_string.index(word)\n else:\n return -2\n" - tags: '' - teardown: 'print(''foobar'') - - self.test_results = [True, True, True]' - text: "Wirte a functuion called \"getIndexOf\" that returns the index of a given\ - \ word\ninside of a given string. If the word is not present, it returns a -1.\ - \ \n\nFor exmaple, if the word is \"pizza\", and the search_string is \"there\ - \ is pizza\non the plate\", then the index is 9.\n\nE.g:\ndef getIndexOf(word,\ - \ search_string):\n # do stuff here\n return index \n" - unittests: skip From 0f9fe437adc88d5bf94cee042bde58a20b0289a7 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:21:39 -0800 Subject: [PATCH 005/163] Delete problems.md --- 3-files_and_paths/problems.md | 57 ----------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 3-files_and_paths/problems.md diff --git a/3-files_and_paths/problems.md b/3-files_and_paths/problems.md deleted file mode 100644 index 696a6e4..0000000 --- a/3-files_and_paths/problems.md +++ /dev/null @@ -1,57 +0,0 @@ -Tier, description... - -# Opening, reading, writing -* readFileToString(path_to_file) -> string - * 30 - * Given a path to a file, read it's contents and return the contents as a string. - -* readLinesfromFiles(path_to_file) -> list of strings - * 30 - * Given a path to a file, read it's contents and return each line as a string in a list of all lines. - -* appendLinetoFile(path_to_file, content) - * 30 - * Given a path to a file and a string value, "content", write the content to a new line at the end of the file. - -* truncateWriteFile(path_to_file, content) - * 30 - * Given a path to a file and a string value, "content", write the content to the file, replacing anything that is - already there. If the fle doesnt' exist, it is assumend that it would be created. - -* rewriteInLower(source_file, dest_file): - * 31 - * given a source file path and a destination file path, read the file from the source and then write it out to the - dest path in all lower-case. - -* removeWhitespace(file_path): - * 32 - * given a file path, read in the file content. remove whitespace from the start and end of each line. remove any empty - or whitespace-only lines. Then write the content back to the file replacing the original content. - -# os module -## os basics -* moveAFile(source_path, dest_path) - * 30 - * Given a source path and destination path, move the file from source to destination. -* cdAndWrite(dir_path, file_name, content) - * 34 - * Change directory to the given "dir_path", then write the given content to the given file_name. -* listDirFilter(dir_path, filter) - * 34 - * return a list of files at a given path whos names match the given filter. -* createTmpDir(dir_name) - * 33 - * create a directory in /tmp with the given name and return the path to the new directory -* realPath(path) - * 34 - * given a path, find out if it contains a symlink. If so, return the actual path to where the given path points. If no symlinks, return the given path. -* filePaths(dir_path, files_list) - * 34 - * given a directory path and a list of file, create a list of complete paths to each file (dir_path + file path) - -## permissions -* tarDir(src_dir, dst_tar) - * 34 - * given a source directory containing files, create a tar file at the given dst_tar (e.g. /tmp/my_stuff.tar) and add the - directory and its contents into the tar file. -# Tar From 672179a2f4610a9220feca6e982fb9d14ca37023 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:21:53 -0800 Subject: [PATCH 006/163] Delete problems.yml --- 3-files_and_paths/problems.yml | 372 --------------------------------- 1 file changed, 372 deletions(-) delete mode 100644 3-files_and_paths/problems.yml diff --git a/3-files_and_paths/problems.yml b/3-files_and_paths/problems.yml deleted file mode 100644 index 2a37326..0000000 --- a/3-files_and_paths/problems.yml +++ /dev/null @@ -1,372 +0,0 @@ -os_basics_1: - imports: 'import shutil - - import random - - import string - - import os' - posttest: '' - pretest: '' - seed: 0 - setup: '' - signature: moveAFile(src_path, dst_path) - solution: "\ndef moveAFile(src_path, dst_path):\n shutil.move(src_path, dst_path)\n" - tags: - - sample - - arithmatic - teardown: "\nf0 = './{{}}'.format(''.join(random.choices(string.ascii_uppercase,\ - \ k=10)))\nf1 = './{{}}'.format(''.join(random.choices(string.ascii_uppercase,\ - \ k=10)))\nopen(f0, 'w').write('asdf\\n123')\n\n#try:\nmoveAFile(f0, f1)\n#except\ - \ Exception as e:\n# print(\"Exception: {{}}\".format(e))\n\nprint(\"SRC:\"\ - , f0)\nprint(\"DST:\", f1)\n\nif os.path.isfile(f1):\n self.test_results.append('pass')\n\ - else:\n self.test_results.append('failed to copy file to dst')\n\nif not os.path.isfile(f0):\n\ - \ self.test_results.append('pass')\nelse: \n self.test_results.append('failed\ - \ to rm src file')\n\nif ( self.test_results[0] == 'pass'\n and open(f1,\ - \ 'r').read() == 'asdf\\n123' ):\n self.test_results.append('pass')\nelse:\n\ - \ self.test_results.append('failed preserver file contents')\n\n#cleanup\n\ - if os.path.isfile(f0):\n os.remove(f0)\nif os.path.isfile(f1):\n os.remove(f0)\n" - text: "Write a function called moveAFile that accepts a source file path and a dest\ - \ file path and\nmoves the file to the destination. \n\nE.g.\ndef moveAFile(src_path,\ - \ dst_path):\n #your code here\n #return nothing\n" - tier: 30 - unittests: skip -os_basics_1b: - imports: 'import shutil - - import random - - import string - - import os' - posttest: '' - pretest: '' - setup: 'f0 = ''./{{}}''.format(''''.join(random.choices(string.ascii_uppercase, - k=10))) - - f1 = ''./{{}}''.format(''''.join(random.choices(string.ascii_uppercase, k=10))) - - open(f0, ''w'').write(''asdf\n123'') - - ' - signature: moveAFile(src_path, dst_path) - solution: "\ndef moveAFile(src_path, dst_path):\n shutil.move(src_path, dst_path)\n" - tags: - - sample - - arithmatic - teardown: "\nf0 = './{{}}'.format(''.join(random.choices(string.ascii_uppercase,\ - \ k=10)))\nf1 = './{{}}'.format(''.join(random.choices(string.ascii_uppercase,\ - \ k=10)))\nopen(f0, 'w').write('asdf\\n123')\n\n#try:\nmoveAFile(f0, f1)\n#except\ - \ Exception as e:\n# print(\"Exception: {{}}\".format(e))\n\nprint(\"SRC:\"\ - , f0)\nprint(\"DST:\", f1)\n\nif os.path.isfile(f1):\n self.test_results.append('pass')\n\ - else:\n self.test_results.append('failed to copy file to dst')\n\nif not os.path.isfile(f0):\n\ - \ self.test_results.append('pass')\nelse: \n self.test_results.append('failed\ - \ to rm src file')\n\nif ( self.test_results[0] == 'pass'\n and open(f1,\ - \ 'r').read() == 'asdf\\n123' ):\n self.test_results.append('pass')\nelse:\n\ - \ self.test_results.append('failed preserver file contents')\n\n#cleanup\n\ - if os.path.isfile(f0):\n os.remove(f0)\nif os.path.isfile(f1):\n os.remove(f0)\n" - text: "Write a function called moveAFile that accepts a source file path and a dest\ - \ file path and\nmoves the file to the destination. \n\nE.g.\ndef moveAFile(src_path,\ - \ dst_path):\n #your code here\n #return nothing\n" - unittests: skip -os_basics_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: cdAndWrite(dir_path, file_name, content) -> file_size - solution: "\ndef cdAndWrite(dir_path, file_name, content):\n import os\n os.chdir(dir_path)\n\ - \ open(file_name, 'w').write(content)\n return os.stat(file_name).st_size\n" - tags: - - sample - - arithmatic - teardown: "\nimport random\nimport string\nimport os\ncwd = os.getcwd()\nd0 = ''.join(random.choices(string.ascii_uppercase,\ - \ k=10))\np0 = './{{}}'.format(d0)\nf0 = './{{}}'.format(''.join(random.choices(string.ascii_uppercase,\ - \ k=10)))\ncontent = 'asdf\\n123\\nfoobar\\n\\n'\nos.mkdir(d0)\n\ntry:\n cdAndWrite(d0,\ - \ f0, content)\nexcept:\n pass\n\nif os.getcwd().endswith(d0):\n self.test_results.append('pass')\n\ - else:\n self.test_results.append('failed cd to given directory')\n\nif ( self.test_result[0]\ - \ == 'pass'\n\t and if os.path.isfile(f0) ):\n self.test_results.append('pass')\n\ - else:\n self.test_results.append('failed to write file...')\n\nif ( self.test_result[0]\ - \ == 'pass'\n\t\tand self.test_result[1] == 'pass' \n and open(f0, 'r').read()\ - \ == content ):\n self.test_results.append('pass')\nelse:\n self.test_results.append('failed\ - \ preserver file contents')\n\n# cleanup\nif os.path.isfile(f0):\n\tos.remove(f0)\n\ - os.chdir(cwd)\nif os.path.isdir(p0):\n os.rmdir(p0)\n" - text: "Write a function called cdAndWrite that changes directory to the given path,\ - \ then edits a file\nand writes the given content to it. Return the size of the\ - \ file in bytes! \n\nE.g.\ndef cdAndWrite(dir_path, file_name, content):\n \ - \ #your code here\n return file_size\n" - tier: 35 - unittests: skip -os_basics_3: - imports: import random\nimport string\nimport os\nimport re\n - posttest: '' - pretest: '' - seed: 0 - setup: '' - signature: listDirFilter(dir_path, regex_filter) - solution: "\ndef listDirFilter(dir_path, regex_filter):\n import re\n out\ - \ = []\n for name in os.listdir(dir_path):\n if re.match(regex_filter,\ - \ name):\n out.append(name)\n return out\n\n" - tags: - - sample - - arithmatic - teardown: "\nimport random\nimport string\nimport os\nimport re\ne0 = ''.join(random.choices(string.ascii_uppercase,\ - \ k=4))\ne1 = ''.join(random.choices(string.ascii_uppercase, k=4))\nfor e in (e0,\ - \ e1):\n for n in range(5):\n f = \"{{}}.{{}}\".format(n, e)\n \ - \ open(f, 'w')\nreg_filter = '(./){0,1}[0-9].' + e0\ntry:\n out = listDirFilter('./',\ - \ reg_filter)\nexcept:\n out = []\n\nif len(out) == 5:\n self.test_results.append('pass')\n\ - else:\n self.test_results.append('failed wrong num files returned')\n\nif len(set(out))\ - \ == 5:\n self.test_results.append('pass')\nelse:\n self.test_results.append('failed\ - \ duplicate files returned')\n\nself.test_results.append('failed wrong files returned')\n\ - for f in out:\n if not re.match(reg_filter, f):\n break\nelse:\n \ - \ self.test_results[-1] = 'pass'\n\nfor e in (e0, e1):\n for n in range(5):\n\ - \ f = \"{{}}.{{}}\".format(n, e)\n if os.path.exists(f):\n \ - \ os.remove(f)\n\n" - text: "Write a function called listDirFilter that accepts a directory path and a\n\ - regex filter. It retuns a list of files at the directory path whos names\nmatch\ - \ the given regex. Return only the file names, not their complete path. \n\n\ - E.g.\ndef listDirFilter(dir_path, regex_filter):\n #your code here\n return\ - \ files_list\n" - tier: 35 - unittests: skip -os_basics_4: - imports: import random\nimport string\nimport os\nimport re\n - posttest: '' - pretest: '' - seed: 0 - setup: '' - signature: createTmpDir(dir_name) -> dir_path - solution: "\ndef createTmpDir(dir_name):\n #os.umask(0077)\n dir_path = '/tmp/{}'.format(dir_name)\n\ - \ print('creating dir: {}'.format(dir_path))\n os.mkdir(dir_path)\n return\ - \ dir_path\n" - tags: - - sample - - arithmatic - teardown: "\nimport random\nimport string\nimport os\nimport re\nd0 = ''.join(random.choices(string.ascii_uppercase,\ - \ k=4))\np0 = '/tmp/{{}}'.format(d0)\n\ntry:\n out = createTmpDir(d0)\nexcept:\n\ - \ out = ''\n\nprint('p0:', p0)\nif out.strip() == p0:\n self.test_results.append('pass')\n\ - else:\n self.test_results.append('failed return path was not /tmp/')\n\ - \nif os.path.isdir(p0):\n self.test_results.append('pass')\n os.rmdir(p0)\n\ - else:\n self.test_results.append('failed tmp directory was not created')\n\n" - text: "Write a function called createTmpDir that accepts a directory name and\n\ - creates it in /tmp. Set the permissions so that only the directory owner\ncan\ - \ read/write/execute it. Return the complete path to the directory. \n\nBonus:\ - \ Can you do this in a way that avoids a race condition security\nvulnerability?\ - \ \n\nE.g.\ndef createTmpDir(dir_name):\n #your code here\n return dir_path\n" - tier: 35 - unittests: skip -os_basics_5: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: realPath(path) - solution: "\ndef realPath(dir_name):\n return os.path.realpath(dir_name)\n" - tags: - - sample - - arithmatic - teardown: ' - - ' - text: "Write a function called realPath that accepts a path, checks if it has any\ - \ symlinks in it,\nand returns the actual path (wihout symlinks) to the file or\ - \ directory the original path\npointed to. \n\nE.g.\ndef realPath(dir_name):\n\ - \ # your code here\n return real_path\n" - tier: 31 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -os_basics_6: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: filePaths(dir_path, files_list) -> file_paths list - solution: "\ndef filePaths(dir_path, files_list):\n out = []\n for fname in\ - \ files_list:\n fpath = os.path.realpath(os.path.join(dir_path, fname))\n\ - \ out.append(fpath)\n return out\n" - tags: - - sample - - arithmatic - teardown: '' - text: "Write a function called filePaths that accepts a directory path and a list\ - \ of files. It\nreturns a list of full paths to those files. \n\nFor example,\ - \ if dir_path is '/tmp/' and files list is ['./foobar.txt', 'diddun.txt'], the\ - \ output would be ['/tmp/foobar.txt', '/tmp/diddun.txt'].\n\nE.g.\ndef filePaths(dir_path,\ - \ files_list):\n # your code here\n return files_paths\n" - tier: 34 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -readwrite_1: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: readFileToString(path) -> string - solution: "\ndef readFileToString(path):\n with open(path, 'r') as f:\n \ - \ contents = f.read()\n return contents\n" - tags: - - sample - - arithmatic - teardown: ' - - ' - text: "Write a function called readFileToString that accepts a path, opens the path,\n\ - and returns the contents of the file as a string value. You can assume that \n\ - you'll have access to the file, it won't be binary data, you don't need to do\n\ - anything to the given path to open it. \n\nE.g.\ndef readFileToString(path_to_file):\n\ - \ #your code here\n return contents\n" - tier: 30 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -readwrite_2: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: readLiensFromFile(path) -> list of strings - solution: "\ndef readLinesFromFile(path):\n with open(path, 'r') as f:\n \ - \ contents = f.readlines()\n return contents\n" - tags: - - sample - - arithmatic - teardown: '' - text: "Write a function called readLinesFromFiles that accepts a path, reads the\ - \ contents, and\nreturns a list of stings for each line in the file. \n\nE.g.\n\ - def readLinesFromFile(path_to_file):\n #your code here\n return contents\n" - tier: 30 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -readwrite_3: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: appendLineToFile(path, string) - solution: "\ndef appendLineToFile(path, content):\n with open(path, 'a') as f:\n\ - \ f.write(content)\n" - tags: - - sample - - arithmatic - teardown: '' - text: "Write a function called appendLineToFile that accepts a path and a string,\ - \ and writes the\nstring to the end of the file (without modifying the existing\ - \ contents in the file).\n\nE.g.\ndef appendLineToFile(path, content):\n #your\ - \ code here\n #return nothing\n" - tier: 30 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -readwrite_4: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: truncateWriteFile(path, content) - solution: "\ndef truncateWriteFile(path, content):\n with open(path, 'w') as\ - \ f:\n f.write(content)\n" - tags: - - sample - - arithmatic - teardown: '' - text: "Write a function called truncateWriteFile that accepts a path and a string,\ - \ and writes the\nstring to the file, truncating (overwriting) any existing content\ - \ in the file. \n\nE.g.\ndef truncateWriteFile(path, content):\n #your code\ - \ here\n #return nothing\n" - tier: 30 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -readwrite_5: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: rewriteInLower(source_path, dest_path) - solution: "def rewriteInLower(source_path, dest_path):\n contents = open(source_path,\ - \ 'r').read().lower()\n open(dest_path, 'w').write(contents)\n" - tags: - - sample - - arithmatic - teardown: '' - text: "Write a function called rewriteInLower that accepts a source and destination\ - \ path. It reads\nin the source path, converts the contents to all lower case,\ - \ and writes them to the\ndestination path. \n\nE.g.\ndef rewriteInLower(source_path,\ - \ dest_path):\n #your code here\n #return nothing\n" - tier: 31 - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) From dda191261446f96a8fee22339eb43e4d99b081ce Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:22:15 -0800 Subject: [PATCH 007/163] Delete problems.md --- 4-system_and_env/problems.md | 56 ------------------------------------ 1 file changed, 56 deletions(-) delete mode 100644 4-system_and_env/problems.md diff --git a/4-system_and_env/problems.md b/4-system_and_env/problems.md deleted file mode 100644 index f04fb63..0000000 --- a/4-system_and_env/problems.md +++ /dev/null @@ -1,56 +0,0 @@ -# os module -* def getEnvironVariable(string) -> string - * 40 - * Given the name of an env variable, return the value of that environment variable. -* setEnvironVariable(string, string) - * 40 - * Given the name of an env variable and a value to set it to, set the value to the var. -* nPendEnvPath([paths], prepend=False, append=False) - * 41 - * Given a list of paths, either prepend them to the environment PATH variable or append them, depending on which - arg is true, and do nothing of neither prepend or append is True. -* - - -# sys module -* getScriptLocName() -> (real_path, file_name) - * 41 - * Use sys.argv to get and return the path to the program that's being run and the name of the program as a tuple. -* checkDebugArg() -> bool - * 41 - * Check the progam args (sys.argv) to see if the user passed in a -d or --debug flag. if so, return True, otherwise - return false. -* parseArgs1() -> dictionary - * 42 - * Write a functoin that will parse the arguments for some fine program. The program allows the following argumetns: - our_prog.py \[--num_tries ] [--user_name ] [--fail_message dictionary - * 42 - * Redo parseArgs1 but use the argparse module. Put your function in its own script to test, check the output you get - for --help. - -# platform -* n/a - -# subprocess -* runGetOutputShell(command) -> string - * 43 - * use subprocess check_output to run the given command and return its output. - Assume that the command will be a string. - and set shell=True. - If there is an exception (any), return None. -* runGetOutput(command) -> string - * 44 - * check if command is a string or a list. Set shell=True if it is a list, otherwise, leave it as false (unset). - Same as above, catch any exceptoins and return None, or return the ouptut of the given command as a string. -* runGetStatus(command) -> bool - * 44 - * run the given command and return True if the exit status is 0, or False if the exit status is not zero. - * Return None for any exceptions. - * Assume tha the command will be a list and keep shell=False. - From d8d6f137229b10a8fb5e808bee5ff6af79c104f0 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:22:32 -0800 Subject: [PATCH 008/163] Delete problems.yml --- 4-system_and_env/problems.yml | 60 ----------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 4-system_and_env/problems.yml diff --git a/4-system_and_env/problems.yml b/4-system_and_env/problems.yml deleted file mode 100644 index 607b1a5..0000000 --- a/4-system_and_env/problems.yml +++ /dev/null @@ -1,60 +0,0 @@ -# Using a uuid to uniquely identify questions -4464b29f-86a1-4e4c-9261-f581d1b1c8e8: - # This is an example question - # It shows off the format used - title: addition_example - text: | - Write a function that takes 2 integers as parameter - It should return the sum of the 2 ints - signature: "add(number1: int, number2:int ) -> int" - # I'm putting this in base64, I think it might help readability. This codes to: - # def add(num_1, num_2): - # return num_1 + num_2 - solution: !!binary "ZGVmIGFkZChudW1fMSwgbnVtXzIpOgogICAgcmV0dXJuIG51bV8xICsgbnVtXzI=" - tier: 1 - unittests: - test1: - - "int(3)" - - "int(5)" - test2: - - "int(-3)" - - "int(0)" - test3: - - "randint(-100,100)" - - "randint(-100,100)" - # The x4 will mean repeat this test 4 times - test4_x4: - - "randint(-1000,1000)" - - "randint(-1,1)" - - # Used for any outside module dependancies - imports: "from random import randint, seed" - # Setup scripts to prep an environment. Run before unittests - setup: "seed({seed})" - # Teardown scripts to clean up the environment. Run after unittests - teardown: "" - # Scripts to be run before individual tests take place - pretest: "" - # Scripts to be run after infividual tests take place - posttest: "" - # Tags can be used to sort and filter questions - tags: - - sample - - arithmatic - # This is how many times the challenge has been solved - successes: 1 - # These are derived from user ratings, the data can be used as question feedback - # think of them like upvotes/downvotes, but more category specific - ratings: - challenging: 0 - useful: 0 - interesting: 0 - # The solution history, every success can be stored here. - history: - ab7511ee456ce56e64d69141b7e2241b: - code: !!binary "ZGVmIGFkZChhYWEsYmJiKToKICAgIHg9IGFhYStiYmIKICAgIHJldHVybiB4" - pep8: 0 - size: 0 - speed: 0 - memory: 0 - likes: 0 \ No newline at end of file From 60582977dfbae0d0c4ac91b157059125a02e5180 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:22:51 -0800 Subject: [PATCH 009/163] Delete problems.md --- 5-data_manipulation/problems.md | 50 --------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 5-data_manipulation/problems.md diff --git a/5-data_manipulation/problems.md b/5-data_manipulation/problems.md deleted file mode 100644 index c969ce9..0000000 --- a/5-data_manipulation/problems.md +++ /dev/null @@ -1,50 +0,0 @@ -# csv -* csvFileToArray(file_path) -> array - * 50 - * read csv text data in from the given file and return it as an array (list of lists), aka list of rows. -* arrayToCsvFile(file_path, array) - * 50 - * convert array (list of lists) to csv and write to file. -* dictToCsvFile(file_path, dict) - * 51 - * use dict keys as column one, values (list) as other columns, sort by key and write to file. - -# json -* jsonFiletoData(file_path) -> data - * 50 - * use json module to read json content from the given file, convert it to python data, and return the data. -* dataToJsonFile(file_path, data) - * 50 - * use json module to convert a given data structure to json format and write it to file. - -# yaml -* yamlFiletoData(file_path) -> data - * 50 - * use yaml module to read json content from the given file, convert it to python data, and return the data. -* dataToYamlFile(file_path, data) - * 50 - * use yaml module to convert a given data structure to json format and write it to file. - -# regex -* simpleReTest(value, regex_string) -> bool - * 50 - * given a value and a regex string, return True of the value matches the regex string or False if it - does not. -* filteredList(list, regex_string) -> list - * 51 - * Given a list of strings, use the "re" modudule to regex match the regex_string against values - in the list and return a list of matching strings. Preserve order of the orignial list. - -# sql and sqlite -* createSqliteTable(db_file, table_name, table_columns, rows) - * 54 - * given a filename, open a sqlite db using that file and create a new table using the given name and - columns. Then insert each of the provided rows of data and commit the change. If "rows" is an empty - list, then do not insert any rows to the table you just created. -* sqlitReadRows(db_file, table_name) -> array - * 51 - * given a sqlite db file, query all of the rows in the given table, and return them as an array. -* sqlitReadRowsDict(db_file, table_name) -> list of dicts - * 52 - * given a sqlite db file, query all of the rows in the given table, and a list of dictionaries, with - each row being a dictionary with keys equal to the column names and values each value for that row. From 2f8138dd3a4b79331ceafee2cf1673789fe7eec1 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 18:23:00 -0500 Subject: [PATCH 010/163] static seed until I can figure out a bug --- cobra/util/server_utility.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cobra/util/server_utility.py b/cobra/util/server_utility.py index 33d90bd..18baf11 100644 --- a/cobra/util/server_utility.py +++ b/cobra/util/server_utility.py @@ -73,7 +73,8 @@ def login_user(self, password, ip): return False def new_seed(self): - self.update_user({'seed': int(make_salt())}) + #self.update_user({'seed': int(make_salt())}) + self.update_user({'seed': int(111)}) # static seed until I can figure out a bug return self.get_seed() def get_seed(self): From b935b1942804719c5c767a28fb0ad669c21e5975 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:23:24 -0800 Subject: [PATCH 011/163] Delete check_progress.py --- check_progress.py | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 check_progress.py diff --git a/check_progress.py b/check_progress.py deleted file mode 100644 index f8436ed..0000000 --- a/check_progress.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python - -import unittest -import boot_config as bc - -def writeFile(content, path, perms=None): - with open(path, 'w') as f: - f.write(content) - if perms != None: - # TODO: add permissions setting code here. - pass - -class CheckProgress(unittest.TestCase): - def setUp(self): - pass - - def test_platformInfo_readWrite(self): - content = ('VMX_LOADED=1.2.345\n' - + 'FOO=bar\n') - writeFile(content, '/.platform_info') - self.assertEqual(bc.platformInfo('FOO'), 'bar') - self.assertEqual(bc.platformInfo('VMX_LOADED'), '1.2.345') - bc.platformInfo('ANOTHER', 'new_content') - self.assertEqual(bc.platformInfo('FOO'), 'bar') - self.assertEqual(bc.platformInfo('VMX_LOADED'), '1.2.345') - self.assertEqual(bc.platformInfo('ANOTHER'), 'new_content') - - def testgetPoolOverrides(self): - pass - -if __name__ == '__main__': - unittest.main() - From 508bd437cfde7a5ff4c0a5070017038268c457ee Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 18:31:34 -0500 Subject: [PATCH 012/163] adding debug info to server --- cobra/cobra_server.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cobra/cobra_server.py b/cobra/cobra_server.py index 480d7c1..00e6b51 100644 --- a/cobra/cobra_server.py +++ b/cobra/cobra_server.py @@ -6,7 +6,7 @@ from util.utility import decode_message, encode_message, hash_results, load_yml from util.server_utility import Questions, User, get_users, update_history, get_history from util.solution_checker import Solution - +from time import sleep class GetLessons(): def on_get(self, req, resp): @@ -24,6 +24,10 @@ def on_post(self, req, resp): username = post_info['username'] lesson = post_info['lesson'] question_label = post_info['question_label'] + print('Recieved the following information:') + print('username: {}'.format(username)) + print('lesson: {}'.format(lesson)) + print('question: {}'.format(question_label)) seed = users[username].new_seed() question = questions.get_question(lesson, question_label) question.pop('solution') From 71a4471a6ed8a2a2f4ed3afd9f429342d6a2d640 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 18:35:50 -0500 Subject: [PATCH 013/163] added more server debug messages --- cobra/cobra_server.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cobra/cobra_server.py b/cobra/cobra_server.py index 00e6b51..f4d940e 100644 --- a/cobra/cobra_server.py +++ b/cobra/cobra_server.py @@ -24,7 +24,7 @@ def on_post(self, req, resp): username = post_info['username'] lesson = post_info['lesson'] question_label = post_info['question_label'] - print('Recieved the following information:') + print('Recieved the following information for getquestion:') print('username: {}'.format(username)) print('lesson: {}'.format(lesson)) print('question: {}'.format(question_label)) @@ -41,6 +41,8 @@ def on_post(self, req, resp): ip = req.remote_addr username = post_info['username'] password = decode_message(post_info['password']) + print('Recieved the following information for adduser:') + print('username: {}'.format(username)) users.update({username: User(username)}) if users[username].create_user(password, ip): sessionid = users[username].create_new_session() @@ -55,6 +57,8 @@ def on_post(self, req, resp): username = post_info['username'] password = decode_message(post_info['password']) sessionid = decode_message(post_info['sessionid']) + print('Recieved the following information for loginuser:') + print('username: {}'.format(username)) login_pass = False if users[username].check_session_id(sessionid, ip): @@ -77,6 +81,10 @@ def on_post(self, req, resp): solution = post_info['solution'] submitted_results = post_info['results'] stats = post_info['stats'] + print('Recieved the following information for submitsolution:') + print('username: {}'.format(username)) + print('lesson: {}'.format(lesson)) + print('question: {}'.format(question_label)) question = questions.get_question(lesson, question_label) question.update({'seed': users[username].get_seed()}) master_results = Solution(question) @@ -97,6 +105,8 @@ def on_post(self, req, resp): response = [None, None] question_list = load_yml('question_list.yml') username = post_info['username'] + print('Recieved the following information for getnextquestion:') + print('username: {}'.format(username)) for lesson, question_label in question_list: if [lesson, question_label] in users[username].get_completed(): continue From 4d4a030f6640217b6ea8e5d078bd1f18a4c22319 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:36:52 -0800 Subject: [PATCH 014/163] Update README.md --- cobra/README.md | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/cobra/README.md b/cobra/README.md index 4f3e076..6ed56c4 100644 --- a/cobra/README.md +++ b/cobra/README.md @@ -1,18 +1,42 @@ -# to run the server +# Starting the Server +**Install required modules** +``` +conda install prompt_toolkit +pip install ptpython +conda install flake8 +``` +**In Linux** ``` pip install gunicorn -gunicorn instructor_server:app +cd python_class/cobra +./run_gunicorn_server.sh ``` -or +**In Windows** ``` pip install waitress -waitress-serve --port=8000 instructor_server:app +run_waitress_server.bat ``` - -# required modules: -``` -conda install prompt_toolkit -pip install ptpython -conda install flake8 + +# Running the client +Students update the bottom of the **cobra_client.py** file with the IP of the class server and port: +```python +if __name__ == '__main__': + CobraClient(('127.0.0.1', '8000')) ``` + +# Creating Content +All of the student problems start out in doctest format. See the "problems.py" in each of the content directories above the cobra directory. E.g. 3-files_and_paths/problems.py. Starting with doctest lets us validate all of our problems and the test cases in an easy-to-use format before we port them to the format needed for the client-server tool. Then we run a translate tool and a validate tool to get them into yml format to use. +1. Create problems.py in doctest format. +2. Run problems.py and verify no doctest errors. +3. Translate the problem to yml format: + * The format is "translate_doctest.py ": + * `./translate_doctest.py ../3-files_and_paths/problems.py ./enabled/3_problems.yml` +4. **Validate** the ouptut yml file: + This will iterate over all of the problesm in teh file and + execute them the same way that they would be run when a user + submits a solution. It will halt on any errors if found, and + you can re-work the doctest version of the problem, translate + again, and re-run validate. + * The format is "validate_yml.py " + * `./validate_yml.py ./enabled/3_problems.yml` From cf5d4b18963dddacf11cba57ab504a5df7457280 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 18:39:16 -0500 Subject: [PATCH 015/163] adding sleep after login to prevent race condition --- cobra/cobra_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py index f952112..4f745fe 100644 --- a/cobra/cobra_client.py +++ b/cobra/cobra_client.py @@ -161,7 +161,7 @@ def run(self): self.login(continue_session=True) else: pass - + sleep(3) run_main_loop = True while run_main_loop: while True: From af343793aabd4403b1d8b86dccc96630e561f976 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:47:14 -0800 Subject: [PATCH 016/163] Update README.md --- cobra/README.md | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/cobra/README.md b/cobra/README.md index 6ed56c4..f25f566 100644 --- a/cobra/README.md +++ b/cobra/README.md @@ -27,11 +27,36 @@ if __name__ == '__main__': # Creating Content All of the student problems start out in doctest format. See the "problems.py" in each of the content directories above the cobra directory. E.g. 3-files_and_paths/problems.py. Starting with doctest lets us validate all of our problems and the test cases in an easy-to-use format before we port them to the format needed for the client-server tool. Then we run a translate tool and a validate tool to get them into yml format to use. -1. Create problems.py in doctest format. -2. Run problems.py and verify no doctest errors. +1. **Create problems.py in doctest format**. + Follow the format of the example files closely. + * imports and \_helper functions go at the top of the file. + These are executed at the start of every problem to set + up the environment for it. + * Problem functions All have a name (function name), arguments + defined, an example solutoin in the body of the function, + and a doc-string that contains all of the description and + validation code for the problem. + * First line of the docstring is a problem title - not super + important, but the line must be present. + * Next few lines are a description of the problem that the + user sees that explains the requirements clearly to them. + * Next is the doctest content that is used to validate that + a given solution is correct. Any line in this section + that is followed by "True" on the next line will be used + to validate the problem once it is translated to yml + format for the student tool. I was fairly careful to + craft these to get specific output and have a condition + I want to check result in True being returned. + * Next,the solution to the problem is given. + * Finally is the return statement. Keep any code to generate + the return value on a separate line and only return + a descriptive variable or "# return nothing". This line is + used to generate the description of the problem for the user + tool so needs to follow these requirements. +2. **Run problems.py and verify no doctest errors**. 3. Translate the problem to yml format: - * The format is "translate_doctest.py ": - * `./translate_doctest.py ../3-files_and_paths/problems.py ./enabled/3_problems.yml` + * The format is "translate_doctest.py ": + * `./translate_doctest.py ../3-files_and_paths/problems.py ./enabled/3_problems.yml` 4. **Validate** the ouptut yml file: This will iterate over all of the problesm in teh file and execute them the same way that they would be run when a user From d080acc88c3803a5e6b70b41d5c82d44c3a1a669 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 15:48:06 -0800 Subject: [PATCH 017/163] Update README.md --- cobra/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cobra/README.md b/cobra/README.md index f25f566..c918c37 100644 --- a/cobra/README.md +++ b/cobra/README.md @@ -27,7 +27,7 @@ if __name__ == '__main__': # Creating Content All of the student problems start out in doctest format. See the "problems.py" in each of the content directories above the cobra directory. E.g. 3-files_and_paths/problems.py. Starting with doctest lets us validate all of our problems and the test cases in an easy-to-use format before we port them to the format needed for the client-server tool. Then we run a translate tool and a validate tool to get them into yml format to use. -1. **Create problems.py in doctest format**. +1. **Create problems.py in doctest format**. Follow the format of the example files closely. * imports and \_helper functions go at the top of the file. These are executed at the start of every problem to set @@ -47,17 +47,17 @@ All of the student problems start out in doctest format. See the "problems.py" format for the student tool. I was fairly careful to craft these to get specific output and have a condition I want to check result in True being returned. - * Next,the solution to the problem is given. + * Next,the solution to the problem is given. * Finally is the return statement. Keep any code to generate the return value on a separate line and only return a descriptive variable or "# return nothing". This line is used to generate the description of the problem for the user tool so needs to follow these requirements. -2. **Run problems.py and verify no doctest errors**. -3. Translate the problem to yml format: +2. **Run problems.py and verify no doctest errors**. +3. Translate the problem to yml format: * The format is "translate_doctest.py ": * `./translate_doctest.py ../3-files_and_paths/problems.py ./enabled/3_problems.yml` -4. **Validate** the ouptut yml file: +4. **Validate** the ouptut yml file: This will iterate over all of the problesm in teh file and execute them the same way that they would be run when a user submits a solution. It will halt on any errors if found, and From dff44bbe29e648592eb18d0bf72a723b88caf5b2 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 18:49:06 -0500 Subject: [PATCH 018/163] more debugging --- cobra/cobra_client.py | 2 +- cobra/cobra_server.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py index 4f745fe..59778ac 100644 --- a/cobra/cobra_client.py +++ b/cobra/cobra_client.py @@ -161,7 +161,7 @@ def run(self): self.login(continue_session=True) else: pass - sleep(3) + sleep(1) run_main_loop = True while run_main_loop: while True: diff --git a/cobra/cobra_server.py b/cobra/cobra_server.py index f4d940e..1a4335e 100644 --- a/cobra/cobra_server.py +++ b/cobra/cobra_server.py @@ -48,6 +48,8 @@ def on_post(self, req, resp): sessionid = users[username].create_new_session() else: raise + print('Current users: ') + print(users.keys()) resp.body = encode_message(sessionid) class LoginUser(): @@ -107,6 +109,8 @@ def on_post(self, req, resp): username = post_info['username'] print('Recieved the following information for getnextquestion:') print('username: {}'.format(username)) + print('Current users: ') + print(users.keys()) for lesson, question_label in question_list: if [lesson, question_label] in users[username].get_completed(): continue From 0b0b578658ab47e76b77955e06694fa66b6cb2d8 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 19 Nov 2017 19:05:20 -0500 Subject: [PATCH 019/163] fixed conflicts --- cobra/question_list.yml | 11 +---------- cobra/validate_yml.py | 26 +------------------------- 2 files changed, 2 insertions(+), 35 deletions(-) diff --git a/cobra/question_list.yml b/cobra/question_list.yml index 8aa101c..339ef31 100644 --- a/cobra/question_list.yml +++ b/cobra/question_list.yml @@ -1,14 +1,5 @@ -<<<<<<< HEAD - [milestone2, add them] - [milestone2, first half lower] - [milestone2, just even character] - [milestone2, reverse order] -- [milestone2, convert C to F] -======= -- [2_problems, addThem] -- [2_problems, carmenFound] -- [2_problems, checkKeyExists] -- [2_problems, checkKeysExist] -- [2_problems, convTupleUnique] -- [2_problems, convTupleUniqueOrder] ->>>>>>> d080acc88c3803a5e6b70b41d5c82d44c3a1a669 +- [milestone2, convert C to F] \ No newline at end of file diff --git a/cobra/validate_yml.py b/cobra/validate_yml.py index e08f9d8..890e9bd 100644 --- a/cobra/validate_yml.py +++ b/cobra/validate_yml.py @@ -1,4 +1,3 @@ -<<<<<<< HEAD from util import editor_utility as eu def validate(yml): @@ -12,27 +11,4 @@ def validate(yml): #files = ['enabled/2_problems.yml'] files = ['enabled/milestone2.yml'] for file in files: - validate(file) -======= -#!/usr/bin/env python - -import sys -from util import editor_utility as eu - -def validate(yml): - for label in eu.get_question_labels(yml): - eu.print_question_data(yml, label) - -if __name__ == '__main__': - if len(sys.argv) == 1: - #files = ['enabled/2_basic_python.yml', 'enabled/3_files_paths.yml'] - #files = ['enabled/test.yml'] - files = ['enabled/2_problems.yml'] - #files = ['enabled/3_problems.yml'] - #files = ['enabled/test.yml'] - else: - files = [sys.argv[1]] - - for file in files: - validate(file) ->>>>>>> d080acc88c3803a5e6b70b41d5c82d44c3a1a669 + validate(file) \ No newline at end of file From c92f6fcf2b1bd95b254018142d097640d7e3f5ae Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 16:06:24 -0800 Subject: [PATCH 020/163] Update README.md --- cobra/README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cobra/README.md b/cobra/README.md index c918c37..2cef7fd 100644 --- a/cobra/README.md +++ b/cobra/README.md @@ -25,6 +25,9 @@ if __name__ == '__main__': ``` # Creating Content +A video demo of this is hosted here: +[![test](https://img.youtube.com/vi/fzwtEEb42D0/hqdefault.jpg)](https://www.youtube.com/watch?v=fzwtEEb42D0) + All of the student problems start out in doctest format. See the "problems.py" in each of the content directories above the cobra directory. E.g. 3-files_and_paths/problems.py. Starting with doctest lets us validate all of our problems and the test cases in an easy-to-use format before we port them to the format needed for the client-server tool. Then we run a translate tool and a validate tool to get them into yml format to use. 1. **Create problems.py in doctest format**. @@ -54,10 +57,10 @@ All of the student problems start out in doctest format. See the "problems.py" used to generate the description of the problem for the user tool so needs to follow these requirements. 2. **Run problems.py and verify no doctest errors**. -3. Translate the problem to yml format: +3. **Translate the problem to yml format**: * The format is "translate_doctest.py ": * `./translate_doctest.py ../3-files_and_paths/problems.py ./enabled/3_problems.yml` -4. **Validate** the ouptut yml file: +4. **Validate the ouptut yml file**: This will iterate over all of the problesm in teh file and execute them the same way that they would be run when a user submits a solution. It will halt on any errors if found, and @@ -65,3 +68,12 @@ All of the student problems start out in doctest format. See the "problems.py" again, and re-run validate. * The format is "validate_yml.py " * `./validate_yml.py ./enabled/3_problems.yml` +5. **Add completed problems to question_list.yml** + These are the problems that will be delivered to the user when they run the + tool during class. Format is like [file name without extension, problem_name]: +``` +$ cat question_list.yml +- [2_problems, addThem] +- [2_problems, carmenFound] +... +``` From 136877999f3466f4dd284985f0708a9bfb70b720 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 16:13:51 -0800 Subject: [PATCH 021/163] Update README.md --- README.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 405f982..de8175f 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,22 @@ # python_class Python Learning @ Everywhere +This page: goto/python -## This page: goto/python - -## Pre-Work: +**Instructor documentation**: [here](./cobra/README.md) +* How to start problem server +* How to run client +* How to create content + +## Student Pre-Work: * Most of this content is designed for & tested on linux. It is recommended to run it in linux or in a linux VM (ubuntu?). -* Download and install the Anaconda Python distribution from: http://continuum.io/downloads (Unless you have another distribution you prefer. Anaconda is stronly recommended.) +* Download and install the Anaconda **Python 3** distribution from: http://continuum.io/downloads. You can use any python districutoin, but Anaconda is highly recommended becuase its package manager works so well and it has support for so many libraries out-of-the-box. * Install git: * Linux: sudo apt-get install git * Windows: https://git-scm.com/download/win * Download and install a text editor with syntax highlighting, like Notepad ++: http://notepad-plus-plus.org/ * Print out this python cheat sheet: http://www.astro.up.pt/~sousasag/Python_For_Astronomers/Python_qr.pdf +* Check out this repository in your project area: + `git clone https://github.com/a8ksh4/python_class.git` ## Quick Links: 1. [Git and Github](./1-git_and_github/README.md) (start here) @@ -19,7 +25,7 @@ Python Learning @ Everywhere 4. [System and Environment](./4-system_and_env/README.md) 5. [Data Manipulation](./5-data_manipulation/README.md) 6. [Exception Handling](./6-exception_handling/README.md) -7. ... +7. [Unit Testing](./7-unit-testing/README.md) ## Topics Overview: ### 1 - Git and Github @@ -52,9 +58,9 @@ Python Learning @ Everywhere ### 6 - Exception Handling * methodology * Examles -### 7 - Debugging +### 7 - QA and Unit Testing * examples -### 8 - QA and Unit Testing +### 8 - Debugging * http://docs.python-guide.org/en/latest/writing/tests/ ### Windows Examples From fe49352d63ab19887c3b046f4047214ccd66d9c6 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Sun, 19 Nov 2017 16:31:11 -0800 Subject: [PATCH 022/163] spelling fix --- {6-exception_hadling => 6-exception_handling}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {6-exception_hadling => 6-exception_handling}/README.md (100%) diff --git a/6-exception_hadling/README.md b/6-exception_handling/README.md similarity index 100% rename from 6-exception_hadling/README.md rename to 6-exception_handling/README.md From 8b48b2dbd8032ba15d70609e18eced8cb948e4c4 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Sun, 19 Nov 2017 16:31:58 -0800 Subject: [PATCH 023/163] spelling fix --- {7-Unit_Testing => 7-unit_testing}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {7-Unit_Testing => 7-unit_testing}/README.md (100%) diff --git a/7-Unit_Testing/README.md b/7-unit_testing/README.md similarity index 100% rename from 7-Unit_Testing/README.md rename to 7-unit_testing/README.md From 9038cc8fd8d09a636b0b54259973727e4b30a2f8 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 19 Nov 2017 16:32:52 -0800 Subject: [PATCH 024/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de8175f..aa6d115 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ This page: goto/python 4. [System and Environment](./4-system_and_env/README.md) 5. [Data Manipulation](./5-data_manipulation/README.md) 6. [Exception Handling](./6-exception_handling/README.md) -7. [Unit Testing](./7-unit-testing/README.md) +7. [Unit Testing](./7-unit_testing/README.md) ## Topics Overview: ### 1 - Git and Github From 98e505f1b2581f32e542d4a82c9b5111899befdd Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 26 Nov 2017 12:04:35 -0800 Subject: [PATCH 025/163] Update problems.py --- 5-data_manipulation/problems.py | 43 +++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/5-data_manipulation/problems.py b/5-data_manipulation/problems.py index 6941c65..a2daf04 100755 --- a/5-data_manipulation/problems.py +++ b/5-data_manipulation/problems.py @@ -130,8 +130,47 @@ def dictToCSVFile(csv_path, data): #return nothing - - +def readingFormat(file_path, file_format): + '''data_4 + Write a function caled readingFormat that accepts a file path to a json + or yaml formatted file and a string, either "json" or "yaml", and + reads in the file as the corresponding type and resturns the resulting + python data structure. + >>> f0 = _randStr() + >>> json.dump(open(f0, 'w'), DATA_LDL) + >>> DATA_LDL == readingFormat(f0, 'json') + True + >>> os.remove(f0) + >>> f1 = _randStr() + >>> open(f1, 'w').write(yaml.dump(DATA_LDL)) + >>> DATA_LDL == readingFormat(f1, 'yaml') + True + >>> os.remove(f1) + ''' + with open(file_path, 'r') as f: + result_data = yaml.load(f.read()) + return result_data + +def writingFormat(file_path, data_object, file_format='json'): + '''data_5 + Write a function called writingFormat that accepts a file path, a + python object and a string, either 'json' or 'yaml', and writes + the data object to the given file path in the corresponding format. + >>> f0 = _randStr() + >>> writingFormat(f0, DATA_LDL, 'json') + >>> DATA_LDL == json.load(open(f0, 'r')) + True + >>> os.path.exists(f0) and os.remove(f0) + >>> writingFormat(f0, DATA_LDL, 'yaml') + >>> DATA_LDL == yaml.load(open(f0, 'r').read()) + True + >>> os.remove(f0) + ''' + if file_format == 'json': + json.dump(open(file_path, 'w'), data_object) + elif file_format == 'yaml': + open(file_path, 'w').write(yaml.dump(data_object)) + #return nothing if __name__ == '__main__': From 4939b8e7291d3c9f8d11b46abcc240cd00b1d7df Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 26 Nov 2017 12:34:50 -0800 Subject: [PATCH 026/163] Update problems.py --- 5-data_manipulation/problems.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/5-data_manipulation/problems.py b/5-data_manipulation/problems.py index a2daf04..e4045fb 100755 --- a/5-data_manipulation/problems.py +++ b/5-data_manipulation/problems.py @@ -1,13 +1,12 @@ #!/usr/bin/env python -import argparse +import json import os import random import re import shutil import string -import subprocess as sp -import sys +import yaml DATA_C = '''name,age,favorite_color dan,90,green @@ -171,7 +170,32 @@ def writingFormat(file_path, data_object, file_format='json'): elif file_format == 'yaml': open(file_path, 'w').write(yaml.dump(data_object)) #return nothing - + +def somethingWithRegex(content, regex_str): + '''data_6 + foo + ''' + pass + #return bool + +class dbHandler(extends Object): + '''Create a class called dbHndler that abstracts interaction with a + sqlite database into a couple of methods. On __init__, the path to + the qslite db is given with the table name to interact with, and, + optoinally, the headers to create the table with. If the table does + not already exist, headers are required or an exceptoin should be raised. + ''' + def __init__(self, db_path, table_name, headers=None): + # initialize db cursor + #self.cursor = foobar + self.table = table_name + def writeLine(content): + '''append a row onto the db table''' + pass + def readLines(): + '''return a list of dictoinaries continaing all rows in the table. + ''' + pass if __name__ == '__main__': import doctest From c2b4d287adbaf256dfeb13f53d54c945a55a5b67 Mon Sep 17 00:00:00 2001 From: ryan g Date: Sun, 3 Dec 2017 22:12:40 -0500 Subject: [PATCH 027/163] added leaderboard --- cobra/cobra_server.py | 8 +++++++- cobra/util/server_utility.py | 23 ++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/cobra/cobra_server.py b/cobra/cobra_server.py index 1a4335e..d5965c7 100644 --- a/cobra/cobra_server.py +++ b/cobra/cobra_server.py @@ -4,7 +4,7 @@ #import uuid import json from util.utility import decode_message, encode_message, hash_results, load_yml -from util.server_utility import Questions, User, get_users, update_history, get_history +from util.server_utility import Questions, User, get_users, update_history, get_history, leaderboard from util.solution_checker import Solution from time import sleep @@ -143,6 +143,11 @@ def on_post(self, req, resp): completed = users[username].get_completed() resp.body = json.dumps(completed) +class Leaderboard(): + def on_get(self, req, resp): + resp.content_type = 'text/html' + resp.body = leaderboard() + questions = Questions() users = get_users() app = falcon.API() @@ -155,3 +160,4 @@ def on_post(self, req, resp): app.add_route('/getnextquestion', GetNextQuestion()) app.add_route('/gethistory', GetHistory()) app.add_route('/getcompleted', GetCompleted()) +app.add_route('/leaderboard', Leaderboard()) diff --git a/cobra/util/server_utility.py b/cobra/util/server_utility.py index 18baf11..d258bb7 100644 --- a/cobra/util/server_utility.py +++ b/cobra/util/server_utility.py @@ -122,4 +122,25 @@ def get_history(item): history_data = load_yml(yml_file) return history_data else: - return False \ No newline at end of file + return False + +def leaderboard(): + board = {} + for filename in listdir('users'): + if filename[-4:] != '.yml': + continue + yml_file = 'users/{}'.format(filename) + data = load_yml(yml_file) + completed = len(data['completed']) + board[filename[:-4]] = completed + + html_body = '

Completed Questions:

' + for name, score in sorted(board.items(), key=lambda item: item[1], reverse=True): + html_body += ''.format(name=name, score=score) + html_body += '
{name}{score}
' + return html_body + + + + + \ No newline at end of file From 86ec83b44870859dea17177592cc28600d48cb85 Mon Sep 17 00:00:00 2001 From: ryan g Date: Wed, 6 Dec 2017 19:04:29 -0500 Subject: [PATCH 028/163] renamed milestone2 to final --- cobra/cobra_client.py | 2 +- cobra/enabled/{milestone2.yml => final.yml} | 0 cobra/question_list.yml | 10 +++++----- 3 files changed, 6 insertions(+), 6 deletions(-) rename cobra/enabled/{milestone2.yml => final.yml} (100%) diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py index 59778ac..7dfa4ba 100644 --- a/cobra/cobra_client.py +++ b/cobra/cobra_client.py @@ -161,7 +161,7 @@ def run(self): self.login(continue_session=True) else: pass - sleep(1) + sleep(.25) run_main_loop = True while run_main_loop: while True: diff --git a/cobra/enabled/milestone2.yml b/cobra/enabled/final.yml similarity index 100% rename from cobra/enabled/milestone2.yml rename to cobra/enabled/final.yml diff --git a/cobra/question_list.yml b/cobra/question_list.yml index 339ef31..2c372de 100644 --- a/cobra/question_list.yml +++ b/cobra/question_list.yml @@ -1,5 +1,5 @@ -- [milestone2, add them] -- [milestone2, first half lower] -- [milestone2, just even character] -- [milestone2, reverse order] -- [milestone2, convert C to F] \ No newline at end of file +- [final, add them] +- [final, first half lower] +- [final, just even character] +- [final, reverse order] +- [final, convert C to F] \ No newline at end of file From 3bc4509b168d3eaeff685fe6f09e7dd4d2737a45 Mon Sep 17 00:00:00 2001 From: ryan g Date: Wed, 6 Dec 2017 19:35:21 -0500 Subject: [PATCH 029/163] added new question to final --- cobra/cobra_client.py | 34 +++------------------------------- cobra/enabled/final.yml | 38 +++++++++++++++++++++++++++++++++++++- cobra/question_list.yml | 1 + cobra/validate_yml.py | 2 +- 4 files changed, 42 insertions(+), 33 deletions(-) diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py index 7dfa4ba..da5b90b 100644 --- a/cobra/cobra_client.py +++ b/cobra/cobra_client.py @@ -82,6 +82,9 @@ def solve_question(self, lesson, question_label): finally: eventloop.close() try: + print('Running the following parameters into your function:') + for parameter in question_data['unittests']: + print(str(parameter)) results = Solution(question_data, solution.text) results.run_solution() except Exception as e: @@ -184,37 +187,6 @@ def run(self): else: self.solve_question(lesson, question_label) - #self.solve_question('python_basics', 'basic_math_1') - #self.solve_question('python_basics', 'basic_math_2') - #self.solve_question('python_basics', 'basic_math_3') - #self.solve_question('python_basics', 'basic_math_4') - #self.solve_question('python_basics', 'basic_math_5') - #self.solve_question('python_basics', 'basic_math_6') - #self.solve_question('python_basics', 'strings_1') - #self.solve_question('python_basics', 'strings_2') - #self.solve_question('python_basics', 'strings_3') - #self.solve_question('python_basics', 'strings_4') - #self.solve_question('python_basics', 'strings_5') - #self.solve_question('python_basics', 'strings_6') - #self.solve_question('python_basics', 'strings_7') - #self.solve_question('python_basics', 'strings_8') - #self.solve_question('python_basics', 'branching_1') - #self.solve_question('python_basics', 'branching_2') - #self.solve_question('python_basics', 'branching_3') - #self.solve_question('python_basics', 'lists_1') - #self.solve_question('python_basics', 'lists_2') - #self.solve_question('python_basics', 'sets_1') - #self.solve_question('python_basics', 'sets_2') - #self.solve_question('python_basics', 'sets_3') - #self.solve_question('python_basics', 'sets_4') - #self.solve_question('python_basics', 'dictionaries_1') - #self.solve_question('python_basics', 'dictionaries_2') - #self.solve_question('python_basics', 'dictionaries_3') - #self.solve_question('python_basics', 'dictionaries_4') - #self.solve_question('python_basics', 'dictionaries_5') - #self.solve_question('python_basics', 'dictionaries_6') - #self.solve_question('python_basics', 'dictionaries_7') - if __name__ == '__main__': CobraClient(('127.0.0.1', '8000')) diff --git a/cobra/enabled/final.yml b/cobra/enabled/final.yml index c3895c8..2a4234f 100644 --- a/cobra/enabled/final.yml +++ b/cobra/enabled/final.yml @@ -148,5 +148,41 @@ convert C to F: - int(0) tags: - math + +smallest int: + imports: | + from random import seed, randint + posttest: '' + pretest: '' + setup: | + seed({seed}) + signature: 'def smallest_int(int_list: list[int], absolute_value=False: bool): -> int' + solution: | + def smallest_int(int_list, absolute_value=False): + if absolute_value: + int_list = map(lambda item: abs(item), int_list) + return min(int_list) + tags: + -math + teardown: '' + text: | + Write a function called smallestOfList that accepts a list or tuple of + numbers and returns the smallest number found in the list. + However, if absolute value is set to True, it should return the number that + has the smallest absolute value. - \ No newline at end of file + If two numbers in the list both have an absolute value that is the + smallest and the same, the first one encounterd should be returned. + unittests: + test1: + - list([1,2,3,4,5,6,7,8,9,10]) + test2: + - list([-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]) + test3: + - list([-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]) + - True + test3_x4: + - list([randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100)]) + test4_x4: + - list([randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100)]) + - True \ No newline at end of file diff --git a/cobra/question_list.yml b/cobra/question_list.yml index 2c372de..dfbe5bf 100644 --- a/cobra/question_list.yml +++ b/cobra/question_list.yml @@ -1,4 +1,5 @@ - [final, add them] +- [final, smallest int] - [final, first half lower] - [final, just even character] - [final, reverse order] diff --git a/cobra/validate_yml.py b/cobra/validate_yml.py index 890e9bd..4ff5ff0 100644 --- a/cobra/validate_yml.py +++ b/cobra/validate_yml.py @@ -9,6 +9,6 @@ def validate(yml): #files = ['enabled/test.yml'] #files = ['enabled/2_problems.yml'] #files = ['enabled/2_problems.yml'] - files = ['enabled/milestone2.yml'] + files = ['enabled/final.yml'] for file in files: validate(file) \ No newline at end of file From 1f55e73e6c439dc5d21b83d0286eda5478222a20 Mon Sep 17 00:00:00 2001 From: ryan g Date: Wed, 6 Dec 2017 20:19:56 -0500 Subject: [PATCH 030/163] added some color codes to the client --- cobra/cobra_client.py | 41 +++++++++++++++++++++--------------- cobra/util/server_utility.py | 4 +++- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py index da5b90b..75828d8 100644 --- a/cobra/cobra_client.py +++ b/cobra/cobra_client.py @@ -70,8 +70,13 @@ def solve_question(self, lesson, question_label): question_data = self.get_question(lesson, question_label) run_question_loop = True while run_question_loop: - print('======================================================================') - print('{lesson}\n{title}\n{text}\n{signature}\n'.format(lesson=lesson, title=question_label, **question_data)) + print('{}======================================================================'.format(cr.Style.RESET_ALL)) + print('{lesson_color}{lesson}\n{title_color}{title}\n{text_color}{text}\n{signature_color}{signature}{reset}\n'.format( + lesson=lesson, title=question_label, + lesson_color=cr.Back.BLUE + cr.Fore.YELLOW, title_color=cr.Back.BLUE + cr.Fore.WHITE, + text_color=cr.Back.BLACK + cr.Fore.CYAN, signature_color=cr.Back.BLACK + cr.Fore.MAGENTA, + reset=cr.Style.RESET_ALL, + **question_data)) eventloop = create_eventloop() ptpython_input = PythonInput() @@ -83,20 +88,22 @@ def solve_question(self, lesson, question_label): eventloop.close() try: print('Running the following parameters into your function:') - for parameter in question_data['unittests']: - print(str(parameter)) + for parameter in question_data['unittests'].values(): + print('({}'.format(cr.Fore.YELLOW), end='') + print(', '.join(map(lambda item: str(item), parameter)), end='') + print('{})'.format(cr.Style.RESET_ALL)) results = Solution(question_data, solution.text) results.run_solution() except Exception as e: - print('An exception occred while running your code: {}'.format(e)) + print('{}An exception occred while running your code: {}{}'.format(cr.Fore.RED, e, cr.Style.RESET_ALL)) continue - print('{:f}'.format(results.time_to_execute)) - print('Unit Test results: {}'.format(results.test_results)) - print('Line count: {}'.format(results.linecount)) - print('Character count: {}'.format(results.charcount)) - print('Format style violations: {}'.format(results.violationcount)) - print('Violation details:\n{}'.format(results.violations)) + print('Time to execute: {}{:f}{}'.format(cr.Fore.GREEN, results.time_to_execute, cr.Style.RESET_ALL)) + print('Unit Test results: {}{}{}'.format(cr.Fore.GREEN, results.test_results, cr.Style.RESET_ALL)) + print('Line count: {}{}{}'.format(cr.Fore.GREEN, results.linecount, cr.Style.RESET_ALL)) + print('Character count: {}{}{}'.format(cr.Fore.GREEN, results.charcount, cr.Style.RESET_ALL)) + print('Format style violations: {}{}{}'.format(cr.Fore.RED, results.violationcount, cr.Style.RESET_ALL)) + print('Violation details:\n{}{}{}'.format(cr.Fore.RED, results.violations, cr.Style.RESET_ALL)) stats = { 'runtime': results.time_to_execute, 'linecount': results.linecount, @@ -140,17 +147,17 @@ def print_history(self, lesson, question_label): headers=self.headers) history = json.loads(req.text) for name, info in history.items(): - print('{}:'.format(name)) + print('{}{}:{}'.format(cr.Back.MAGENTA + cr.Fore.CYAN, name, cr.Style.RESET_ALL)) print('SOLUTION:') - print(info['solution']) + print('{}{}{}'.format(cr.Fore.CYAN, info['solution'], cr.Style.RESET_ALL)) print('RUNTIME:') - print(info['stats']['runtime']) + print('{}{}{}'.format(cr.Fore.GREEN, info['stats']['runtime'], cr.Style.RESET_ALL)) print('LINES:') - print(info['stats']['linecount']) + print('{}{}{}'.format(cr.Fore.GREEN, info['stats']['linecount'], cr.Style.RESET_ALL)) print('CHARACTERS:') - print(info['stats']['charcount']) + print('{}{}{}'.format(cr.Fore.GREEN, info['stats']['charcount'], cr.Style.RESET_ALL)) print('VIOLATIONS:') - print(info['stats']['violations']) + print('{}{}{}'.format(cr.Fore.RED, info['stats']['violations'], cr.Style.RESET_ALL)) def run(self): diff --git a/cobra/util/server_utility.py b/cobra/util/server_utility.py index d258bb7..d41fcd3 100644 --- a/cobra/util/server_utility.py +++ b/cobra/util/server_utility.py @@ -83,7 +83,9 @@ def get_seed(self): class Questions(): def __init__(self): - self.questions = {filename.rstrip('.yml'): load_yml('enabled/{}'.format(filename)) for filename in listdir('enabled')} + self.questions = {filename[:-4]: load_yml('enabled/{}'.format(filename)) for filename in listdir('enabled') if filename[-4:] == '.yml'} + print('loaded these question files:') + print(self.questions.keys()) def get_lessons(self): return list(self.questions.keys()) From 02b7007be59dda6f65caf9a1748d15f8f7bc39de Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 10 Dec 2017 09:54:30 -0800 Subject: [PATCH 031/163] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa6d115..77d6515 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # python_class Python Learning @ Everywhere This page: goto/python +**NOTE:** If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ **Instructor documentation**: [here](./cobra/README.md) * How to start problem server From 6ab32f7ab2f1e1534af7a8a2ed82a3f81b1de39a Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 10 Dec 2017 09:54:41 -0800 Subject: [PATCH 032/163] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 77d6515..7154d7f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # python_class Python Learning @ Everywhere -This page: goto/python -**NOTE:** If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ - +This page: goto/python +**NOTE:** If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ + **Instructor documentation**: [here](./cobra/README.md) * How to start problem server * How to run client From 86e79cee0d7e39632f0b6c9170ab1f503cd63670 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 10 Dec 2017 09:55:27 -0800 Subject: [PATCH 033/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7154d7f..cef8cbe 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # python_class -Python Learning @ Everywhere +Python Learning @ Everywhere This page: goto/python **NOTE:** If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ From b5b0f5331924779d758254fe0a1eddb2a761b600 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 10 Dec 2017 09:57:59 -0800 Subject: [PATCH 034/163] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cef8cbe..7a3360a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ Python Learning @ Everywhere This page: goto/python **NOTE:** If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ +Also, there is a pre-prepaired demo VM available here: http://r-d.green/cs6460/ under the "Cobra VM" link. **Instructor documentation**: [here](./cobra/README.md) * How to start problem server From 0172a71c9ba34b4cda08d1a0818d5d8f0a9b69be Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Sun, 10 Dec 2017 09:58:20 -0800 Subject: [PATCH 035/163] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7a3360a..1ac8515 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # python_class Python Learning @ Everywhere This page: goto/python -**NOTE:** If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ -Also, there is a pre-prepaired demo VM available here: http://r-d.green/cs6460/ under the "Cobra VM" link. +**NOTE:** +* If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ +* There is a pre-prepaired demo VM available here: http://r-d.green/cs6460/ under the "Cobra VM" link. **Instructor documentation**: [here](./cobra/README.md) * How to start problem server From deb7718fb037f045877d73ce341d26045f3412a9 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Mon, 17 Dec 2018 17:40:12 -0800 Subject: [PATCH 036/163] Create README.md --- 8-pandas/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 8-pandas/README.md diff --git a/8-pandas/README.md b/8-pandas/README.md new file mode 100644 index 0000000..bc56c4d --- /dev/null +++ b/8-pandas/README.md @@ -0,0 +1 @@ +Foo From eabbe015e3c6c916bf7e62fcf6408ed043579c27 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Tue, 18 Dec 2018 05:57:29 -0800 Subject: [PATCH 037/163] Update README.md --- 8-pandas/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/8-pandas/README.md b/8-pandas/README.md index bc56c4d..080c156 100644 --- a/8-pandas/README.md +++ b/8-pandas/README.md @@ -1 +1,6 @@ Foo +# Index: +* [Importing Pandas](#importing-pandas) +* [Loading Data](#loading-data) + * csv, xlsx, json +* From d18a0902bd3709841bccaeda3f580feec3bd6790 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Tue, 23 Apr 2019 12:17:51 -0700 Subject: [PATCH 038/163] Update README.md --- 8-pandas/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/8-pandas/README.md b/8-pandas/README.md index 080c156..4fda40e 100644 --- a/8-pandas/README.md +++ b/8-pandas/README.md @@ -4,3 +4,6 @@ Foo * [Loading Data](#loading-data) * csv, xlsx, json * + +# Reference: +* https://medium.com/dunder-data/minimally-sufficient-pandas-a8e67f2a2428 From 1d34090f14d59b0ddae2de8ae8635fa267ab2755 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Fri, 26 Feb 2021 13:45:51 -0800 Subject: [PATCH 039/163] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1ac8515..a85caf1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ Python Learning @ Everywhere This page: goto/python **NOTE:** * If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ -* There is a pre-prepaired demo VM available here: http://r-d.green/cs6460/ under the "Cobra VM" link. **Instructor documentation**: [here](./cobra/README.md) * How to start problem server From 4b97972e084788920b9f3679cc0be68c6f900f79 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Fri, 26 Feb 2021 13:46:16 -0800 Subject: [PATCH 040/163] Delete cobra directory --- cobra/.gitignore | 8 - cobra/README.md | 79 --- cobra/archive/format_example.yml | 60 --- cobra/archive/python_basics.yml | 678 ------------------------ cobra/clientdata/.gitkeep | 0 cobra/cobra_client.py | 210 -------- cobra/cobra_server.py | 163 ------ cobra/enabled/2_problems.yml | 858 ------------------------------- cobra/enabled/3_problems.yml | 309 ----------- cobra/enabled/final.yml | 188 ------- cobra/enabled/test.yml | 17 - cobra/history/.gitkeep | 0 cobra/prob_edit.py | 453 ---------------- cobra/question_list.yml | 6 - cobra/run_gunicorn_server.sh | 6 - cobra/run_waitress_server.bat | 1 - cobra/translate_doctest.py | 134 ----- cobra/users/.gitkeep | 0 cobra/util/editor_utility.py | 67 --- cobra/util/ptpython_config.py | 58 --- cobra/util/server_utility.py | 148 ------ cobra/util/solution_checker.py | 150 ------ cobra/util/utility.py | 43 -- cobra/validate_yml.py | 14 - 24 files changed, 3650 deletions(-) delete mode 100644 cobra/.gitignore delete mode 100644 cobra/README.md delete mode 100644 cobra/archive/format_example.yml delete mode 100644 cobra/archive/python_basics.yml delete mode 100644 cobra/clientdata/.gitkeep delete mode 100644 cobra/cobra_client.py delete mode 100644 cobra/cobra_server.py delete mode 100644 cobra/enabled/2_problems.yml delete mode 100644 cobra/enabled/3_problems.yml delete mode 100644 cobra/enabled/final.yml delete mode 100644 cobra/enabled/test.yml delete mode 100644 cobra/history/.gitkeep delete mode 100755 cobra/prob_edit.py delete mode 100644 cobra/question_list.yml delete mode 100755 cobra/run_gunicorn_server.sh delete mode 100644 cobra/run_waitress_server.bat delete mode 100755 cobra/translate_doctest.py delete mode 100644 cobra/users/.gitkeep delete mode 100644 cobra/util/editor_utility.py delete mode 100644 cobra/util/ptpython_config.py delete mode 100644 cobra/util/server_utility.py delete mode 100644 cobra/util/solution_checker.py delete mode 100644 cobra/util/utility.py delete mode 100644 cobra/validate_yml.py diff --git a/cobra/.gitignore b/cobra/.gitignore deleted file mode 100644 index 2c2218b..0000000 --- a/cobra/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -__pycache__ -*.pyc -*yml_* -users -session.yml -clientdata -*.bak -OLD diff --git a/cobra/README.md b/cobra/README.md deleted file mode 100644 index 2cef7fd..0000000 --- a/cobra/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# Starting the Server -**Install required modules** -``` -conda install prompt_toolkit -pip install ptpython -conda install flake8 -``` -**In Linux** -``` -pip install gunicorn -cd python_class/cobra -./run_gunicorn_server.sh -``` -**In Windows** -``` -pip install waitress -run_waitress_server.bat -``` - -# Running the client -Students update the bottom of the **cobra_client.py** file with the IP of the class server and port: -```python -if __name__ == '__main__': - CobraClient(('127.0.0.1', '8000')) -``` - -# Creating Content -A video demo of this is hosted here: -[![test](https://img.youtube.com/vi/fzwtEEb42D0/hqdefault.jpg)](https://www.youtube.com/watch?v=fzwtEEb42D0) - -All of the student problems start out in doctest format. See the "problems.py" in each of the content directories above the cobra directory. E.g. 3-files_and_paths/problems.py. Starting with doctest lets us validate all of our problems and the test cases in an easy-to-use format before we port them to the format needed for the client-server tool. Then we run a translate tool and a validate tool to get them into yml format to use. - -1. **Create problems.py in doctest format**. - Follow the format of the example files closely. - * imports and \_helper functions go at the top of the file. - These are executed at the start of every problem to set - up the environment for it. - * Problem functions All have a name (function name), arguments - defined, an example solutoin in the body of the function, - and a doc-string that contains all of the description and - validation code for the problem. - * First line of the docstring is a problem title - not super - important, but the line must be present. - * Next few lines are a description of the problem that the - user sees that explains the requirements clearly to them. - * Next is the doctest content that is used to validate that - a given solution is correct. Any line in this section - that is followed by "True" on the next line will be used - to validate the problem once it is translated to yml - format for the student tool. I was fairly careful to - craft these to get specific output and have a condition - I want to check result in True being returned. - * Next,the solution to the problem is given. - * Finally is the return statement. Keep any code to generate - the return value on a separate line and only return - a descriptive variable or "# return nothing". This line is - used to generate the description of the problem for the user - tool so needs to follow these requirements. -2. **Run problems.py and verify no doctest errors**. -3. **Translate the problem to yml format**: - * The format is "translate_doctest.py ": - * `./translate_doctest.py ../3-files_and_paths/problems.py ./enabled/3_problems.yml` -4. **Validate the ouptut yml file**: - This will iterate over all of the problesm in teh file and - execute them the same way that they would be run when a user - submits a solution. It will halt on any errors if found, and - you can re-work the doctest version of the problem, translate - again, and re-run validate. - * The format is "validate_yml.py " - * `./validate_yml.py ./enabled/3_problems.yml` -5. **Add completed problems to question_list.yml** - These are the problems that will be delivered to the user when they run the - tool during class. Format is like [file name without extension, problem_name]: -``` -$ cat question_list.yml -- [2_problems, addThem] -- [2_problems, carmenFound] -... -``` diff --git a/cobra/archive/format_example.yml b/cobra/archive/format_example.yml deleted file mode 100644 index 226ffb2..0000000 --- a/cobra/archive/format_example.yml +++ /dev/null @@ -1,60 +0,0 @@ -# A label identifies the question unique to the .yml lesson -addition_example: - # This is an example question - # It shows off the format used - text: | - Write a function that takes 2 integers as parameter - It should return the sum of the 2 ints - signature: "add(number1: int, number2: int ) -> int" - # I'm putting this in base64, I think it might help readability. This codes to: - # def add(num_1, num_2): - # return num_1 + num_2 - solution: !!binary "ZGVmIGFkZChudW1fMSwgbnVtXzIpOgogICAgcmV0dXJuIG51bV8xICsgbnVtXzI=" - # order to serve questions. Same tier served randomly - tier: 1 - unittests: - test1: - - "int(3)" - - "int(5)" - test2: - - "int(-3)" - - "int(0)" - test3: - - "randint(-100,100)" - - "randint(-100,100)" - # The x4 will mean repeat this test 4 times - test4_x4: - - "randint(-1000,1000)" - - "randint(-1,1)" - - # Used for any outside module dependancies - imports: "from random import randint, seed" - # Setup scripts to prep an environment. Run before unittests - setup: "seed({seed})" - # Teardown scripts to clean up the environment. Run after unittests - teardown: "" - # Scripts to be run before individual tests take place - pretest: "" - # Scripts to be run after infividual tests take place - posttest: "" - # Tags can be used to sort and filter questions - tags: - - sample - - arithmatic - # This is how many times the challenge has been solved - successes: 1 - # These are derived from user ratings, the data can be used as question feedback - # think of them like upvotes/downvotes, but more category specific - ratings: - challenging: 0 - useful: 0 - interesting: 0 - # The solution history, every success can be stored here. - history: - ab7511ee456ce56e64d69141b7e2241b: - code: !!binary "ZGVmIGFkZChhYWEsYmJiKToKICAgIHg9IGFhYStiYmIKICAgIHJldHVybiB4" - pep8: 0 - size: 0 - line: 0 - characters: 0 - likes: 0 \ No newline at end of file diff --git a/cobra/archive/python_basics.yml b/cobra/archive/python_basics.yml deleted file mode 100644 index ba70853..0000000 --- a/cobra/archive/python_basics.yml +++ /dev/null @@ -1,678 +0,0 @@ -basic_math_1: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: addThem(int, int) -> int - solution: "def addThem(num_a, num_b):\n return num_a + num_b\n" - tags: '' - teardown: '' - text: "Write a function that takes 2 integers as parameter\nIt should return the\ - \ sum of the 2 integers.\n\nE.g. \ndef addThem(num_a, num_b):\n #your code\ - \ here\n return the_sum\n" - unittests: - test1: - - int(3) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -basic_math_2: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: remainder(int, int) -> int - solution: "def remainder(a, b):\n the_remainder = a%b\n return the_remainder\n" - tags: '' - teardown: '' - text: "Write a function that takes 2 integers as parameters and returns the remainder\n\ - from dividing the first number, \"a\", into the second number, \"b\". \n\nE.g:\n\ - def remainder(a, b):\n #your code here\n return the_remainder\n" - unittests: - test1: - - int(3) - - int(5) - test2: - - int(10) - - int(1) - test3: - - randint(100,500) - - randint(100,200) - test4_x4: - - randint(1000,2000) - - randint(1,10) -basic_math_3: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: toInt(float) -> int - solution: "def toInt(a_float):\n an_int = int(a_float)\n return an_int\n" - tags: '' - teardown: '' - text: "Write a function that takes a floating point number and returns it\nas an\ - \ integer.\n\nE.g:\ndef toInt(a_float):\n #your code here\n return an_int\n" - unittests: - test1: - - int(7) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -basic_math_4: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: divideThemInt(int, int) -> (int, int) - solution: "def divideThemInt(num_a, num_b):\n return (num_a / num_b, num_a %\ - \ num_b)\n" - tags: '' - teardown: '' - text: "Write a function that divides two integers and returns a tuple with the first\ - \ value equal to the integer diviion result, and teh second value equal to the\ - \ remainder. \n\nE.g:\ndef divideThemInt(num_a, num_b):\n #your code here\n\ - \ return (sum_of_them, remainder)\n" - unittests: - test1: - - int(7) - - int(5) - test2: - - int(-3) - - int(1) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -basic_math_5: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: divideThem(int, int) -> float - solution: "def divideThem(num_a, num_b):\n return float(num_a) / float(num_b)\n" - tags: '' - teardown: '' - text: "Write a function that divides two integers and returns a floating point result.\n\ - Note: the result should be a float even if the division has no remainder...\n\n\ - E.g:\ndef divideThem(num_a, num_b):\n #your code here\n return the_result\n" - unittests: - test1: - - int(7) - - int(5) - test2: - - int(-3) - - int(0) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -basic_math_6: - imports: from random import randint, seed - posttest: '' - pretest: '' - setup: seed({seed}) - signature: convertCToF(int) -> float - solution: "def convertCToF(temp_in_c):\n return temp_in_c/5.0 + 32.0/9.0\n" - tags: '' - teardown: '' - text: "Write a function that accepts a temperature in Centigrade and returns an\n\ - equivelant temperature in Farenheight. \n\nThe equation for this is (f = c/5 +\ - \ 32/9)\n\nE.g:\ndef convertCToF(temp_in_c):\n #your code here\n return\ - \ temp_in_f\n" - unittests: - test1: - - int(7) - - int(5) - test2: - - int(-3) - - int(5) - test3: - - randint(-100,100) - - randint(-100,100) - test4_x4: - - randint(-1000,1000) - - randint(-1,1) -branching_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: getTruthiness(obj) -> string - solution: "def getTruthiness(obj):\n if obj:\n resulting_word = \"tequilla\"\ - \n else:\n resulting_word = \"margarita\"\n return resulting_word\n" - tags: '' - teardown: '' - text: "Create a function called getTruthiness that is given an objct and, if\nthat\ - \ object evaluates True, returns \"tequilla\", otherwise it returns,\n\"margarita\"\ - . \n\nE.g:\ndef getTruthiness(obj):\n #your code here\n return resulting_word\n" - unittests: - test1: - - true - test2: - - '""' - test3: - - '"a"' - test4: - - '"()"' -branching_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: twosTruthiness(bool, bool, bool, bool) -> string - solution: "def twosTruthiness(obj0, obj1, obj2, obj3):\n items = (obj0, obj1,\ - \ obj2, obj3)\n count = len([o for o in items if o == True])\n if count\ - \ == 2:\n resulting_word = \"twos\"\n elif count == 3:\n resulting_word\ - \ = \"threes\"\n else:\n resulting_word = \"foobar\"\n return resulting_word\n" - tags: '' - teardown: '' - text: "Create a function called twosTruthiness that is given four boolean values.\n\ - if any two of the four are True, then return \"twos\". If any three of them are\n\ - True, then return \"threes\", if less than two or four of them are True, then\n\ - return \"foobar\"\n\nE.g:\ndef twosTruthiness(obj, obj, obj, obj):\n #your\ - \ code here\n return resulting_word\n" - unittests: - test1: - - (True, True, False, False) - test2: - - (False, True, False, True) - test3: - - (True, True, False, True) - test4: - - (True, True, True, True) -branching_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: carmenFound(dict) -> string - solution: "def carmenFound(cities):\n for city in cities:\n if cities[city]\ - \ == True:\n return city\n" - tags: '' - teardown: '' - text: "Create a function called carmenFound that is given a dictionary with a list\ - \ of\ncity names as keys, each associated with a boolean value indicating whether\n\ - or not Carmen is in the city. Return the name of the city Carmen is found in!\n\ - \nE.g:\ndef carmenFound(cities):\n #your code here\n return city_name\n" - unittests: - test1: - - atlanta: true - menphis: false - redding: false - test2: - - atlanta: false - menphis: true - redding: false -dictionaries_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: pocketContents() -> dict - solution: "def pocketContents():\n inventory = {\n 'gold' : 500,\n \ - \ 'pouch' : ['flint', 'twine', 'gemstone'],\n 'backpack' : ['xylophone','dagger',\ - \ 'bedroll','bread loaf']\n }\n inventory['pocket'] = ['seashell']\n \ - \ return inventory\n" - tags: '' - teardown: '' - text: "Given the following dictionary called \"inventory\", modify the pocketContents\n\ - function to add a 'pocket' into the dictionary with contents 'seashell'\n(a single\ - \ string in a list).\n\nE.g:\ndef pocketContents():\n inventory = {\n \ - \ 'gold' : 500,\n 'pouch' : ['flint', 'twine', 'gemstone'],\n \ - \ 'backpack' : ['xylophone','dagger', 'bedroll','bread loaf']\n }\n\n return\ - \ inventory\n" - unittests: - test1: - - '" rofl this is cool "' - test2: - - '" ABCDS"' - test3: - - '"zABCDS "' -dictionaries_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: myPricesDict() -> dict - solution: "def myPricesDict():\n my_prices = {\"bananna\": 4, \"apple\": 2, \"\ - orange\": 1.5, \"pear\": 3}\n return my_prices\n" - tags: '' - teardown: '' - text: "Put the following items into a prices dictionary and return it:\n \"bananna\"\ - : 4,\n \"apple\": 2,\n \"orange\": 1.5,\n \"pear\": 3\n\nE.g:\ndef myPricesDict():\n\ - \ #your code here\n return my_prices\n" - unittests: - test1: null -dictionaries_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: mergeToDict(list, list) -> dict - solution: "def mergeToDict(keys, values):\n resulting_dict = dict(zip(keys, values))\n\ - \ return resulting_dict\n" - tags: '' - teardown: '' - text: "Given a list of keys and a list of corresponding values, create a dictionary\n\ - containing them and return it as output. You may assume that both lists will\n\ - always be the same length.\n\nFor example, if the keys were ('color', 'flavor',\ - \ 'texture') and the values\nwere ('red', 'sour', and 'rough'), the dictionary\ - \ would look like:\n{'color': 'red', 'flavor': 'sour', 'texture': 'rough'}\n\n\ - E.g:\ndef mergeToDict(keys, values):\n #your code here\n return resulting_dict\n" - unittests: - test1: - - (1, 2, 3, 4) - - (5, 6, 7, 8) - test2: - - ('1', '2', '3', '4') - - ('a', 'b', 'c', 'd') - test3: - - ('1', '2', '3', '4') - - ([1,], [2,], [3,], [4,]) -dictionaries_4: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: getDictKeys(dict) -> list - solution: "def getDictKeys(a_dictionary):\n return a_dictionary.keys()\n" - tags: '' - teardown: '' - text: "Write a function called getDictKeys that is given a dictionary and returns\ - \ a \nlist of keys in the given dictionary. \n\nE.g:\ndef getDictKeys(a_dictionary):\n\ - \ # do stuff here\n return all_the_keys\n" - unittests: - test1: - - a: 1 - b: 2 - c: 3 - test2: - - 1: 1 - c: None - ('a': null - ): 2 - b: {} - a: [] -dictionaries_5: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: checkKeyExists(dict, key) -> bool - solution: "def getDictKeys(a_dictionary):\n return a_dictionary.keys()\n" - tags: '' - teardown: '' - text: "Write a function called checkKeyExists that is given a dictionary and a key\ - \ and\nreturns True if the key exists in the dictionary or False if it does not.\ - \ \n\nE.g:\ndef checkKeyExists(a_dictionary, the_key):\n # do stuff here\n\ - \ return exists_bool\n" - unittests: - test1: - - a: 1 - b: 2 - - a - test2: - - a: 1 - b: 2 - - 1 - test3: - - a: 1 - b: 2 - - b - test4: - - a: 1 - b: 2 - - c - test5: - - a: 1 - b: 2 - - '2' -dictionaries_6: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: checkKeysExist(dict, keys) -> dict - solution: "def checkKeysExists(the_dict, keys):\n out = {}\n for key in keys:\n\ - \ out[key] = key in the_dict\n return out\n" - tags: '' - teardown: '' - text: "Write a function called checkKeysExists that is given a dictionary and a\ - \ list\nof keys to look for in teh dictionary. The function returns a new dictionary\n\ - containing each key in the provided list with an associated boolean value\nindicating\ - \ whether or not the key from the list was found in the given\ndictionary.\n\n\ - As an example, if given {'a': 0, 'b': 1} and ['a', 'c'] for keys, the output\n\ - would be {'a': True, 'c': False}. \n\nE.g:\ndef checkKeysExists(a_dictionary,\ - \ some_keys):\n # do stuff here\n return exists_dict\n" - unittests: - test1: - - a: 12 - b: 2 - - - a - - c - - d - test2: - - a: 1 - b: 2 - - () -dictionaries_7: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: printGivenKeys(dict, list) - solution: "def checkKeysExists(the_dict, keys):\n out = {}\n for key in keys:\n\ - \ out[key] = key in the_dict\n return out\n" - tags: '' - teardown: '' - text: "Write a function called printGivenKeys that is given a dictionary and a list\n\ - of keys to look for in teh dictionary. For each item in the list, the function\n\ - prints the item and the value associated with it in the provided dictionary.\n\ - If the item is not in the dictionary, None is used for the value. \n\nAs an example,\ - \ if given {'a': 0, 'b': 1} and ['a', 'c'] for keys, it would \nprint:\na, 0\n\ - c, None\n\nE.g:\ndef printGivenKeys(a_dictionary, some_keys):\n # do stuff\ - \ here\n # return nothing\n" - unittests: - test1: - - a: 12 - b: 2 - - - a - - c - - d - test2: - - a: 1 - b: 2 - - () -lists_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: sumAllItems(list of num) -> number - solution: "def sumAllItmes(some_nums):\n the_sum = 0.\n for num in some_nums:\n\ - \ the_sum += num\n return the_sum\n" - tags: '' - teardown: '' - text: "write a function called sumAllItems that accepts a list or tuple of numbers,\ - \ \nsumms them, and returns the sum. \n\nE.g:\ndef sumAllItmes(some_nums):\n \ - \ # do stuff here\n return the_sum\n" - unittests: - test1: [1, 2, 3, 4, 5] - test2: [-5, 2.2, 999, -1000.0] - test3: [1, -2, 4, -6, 123.1] -lists_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: smallestOfList(list of numbers) -> number - solution: "def smallestOfList(some_nums):\n smallest = some_nums[0]\n for\ - \ num in some_nums:\n if num tuple - solution: "def convTupleUnique(some_items):\n return tuple(set(some_items))\n" - tags: '' - teardown: '' - text: "Write a function called convTupleUnique(list) that accepts a list of objects\n\ - and returns a tuple (not a list) with only the unique items from the list. \n\ - Order of the returned list is not important.\n\nE.g:\ndef convTupleUnique(some_items):\n\ - \ # do stuff here\n return unique_items\n" - unittests: - test1: ['asfd', 'b', 'b', 'c', 'b', '1', '2', 'b', 'a'] -sets_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: convTupleUniqueOrder(list) -> tuple - solution: "def convTupleUniqueOrder(some_items):\n out = []\n for item in\ - \ some_items:\n if item in out:\n continue\n out.append(item)\n\ - \ return tuple(out)\n" - tags: '' - teardown: '' - text: "Write a function called convTupleUniqueOrder(list) that accepts a list of\n\ - objects and returns a tuple (not a list) with only the unique items from the\n\ - list. Order of the returned tuple IS important. Order from the original list\n\ - should be preserved; the first time an object is observed in the given list, \n\ - it is in the returned tuple, and subsequent occurences are ignored. \n\nE.g:\n\ - def convTupleUniqueOrder(some_items):\n # do stuff here\n return unique_items\n" - unittests: - test1: ['asfd', 'b', 'b', 'c', 'b', '1', '2', 'b', 'a'] -sets_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: createSet(obj, obj, obj, obj, obj) -> set - solution: "def createSet(obj1=None, obj2=None, obj3=None, obj4=None, obj5=None):\n\ - \ new_set = set()\n for obj in (obj1, obj2, obj3, obj4, obj5):\n \ - \ if obj != None:\n new_set.add(obj)\n return new_set\n" - tags: '' - teardown: '' - text: "Write a function called createSet that accepts up to five objects, adds them\n\ - into a set, and returns a set of those objects. Hint: \"set\" is a data type.\ - \ \nDo not add any of the objects fo the set if the object is equal to the None\n\ - object.\n\nE.g:\ndef createSet(obj1=None, obj2=None, obj3=None, obj4=None, obj5=None):\n\ - \ # do stuff here\n return new_set\n" - unittests: - test1: ['asfd', 'b', 'b', 'c', 'b', '1', '2', 'b', 'a'] -sets_4: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: removeFromSet(set, obj) -> tuple - solution: "def removeFromSet(a_set, an_obj):\n if an_obj in a_set:\n a_set.remove(an_obj)\n\ - \ return tuple(a_set)\n" - tags: '' - teardown: '' - text: "Write a function called removeFromSet that accepts a set and an object. \ - \ If\nthe object exists in the set, then it is removed. The resulting set is\n\ - converted to a tuple and returned. \n\nE.g:\ndef removeFromSet(a_set, an_obj):\n\ - \ # do stuff here\n return new_tuple\n" - unittests: - test1: ['asfd', 'b', 'b', 'c', 'b', '1', '2', 'b', 'a'] -strings_1: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: returnWithQuotes() -> string - solution: "def returnWithQuotes():\n my_string = \"\"\"'It's modulus, \"%\",\ - \ not division, \"/\", or escaping \"\\\"!'\"\"\"\n return my_string\n \n" - tags: '' - teardown: '' - text: "Write a function called returnWithQuotes that takes no arguments and, when\n\ - called, returns the following text (no whitespace on the ends), but with all quotes\ - \ shown included in the string:\n\n 'It's modulus, \"%\", not division, \"\ - /\", or escaping \"\\\"!'\n\nE.g:\ndef returnWithQuotes():\n # do stuff here\n\ - \ return my_silly_string\n" - unittests: -strings_2: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: strUpper(string) -> string - solution: "def strUpper(foo):\n return foo.strip().upper()\n" - tags: '' - teardown: '' - text: "Write a function called \"strUpper\" that takes a string as an argument and\n\ - returns the string without any whitespace on the ends and all upper case.\n\n\ - E.g:\ndef strUpper(foo):\n # do stuff here\n return foo\n" - unittests: - test1: - - str(' rofl this is cool ') - test2: - - str' ABCDS') - test3: - - str('zABCDS ') -strings_3: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: firstHalfLower(string) -> string - solution: "def firstHalfLower(foo):\n length = int(len(foo) / 2)\n result\ - \ = foo[:length].lower()\n assert(len(result) * 2 <= len(foo))\n return\ - \ result\n" - tags: '' - teardown: '' - text: "Write a function called \"firstHalfLower\" that takes a string as an argument\ - \ and\nreturns the first half of the string, all lower case. When calculating\ - \ how many\ncharacters of the string to return, round down - an 11 character string\ - \ would\nresult in 5 characters being returned.\n\nE.g:\ndef firstHalfLower(foo):\n\ - \ # do stuff here\n return foo\n" - unittests: - test1: - - str(' ro3! T2is is cool ') - test2: - - str(' ABCDS') - test3: - - str('zABCDS ') - test4: - - str('123456789') -strings_4: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: justEvenChars(string) -> (string) - solution: "def justEvenChars(foo):\n return foo[::2]\n" - tags: '' - teardown: '' - text: "Write a function called \"justEvenChars\" that takes a string as an argument\ - \ and\nreturns only even numbered characters from the string. If the string is\ - \ \"coolio\", the result would be \"coi\", treating the zeroth characte as even\ - \ (0%2==0). \n\nE.g:\ndef justEvenChars(foo):\n # do stuff here\n return\ - \ foo\n" - unittests: - test1: - - str(' ro3! T2is is cool ') - test2: - - str(' ABCDS') - test3: - - str('zABCDS ') - test4: - - str('123456789') -strings_5: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: reverseOrder(string) -> string - solution: "def reverseOrder(foo):\n foo = foo.strip()\n foo.split()\n foo\ - \ = foo[::-1]\n foo = \" \".join(foo)\n return foo\n" - tags: '' - teardown: '' - text: "Write a function called \"reverseOrder\" that takes a string as an argument\ - \ and\nreturns another string with all of the whitespace delimetered words in\ - \ the\nreverse order, not taking any special consideration for number/symbols.\ - \ KISS.\nIf the string, \" one1 tw_o thREE four!\" is passed in, \"four! thREE\ - \ tw_0 one1\"\nwould be returned. Strip any whitespace from the ends of hte given\ - \ string.\n\nE.g:\ndef reverseOrder(foo):\n # do stuff here\n return foo\n" - unittests: - test1: - - str('ro3! T2is is cool') - test2: - - str(' ABCDS') - test3: - - str('zABCDS one two three!') - test4: - - str('123456789 asdf ASDF 4 _ 123 nine? \"\"') -strings_6: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: listToCSV(list) -> string - solution: "def listToCSV(words_list):\n csv_string = ','.join(words_list)\n \ - \ return csv_string\n" - tags: '' - teardown: '' - text: "Write a function called \"listToCSV\" that takes a list of strings and combines\n\ - them into a single string with all words separated by a comma: \",\". For\nexample,\ - \ [\"one\", 'two', 'three'] becomes \"one,two,three\".\n\nE.g:\ndef listToCSV(words_list):\n\ - \ # do stuff here\n return csv_string\n" - unittests: - test1: - - ['one', 'two', 'three'] - test2: - - ['1', ',', ':', "fiftyfive"] -strings_7: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: undToShortCSV(string) -> string - solution: "def listToCSV(words_list):\n csv_string = ','.join(words_list)\n \ - \ return csv_string\n" - tags: '' - teardown: '' - text: "Write a function called \"undToShortCSV\" that takes a string with words\n\ - separated by underscores, \"_\", changes the underscores to commas, \",\", and\n\ - returns only the first three words. You can assume that there will always\nbe\ - \ more than three words separated by underscore given. \n\nFor exmaple, \"one_two_three_four_five\"\ - \ becomes \"one,two,three\".\n\nE.g:\ndef undToShortCSV(und_sep_words):\n #\ - \ do stuff here\n return csv_sep_words\n" - unittests: - test1: - - str('one_two_three_four_five') - test2: - - '_______' - test3: - - str('1_2_3__five_six!\'\'_seven') -strings_8: - imports: '' - posttest: '' - pretest: '' - setup: '' - signature: getIndexOf(string, string) -> int - solution: "def getIndexOf(word, search_string):\n if word in search_string:\n\ - \ return search_string.index(word)\n else:\n return -1\n" - tags: '' - teardown: '' - text: "Wirte a functuion called \"getIndexOf\" that returns the index of a given\ - \ word\ninside of a given string. If the word is not present, it returns a -1.\ - \ \n\nFor exmaple, if the word is \"pizza\", and the search_string is \"there\ - \ is pizza on the plate\", then the index is 9.\n\nE.g:\ndef getIndexOf(word,\ - \ search_string):\n # do stuff here\n return index \n" - unittests: - test1: - - str('one_two_three_four_five') - test2: - - str('_______') - test3: - - str('1_2_3__five_six!\'\'_seven') diff --git a/cobra/clientdata/.gitkeep b/cobra/clientdata/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/cobra/cobra_client.py b/cobra/cobra_client.py deleted file mode 100644 index 75828d8..0000000 --- a/cobra/cobra_client.py +++ /dev/null @@ -1,210 +0,0 @@ -import requests -import json -from util.solution_checker import Solution -from prompt_toolkit.shortcuts import create_eventloop -from ptpython.python_input import PythonInput, PythonCommandLineInterface -from ptpython.repl import run_config -from util.utility import cls, hash_results, encode_message, decode_message, load_yml, save_yml -from getpass import getpass -import colorama as cr -from time import sleep - - -class CobraClient(): - def __init__(self, server_socket): - cr.init() - self.headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} - self.username = None - self.sessionid = None - self.server_socket = server_socket - self.run() - - def get_lessons(self): - req = requests.get('http://{0}:{1}/getlessons'.format(*self.server_socket)) - return json.loads(req.text) - - def get_questions(self, lesson): - req = requests.post('http://{0}:{1}/getquestions'.format(*self.server_socket), - json={'lesson':lesson}, - headers=self.headers) - return son.loads(req.text) - - def get_question(self, lesson, question_label): - req = requests.post('http://{0}:{1}/getquestion'.format(*self.server_socket), - json={'lesson': lesson, 'question_label': question_label, 'username': self.username}, - headers=self.headers) - return json.loads(req.text) - - def get_next_question(self): - req = requests.post('http://{0}:{1}/getnextquestion'.format(*self.server_socket), - json={'username': self.username}, - headers=self.headers) - return json.loads(req.text) - - def create_new_user(self): - username = input('Enter a username: ') - password = getpass('Enter a password: ') - req = requests.post('http://{0}:{1}/newuser'.format(*self.server_socket), - json={'username':username, 'password':encode_message(password)}, - headers=self.headers) - self.username = username - self.sessionid = decode_message(req.text) - sleep(1) - - def login(self, continue_session=False): - if continue_session: - username, sessionid = list(load_yml('clientdata/session.yml').items())[0] - password = '0' - else: - username = input('Enter a username: ') - password = getpass('Enter password: ') - sessionid = '0' - req = requests.post('http://{0}:{1}/login'.format(*self.server_socket), - json={'username':username, 'password':encode_message(password), 'sessionid': encode_message(sessionid)}, - headers=self.headers) - self.username = username - save_yml('clientdata/session.yml', {self.username: req.text}) - self.session_id = decode_message(req.text) - - def solve_question(self, lesson, question_label): - question_data = self.get_question(lesson, question_label) - run_question_loop = True - while run_question_loop: - print('{}======================================================================'.format(cr.Style.RESET_ALL)) - print('{lesson_color}{lesson}\n{title_color}{title}\n{text_color}{text}\n{signature_color}{signature}{reset}\n'.format( - lesson=lesson, title=question_label, - lesson_color=cr.Back.BLUE + cr.Fore.YELLOW, title_color=cr.Back.BLUE + cr.Fore.WHITE, - text_color=cr.Back.BLACK + cr.Fore.CYAN, signature_color=cr.Back.BLACK + cr.Fore.MAGENTA, - reset=cr.Style.RESET_ALL, - **question_data)) - - eventloop = create_eventloop() - ptpython_input = PythonInput() - run_config(ptpython_input, config_file='util/ptpython_config.py') - try: - cli = PythonCommandLineInterface(python_input=ptpython_input, eventloop=eventloop) - solution = cli.run() - finally: - eventloop.close() - try: - print('Running the following parameters into your function:') - for parameter in question_data['unittests'].values(): - print('({}'.format(cr.Fore.YELLOW), end='') - print(', '.join(map(lambda item: str(item), parameter)), end='') - print('{})'.format(cr.Style.RESET_ALL)) - results = Solution(question_data, solution.text) - results.run_solution() - except Exception as e: - print('{}An exception occred while running your code: {}{}'.format(cr.Fore.RED, e, cr.Style.RESET_ALL)) - continue - - print('Time to execute: {}{:f}{}'.format(cr.Fore.GREEN, results.time_to_execute, cr.Style.RESET_ALL)) - print('Unit Test results: {}{}{}'.format(cr.Fore.GREEN, results.test_results, cr.Style.RESET_ALL)) - print('Line count: {}{}{}'.format(cr.Fore.GREEN, results.linecount, cr.Style.RESET_ALL)) - print('Character count: {}{}{}'.format(cr.Fore.GREEN, results.charcount, cr.Style.RESET_ALL)) - print('Format style violations: {}{}{}'.format(cr.Fore.RED, results.violationcount, cr.Style.RESET_ALL)) - print('Violation details:\n{}{}{}'.format(cr.Fore.RED, results.violations, cr.Style.RESET_ALL)) - - stats = { 'runtime': results.time_to_execute, - 'linecount': results.linecount, - 'charcount': results.charcount, - 'violations': results.violationcount} - - req = requests.post('http://{0}:{1}/submitsolution'.format(*self.server_socket), - json={'username': self.username, 'lesson': lesson, 'question_label': question_label, - 'solution': results.solution, 'results': hash_results(results.test_results), 'stats': stats}, - headers=self.headers) - if req.text == '"fail"': - input('Your solution did not match the server results. Please try again') - continue - else: - run_question_loop = False - - def history_menu(self): - req = requests.post('http://{0}:{1}/getcompleted'.format(*self.server_socket), - json={'username': self.username}, - headers=self.headers) - completed = json.loads(req.text) - - while True: - for index, item in enumerate(completed, 1): - print('{}) {}: {}'.format(index, item[0], item[1])) - print('0) Back') - try: - selection = int(input('Select a question to view it\'s submissions: ')) - if selection == 0: - break - item = dict(enumerate(completed, 1))[selection] - self.print_history(item[0], item[1]) - except KeyError: - pass - except ValueError: - pass - - def print_history(self, lesson, question_label): - req = requests.post('http://{0}:{1}/gethistory'.format(*self.server_socket), - json={'username': self.username, 'lesson': lesson, 'question_label': question_label}, - headers=self.headers) - history = json.loads(req.text) - for name, info in history.items(): - print('{}{}:{}'.format(cr.Back.MAGENTA + cr.Fore.CYAN, name, cr.Style.RESET_ALL)) - print('SOLUTION:') - print('{}{}{}'.format(cr.Fore.CYAN, info['solution'], cr.Style.RESET_ALL)) - print('RUNTIME:') - print('{}{}{}'.format(cr.Fore.GREEN, info['stats']['runtime'], cr.Style.RESET_ALL)) - print('LINES:') - print('{}{}{}'.format(cr.Fore.GREEN, info['stats']['linecount'], cr.Style.RESET_ALL)) - print('CHARACTERS:') - print('{}{}{}'.format(cr.Fore.GREEN, info['stats']['charcount'], cr.Style.RESET_ALL)) - print('VIOLATIONS:') - print('{}{}{}'.format(cr.Fore.RED, info['stats']['violations'], cr.Style.RESET_ALL)) - - - def run(self): - cls() - selection = input('1) login\n2) create account\n3) continue last session\n> ') - if selection == '1': - self.login() - elif selection == '2': - self.create_new_user() - elif selection == '3': - self.login(continue_session=True) - else: - pass - sleep(.25) - run_main_loop = True - while run_main_loop: - while True: - print('1) Get next question') - print('2) Review qestion solutions') - try: - selection = int(input('Select an option: ')) - if selection == 2: - self.history_menu() - if selection == 1: - break - except KeyError: - pass - except ValueError: - pass - - lesson, question_label = self.get_next_question() - if lesson == None and question_label == None: - run_main_loop = False - else: - self.solve_question(lesson, question_label) - -if __name__ == '__main__': - CobraClient(('127.0.0.1', '8000')) - - - - - - - - - - - - diff --git a/cobra/cobra_server.py b/cobra/cobra_server.py deleted file mode 100644 index d5965c7..0000000 --- a/cobra/cobra_server.py +++ /dev/null @@ -1,163 +0,0 @@ -import falcon -import yaml -#from random import * -#import uuid -import json -from util.utility import decode_message, encode_message, hash_results, load_yml -from util.server_utility import Questions, User, get_users, update_history, get_history, leaderboard -from util.solution_checker import Solution -from time import sleep - -class GetLessons(): - def on_get(self, req, resp): - resp.body = json.dumps(questions.get_lessons()) - -class GetQuestions(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - lesson = post_info['lesson'] - resp.body = json.dumps(questions.get_questions(lesson)) - -class GetQuestion(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - username = post_info['username'] - lesson = post_info['lesson'] - question_label = post_info['question_label'] - print('Recieved the following information for getquestion:') - print('username: {}'.format(username)) - print('lesson: {}'.format(lesson)) - print('question: {}'.format(question_label)) - seed = users[username].new_seed() - question = questions.get_question(lesson, question_label) - question.pop('solution') - #question.pop('history') - question.update({'seed':seed}) - resp.body = json.dumps(question) - -class AddUser(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - ip = req.remote_addr - username = post_info['username'] - password = decode_message(post_info['password']) - print('Recieved the following information for adduser:') - print('username: {}'.format(username)) - users.update({username: User(username)}) - if users[username].create_user(password, ip): - sessionid = users[username].create_new_session() - else: - raise - print('Current users: ') - print(users.keys()) - resp.body = encode_message(sessionid) - -class LoginUser(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - ip = req.remote_addr - username = post_info['username'] - password = decode_message(post_info['password']) - sessionid = decode_message(post_info['sessionid']) - print('Recieved the following information for loginuser:') - print('username: {}'.format(username)) - login_pass = False - - if users[username].check_session_id(sessionid, ip): - login_pass = True - elif users[username].login_user(password, ip): - login_pass = True - else: - sessionid = '-1' - if login_pass: - sessionid = users[username].create_new_session() - resp.body = encode_message(sessionid) - -class SubmitSolution(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - ip = req.remote_addr - username = post_info['username'] - lesson = post_info['lesson'] - question_label = post_info['question_label'] - solution = post_info['solution'] - submitted_results = post_info['results'] - stats = post_info['stats'] - print('Recieved the following information for submitsolution:') - print('username: {}'.format(username)) - print('lesson: {}'.format(lesson)) - print('question: {}'.format(question_label)) - question = questions.get_question(lesson, question_label) - question.update({'seed': users[username].get_seed()}) - master_results = Solution(question) - master_results.run_solution() - print(master_results.test_results) - print(submitted_results) - if hash_results(master_results.test_results) == submitted_results: - correct = [lesson, question_label] - users[username].update_completed(correct) - update_history(correct, username, solution, stats) - else: - correct = 'fail' - resp.body = json.dumps(correct) - -class GetNextQuestion(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - response = [None, None] - question_list = load_yml('question_list.yml') - username = post_info['username'] - print('Recieved the following information for getnextquestion:') - print('username: {}'.format(username)) - print('Current users: ') - print(users.keys()) - for lesson, question_label in question_list: - if [lesson, question_label] in users[username].get_completed(): - continue - else: - response = [lesson, question_label] - break - resp.body = json.dumps(response) - -class GetHistory(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - lesson = post_info['lesson'] - question_label = post_info['question_label'] - username = post_info['username'] - question_item = [lesson, question_label] - if question_item in users[username].get_completed(): - history = get_history(question_item) - if history: - pass - else: - history = {} - else: - history = {} - resp.body = json.dumps(history) - -class GetCompleted(): - def on_post(self, req, resp): - post_info = json.loads(req.stream.read().decode('utf-8')) - username = post_info['username'] - completed = users[username].get_completed() - resp.body = json.dumps(completed) - -class Leaderboard(): - def on_get(self, req, resp): - resp.content_type = 'text/html' - resp.body = leaderboard() - -questions = Questions() -users = get_users() -app = falcon.API() -app.add_route('/getlessons', GetLessons()) -app.add_route('/getquestions', GetQuestions()) -app.add_route('/getquestion', GetQuestion()) -app.add_route('/newuser', AddUser()) -app.add_route('/login', LoginUser()) -app.add_route('/submitsolution', SubmitSolution()) -app.add_route('/getnextquestion', GetNextQuestion()) -app.add_route('/gethistory', GetHistory()) -app.add_route('/getcompleted', GetCompleted()) -app.add_route('/leaderboard', Leaderboard()) diff --git a/cobra/enabled/2_problems.yml b/cobra/enabled/2_problems.yml deleted file mode 100644 index d0ee07d..0000000 --- a/cobra/enabled/2_problems.yml +++ /dev/null @@ -1,858 +0,0 @@ -addThem: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(2 == self._function(1, 1)) - - self.test_results.append(1 == self._function(-5.1, 6.1))' - pretest: '' - setup: '' - signature: 'def addThem(a, b): -> return the_sum' - solution: "def addThem(a, b):\n the_sum = a + b\n return the_sum" - tags: '' - teardown: '' - text: 'Write a function called addThem that accepts two numbers and returns - - their sum.' - title: basic_math_1 - unittests: {} -carmenFound: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(''atlanta'' == self._function({{''atlanta'': - True, ''memphis'': False}})) - - self.test_results.append(''memphis'' == self._function({{''atlanta'': False, ''memphis'': - True}}))' - pretest: '' - setup: '' - signature: 'def carmenFound(cities): -> return city' - solution: "def carmenFound(cities):\n for city in cities:\n if cities[city]\ - \ == True:\n return city" - tags: '' - teardown: '' - text: 'Create a function called carmenFound that is given a dictionary with a - - list of city names as keys, each associated with a boolean value - - indicating whether or not Carmen is in the city. Return the name of the - - city Carmen is found in! - - The cities dictionary will look like: {{''city_a'': False, ''city_b''...}}' - title: branching_3 - unittests: {} -checkKeyExists: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(self._function({{''a'': 0, ''b'': 1}}, ''a'')) - - self.test_results.append(not self._function({{''a'': 0, ''b'': 1}}, ''z'')) - - self.test_results.append(not self._function({{''a'': 0, ''b'': 1}}, 1)) - - self.test_results.append(not self._function({{''a'': 0, ''b'': 1}}, 0))' - pretest: '' - setup: '' - signature: 'def checkKeyExists(a_dictionary, the_key): -> return exists_bool' - solution: "def checkKeyExists(a_dictionary, the_key):\n exists_bool = the_key\ - \ in a_dictionary\n return exists_bool" - tags: '' - teardown: '' - text: 'Write a function called checkKeyExists that is given a dictionary and a - - key and returns True if the key exists in the dictionary or False if it - - does not.' - title: dictionaries_5 - unittests: {} -checkKeysExist: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'ans = {{''z'': True, ''c'': False}} - - self.test_results.append(ans.items() == self._function(((''z'',0), (''b'', 1)), - (''z'', ''c'')).items()) - - self.test_results.append((len(self._function({{''z'': 0, ''b'': 1}}, [''f'',]).keys()) - == 1))' - pretest: '' - setup: '' - signature: 'def checkKeysExist(a_dictionary, some_keys): -> return out' - solution: "def checkKeysExist(a_dictionary, some_keys):\n if isinstance(a_dictionary,\ - \ tuple):\n a_dictionary = dict(a_dictionary)\n out = {{}}\n for\ - \ key in some_keys:\n out[key] = key in a_dictionary\n return out" - tags: '' - teardown: '' - text: 'Write a function called checkKeysExist that is given a dictionary and a - - list of keys to look for in teh dictionary. The function returns a new - - dictionary containing each key in the provided list with an associated - - boolean value indicating whether or not the key from the list was found - - in the given dictionary. - - As an example, if given {{''a'': 0, ''b'': 1}} and [''a'', ''c''] for keys, the - - output would be {{''a'': True, ''c'': False}}.' - title: dictionaries_6 - unittests: {} -convTupleUnique: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'items = (9, 1, 1, 9, 2, 3, 4, 4, 5) - - res = self._function(items) - - self.test_results.append(sorted(res) == sorted(set(items)))' - pretest: '' - setup: '' - signature: 'def convTupleUnique(some_items): -> return unique_tuple' - solution: "def convTupleUnique(some_items):\n unique_tuple = tuple(set(some_items))\n\ - \ return unique_tuple" - tags: '' - teardown: '' - text: 'Write a function called convTupleUnique(list) that accepts a list of - - objects and returns a tuple (not a list) with only the unique items from - - the list. Order of the returned list is not important.' - title: sets_1 - unittests: {} -convTupleUniqueOrder: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: "items = (1, 1, 2, 3, 4, 4, 5) \nres = self._function(items)\nself.test_results.append((1,\ - \ 2, 3, 4, 5) == res)" - pretest: '' - setup: '' - signature: 'def convTupleUniqueOrder(some_items): -> return tuple(out)' - solution: "def convTupleUniqueOrder(some_items):\n out = []\n for item in\ - \ some_items:\n if item in out:\n continue\n out.append(item)\n\ - \ return tuple(out)" - tags: '' - teardown: '' - text: 'Write a function called convTupleUniqueOrder(list) that accepts a list of - - objects and returns a tuple (not a list) with only the unique items from - - the list. Order of the returned tuple IS important. Order from the - - original list should be preserved; the first time an object is observed - - in the given list, it is in the returned tuple, and subsequent occurences - - are ignored.' - title: sets_2 - unittests: {} -convertCToF: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(20/5.0 + 32.0/9.0 == self._function(20)) - - self.test_results.append(-10/5.0 + 32.0/9.0 == self._function(-10))' - pretest: '' - setup: '' - signature: 'def convertCToF(temp_in_c): -> return temp_in_f' - solution: "def convertCToF(temp_in_c):\n temp_in_f = temp_in_c/5.0 + 32.0/9.0\n\ - \ return temp_in_f" - tags: '' - teardown: '' - text: 'Write a function called convertCToF that accepts a temperature in - - centigrade and returns the equivelant temperature in Farenheight. - - The equation for this is: (f = c/5 + 32/9)' - title: basic_math_5 - unittests: {} -createSet: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(set((1, 2, 3)) == self._function(obj2=1, obj3=2, - obj4=3, obj5=3)) - - self.test_results.append(set((1, 2, 3)) == self._function(obj2=1, obj3=2, obj5=3)) - - self.test_results.append(set() == self._function(None, None, None)) - - self.test_results.append(set() == self._function())' - pretest: '' - setup: '' - signature: 'def createSet(obj1=None, obj2=None, obj3=None, obj4=None, obj5=None): - -> return new_set' - solution: "def createSet(obj1=None, obj2=None, obj3=None, obj4=None, obj5=None):\n\ - \ new_set = set()\n for obj in (obj1, obj2, obj3, obj4, obj5):\n \ - \ if obj != None:\n new_set.add(obj)\n return new_set" - tags: '' - teardown: '' - text: 'Write a function called createSet that accepts up to five objects, adds - - them into a set, and returns a set of those objects. Hint: "set" is a - - data type. Do not add any of the objects fo the set if the object is - - equal to the None object.' - title: sets_3 - unittests: {} -divideThemInt: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(2 == self._function(4.4, 2)) - - self.test_results.append(2 == self._function(5, 2))' - pretest: '' - setup: '' - signature: 'def divideThemInt(a, b): -> return integer_result' - solution: "def divideThemInt(a, b):\n integer_result = int(a//b)\n return\ - \ integer_result" - tags: '' - teardown: '' - text: 'Write a function called divideThemIOnt that performs integer division - - on two given integers, a divided by b, and return the output as an integer.' - title: basic_math_4 - unittests: {} -firstHalfLower: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'foo = "asdF12345" - - out = self._function(foo) - - self.test_results.append(foo[:len(foo)//2].lower() == out) - - self.test_results.append("" == self._function("A")) - - foo = "aS1dF2" - - out = self._function(foo) - - self.test_results.append(foo[:len(foo)//2].lower() == out)' - pretest: '' - setup: '' - signature: 'def firstHalfLower(a_string): -> return result' - solution: "def firstHalfLower(a_string):\n length = int(len(a_string) / 2)\n\ - \ result = a_string[:length].lower()\n return result" - tags: '' - teardown: '' - text: 'Write a function called "firstHalfLower" that takes a string as an - - argument and returns the first half of the string, all lower case. When - - calculating how many characters of the string to return, round down: - - An 11 character string would result in 5 characters being returned.' - title: strings_3 - unittests: {} -getDictKeys: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append([1, 2, 3, 4] == self._function({{1: 5, 2: 6, - 3: 7, 4: 8}}))' - pretest: '' - setup: '' - signature: 'def getDictKeys(a_dictionary): -> return keys' - solution: "def getDictKeys(a_dictionary):\n keys = list(a_dictionary.keys())\n\ - \ return keys" - tags: '' - teardown: '' - text: 'Write a function called getDictKeys that is given a dictionary and returns - - the keys in the dictionary as a list.' - title: dictionaries_4 - unittests: {} -getIndexOf: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(9 == self._function(''pizza'', ''there is pizza - on the plate'')) - - self.test_results.append(-1 == self._function(''PIZZA'', ''there is pizza on the - plate''))' - pretest: '' - setup: '' - signature: 'def getIndexOf(word, search_string): -> return -1' - solution: "def getIndexOf(word, search_string):\n if word in search_string:\n\ - \ return search_string.index(word)\n else:\n return -1" - tags: '' - teardown: '' - text: 'Wirte a functuion called "getIndexOf" that returns the index of a given - - word inside of a given string. If the word is not present, it returns - - a -1. - - For exmaple, if the word is "pizza", and the search_string is: - - "there is pizza on the plate" - - then the index is 9.' - title: strings_8 - unittests: {} -getTruthiness: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append("margarita" == self._function([])) - - self.test_results.append("tequilla" == self._function((1,))) - - self.test_results.append("margarita" == self._function(0))' - pretest: '' - setup: '' - signature: 'def getTruthiness(obj): -> return resulting_word' - solution: "def getTruthiness(obj):\n if obj:\n resulting_word = \"tequilla\"\ - \n else:\n resulting_word = \"margarita\"\n return resulting_word" - tags: '' - teardown: '' - text: 'Write a function called getTruthiness that is given an object and, if - - that object evaluates to True, returns the string "tequilla", or otherwise - - returns the string "margarita".' - title: branching_1 - unittests: {} -justEvenChars: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(''zBD '' == self._function(''zABCDS '')) - - self.test_results.append(''13579'' == self._function(''123456789'')) - - self.test_results.append('' o!Ti sco '' == self._function('' ro3! T2is is cool - ''))' - pretest: '' - setup: '' - signature: 'def justEvenChars(a_string): -> return even_num_chars' - solution: "def justEvenChars(a_string):\n even_num_chars = a_string[::2]\n \ - \ return even_num_chars" - tags: '' - teardown: '' - text: 'Write a function called "justEvenChars" that takes a string as an - - argument and returns only even numbered characters from the string. If - - the string is "coolio", the result would be "coi", treating the zeroth - - characte as even (0%2==0).' - title: strings_4 - unittests: {} -listToCSV: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'out = self._function([''one'', '' '', ''two'', '''', ''three'', '''']) - - self.test_results.append(out == "one, ,two,,three,") - - out = self._function([''1'', '','', '':'', ''fiftyfive'']) - - self.test_results.append(out == ''1,,,:,fiftyfive'')' - pretest: '' - setup: '' - signature: 'def listToCSV(words_list): -> return csv_string' - solution: "def listToCSV(words_list):\n csv_string = ','.join(words_list)\n \ - \ return csv_string" - tags: '' - teardown: '' - text: 'Write a function called "listToCSV" that takes a list of strings and - - combines them into a single string with all words separated by a - - comma: ",". For example, ["one", ''two'', ''three''] becomes "one,two,three".' - title: strings_6 - unittests: {} -mergeToDict: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'keys = [1, 2, 3, 4] - - vals = [5, 6, 7, 8] - - self.test_results.append({{1: 5, 2: 6, 3: 7, 4: 8}} == self._function(keys, vals))' - pretest: '' - setup: '' - signature: 'def mergeToDict(keys, values): -> return merged_dict' - solution: "def mergeToDict(keys, values):\n merged_dict = dict(zip(keys, values))\n\ - \ return merged_dict" - tags: '' - teardown: '' - text: 'Write a function called mergeToDict that accepts a list of keys and a - - corresponding list ov values and returns a dictionary that has each - - key and value associated. - - For example, if the keys were (''color'', ''flavor'', ''texture'') and the values - - were (''red'', ''sour'', and ''rough''), the dictionary would look like: - - {{''color'': ''red'', ''flavor'': ''sour'', ''texture'': ''rough''}}' - title: dictoinaries_3 - unittests: {} -myPricesDict: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'answer = {{''bananna'': 4, ''apple'': 2, ''orange'': 1.5, ''pear'': 3}} - - self.test_results.append(answer == self._function())' - pretest: '' - setup: '' - signature: 'def myPricesDict(): -> return prices_dict' - solution: "def myPricesDict():\n prices_dict = {{'bananna': 4, 'apple': 2, 'orange':\ - \ 1.5, 'pear': 3}}\n return prices_dict" - tags: '' - teardown: '' - text: 'Write a function called myPricesDict that puts the following items and - - prices into a dictionary and returns it: - - "bananna": 4, - - "apple": 2, - - "orange": 1.5, - - "pear": 3' - title: dictoinaries_2 - unittests: {} -pocketContent: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'i = {{''gold'': 90, ''po'': [''fl'', ''te'', ''gon'']}} - - r = {{''gold'': 90, ''po'': [''fl'', ''te'', ''gon''], ''pocket'': [''seashell'']}} - - self.test_results.append(r == self._function(i))' - pretest: '' - setup: '' - signature: 'def pocketContent(inventory): -> return inventory' - solution: "def pocketContent(inventory):\n inventory['pocket'] = ['seashell']\n\ - \ return inventory" - tags: '' - teardown: '' - text: 'Write a function called pocketContents that accepts an inventory - - dictiionary and adds a "pocket" to the inventory that contains a - - [''seashell'',]. - - For example the inventory might look like this: - - {{''gold'': 400, ''pouch'': [''flint'', ''twine'', ''gemston'']}} - - And the returned inventory would look like: - - {{''gold'': 400, ''pouch'': [''flint'', ''twine''], ''pocket'': [''seashell'']}}' - title: dictionaries_1 - unittests: {} -printGivenKeys: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'p0 = ''./{{}}''.format(_randStr()) - - _stdRdr(self._function, ({{''a'': 0, ''b'': 1}}, ()), p0) - - self.test_results.append('''' == open(p0, ''r'').read()) - - _stdRdr(self._function, ({{''a'': 0, ''b'': 1}}, (''z'', ''y'',''a'')), p0) - - self.test_results.append(''z, None\\ny, None\\na, 0\\n'' == open(p0, ''r'').read()) - - os.remove(p0)' - pretest: '' - setup: '' - signature: 'def printGivenKeys(a_dictionary, some_keys): -> #return nothing' - solution: "def printGivenKeys(a_dictionary, some_keys):\n for key in some_keys:\n\ - \ if key in a_dictionary:\n print(\"{{}}, {{}}\".format(key,\ - \ a_dictionary[key]))\n else:\n print(\"{{}}, {{}}\".format(key,\ - \ None))\n #return nothing" - tags: '' - teardown: '' - text: 'Write a function called printGivenKeys that is given a dictionary and a - - list of keys to look for in teh dictionary. For each item in the list, - - the function prints the item and the value associated with it in the - - provided dictionary. If the item is not in the dictionary, None is used - - for the value. The sequence of the list should be preserve when printing. - - As an example, if given {{''a'': 0, ''b'': 1}} and [''c'', ''a''] for keys, it - would - - print: - - c, None - - a, 0' - title: dictionaries_7 - unittests: {} -remainder: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: self.test_results.append(4 == self._function(9, 5)) - pretest: '' - setup: '' - signature: 'def remainder(a, b): -> return the_remainder' - solution: "def remainder(a, b):\n the_remainder = a % b\n return the_remainder" - tags: '' - teardown: '' - text: 'Write a function called remainder that accepts two numbers, a and b, - - and returns the remainder of a / b.' - title: basic_math_2 - unittests: {} -removeFromSet: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'foo = (1, 2, 3, 4, 5, 6) - - new = self._function(set(foo), 6) - - self.test_results.append(sorted((1, 2, 3, 4, 5)) == sorted(new)) - - new = self._function(set(foo), 7) - - self.test_results.append(sorted(new) == sorted(foo))' - pretest: '' - setup: '' - signature: 'def removeFromSet(a_set, an_item): -> return tuple(a_set)' - solution: "def removeFromSet(a_set, an_item):\n if an_item in a_set:\n \ - \ a_set.remove(an_item)\n return tuple(a_set)" - tags: '' - teardown: '' - text: 'Write a function called removeFromSet that accepts a set and an item. - - If the item exists in the set, then it is removed. The resulting set - - is converted to a tuple and returned.' - title: sets_4 - unittests: {} -returnWithQuotes: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'foo = """''It''s modulus, "%", not division, "/", or escaping "\"!''""" - - out = self._function() - - self.test_results.append(foo == out)' - pretest: '' - setup: '' - signature: 'def returnWithQuotes(): -> return quotes' - solution: "def returnWithQuotes():\n quotes = \"\"\"'It's modulus, \"%\", not\ - \ division, \"/\", or escaping \"\\\"!'\"\"\"\n return quotes" - tags: '' - teardown: '' - text: 'Write a function called returnWithQuotes that takes no arguments and, - - when called, returns the following text (no whitespace on the ends), - - but with all quotes shown included in the string: - - ''It''s modulus, "%", not division, "/", or escaping "\"!''' - title: strings_1 - unittests: {} -reverseOrder: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'out = self._function(''ro3! T2is is cool'') - - self.test_results.append(''cool is T2is ro3!'' == out) - - out = self._function('' ABCDS'') - - self.test_results.append(''ABCDS'' == out) - - out = self._function(''123456789 asdf ASDF 4 _ 123 nine? \"\"'') - - self.test_results.append(''\"\" nine? 123 _ 4 ASDF asdf 123456789'' == out)' - pretest: '' - setup: '' - signature: 'def reverseOrder(a_string): -> return switched' - solution: "def reverseOrder(a_string):\n switched = a_string.strip()\n switched\ - \ = switched.split()\n switched = switched[::-1]\n switched = \" \".join(switched)\n\ - \ return switched" - tags: '' - teardown: '' - text: 'Write a function called "reverseOrder" that takes a string as an - - argument and returns another string with all of the whitespace - - delimetered words in the reverse order, not taking any special - - consideration for number/symbols. KISS. If the string, " one1 tw_o - - thREE four!" is passed in, "four! thREE tw_0 one1" would be returned. - - Strip any whitespace from the ends of the given string.' - title: strings_5 - unittests: {} -smallestOfList: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(-5 == self._function((1, 2, 3, 4, -5))) - - self.test_results.append(1 == self._function((1, 2, 3, 4, -5), True)) - - self.test_results.append(1 == self._function((2, 1, -1, 3, 4, -5), True)) - - self.test_results.append(1 == self._function((-2, 1, -1, 3, 4, -5), True))' - pretest: '' - setup: '' - signature: 'def smallestOfList(some_nums, absolute_val=False): -> return smallest' - solution: "def smallestOfList(some_nums, absolute_val=False):\n smallest = None\n\ - \ small_loc = None\n for n, num in enumerate(some_nums):\n num =\ - \ abs(num) if absolute_val else num\n if smallest == None or num < smallest:\n\ - \ smallest = num\n small_loc = n\n smallest = some_nums[small_loc]\n\ - \ return smallest" - tags: '' - teardown: '' - text: 'Write a function called smallestOfList that accepts a list or tuple of - - numbers and returns the smallest number found in the list. - - However, if absolute value is set to True, it should return the number that - - has the smallest absolute value. - - If two numbers in the list both have an absolute value that is the - - smallest and the same, the first one encounterd should be returned.' - title: lists_2 - unittests: {} -strUpper: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'foo = " asfd" - - self.test_results.append(foo.upper().strip() == self._function(foo)) - - foo = "123%asf d " - - self.test_results.append(foo.upper().strip() == self._function(foo)) - - foo = "ASDF" - - self.test_results.append(foo == self._function(foo)) - - foo = "" - - self.test_results.append(foo == self._function(foo)) - - foo = " \\n" - - self.test_results.append(foo.strip() == self._function(foo))' - pretest: '' - setup: '' - signature: 'def strUpper(a_string): -> return upper_stripped' - solution: "def strUpper(a_string):\n upper_stripped = a_string.upper().strip()\n\ - \ return upper_stripped" - tags: '' - teardown: '' - text: 'Write a function called "strUpper" that takes a string as an argument - - and returns the string without any whitespace on the ends and all upper - - case.' - title: strings_2 - unittests: {} -sumAllItems: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self.test_results.append(0.0000001 > 10.1 - self._function([2, 4, 20, - 4.1, -20])) - - self.test_results.append(0 == self._function((-1, 1))) - - self.test_results.append(None == self._function(())) - - self.test_results.append(None == self._function([]))' - pretest: '' - setup: '' - signature: 'def sumAllItems(some_nums): -> return the_sum' - solution: "def sumAllItems(some_nums):\n if len(some_nums) == 0:\n the_sum\ - \ = None\n else:\n the_sum = sum(some_nums)\n return the_sum" - tags: '' - teardown: '' - text: 'Write a function called sumAllItems that accepts a list or tuple of - - numbers, summs them, and returns the sum. If the list is empty, return - - None, rather than zero.' - title: lists_1 - unittests: {} -toInt: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: self.test_results.append(3 == self._function(3.9)) - pretest: '' - setup: '' - signature: 'def toInt(a_float): -> return an_integer' - solution: "def toInt(a_float):\n an_integer = int(a_float)\n return an_integer" - tags: '' - teardown: '' - text: 'Write a function called toInt that accepts an interger or floating point - - number and returns it as an integer. E.g. 3.3 becomes 3.' - title: basic_math_3 - unittests: {} -twosTruthiness: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'self._function([], [], [], []) - - ''foobar'' - - self._function([], [], [1,], []) - - ''foobar'' - - self._function([], [], [1,], [1,]) - - ''twos'' - - self._function([1,], [], [1,], [1,]) - - ''threes'' - - self._function([1,], [1,], [1,], [1,]) - - ''foobar''' - pretest: '' - setup: '' - signature: 'def twosTruthiness(obj0, obj1, obj2, obj3): -> return resulting_word' - solution: "def twosTruthiness(obj0, obj1, obj2, obj3):\n items = (obj0, obj1,\ - \ obj2, obj3)\n count = len([o for o in items if o])\n if count == 2:\n\ - \ resulting_word = \"twos\"\n elif count == 3:\n resulting_word\ - \ = \"threes\"\n else:\n resulting_word = \"foobar\"\n return resulting_word" - tags: '' - teardown: '' - text: 'Write a function called twosTruthiness that is given four boolean values. - - if any two of the four are True, then return "twos". If any three of them - - are True, then return "threes", if less than two or four of them are True, - - then return "foobar"' - title: branching_2 - unittests: {} -undToShortCSV: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\nglobal sys\n\ - import sys\n\ndef _randStr(str_len=10):\n return ''.join(random.choices(string.ascii_uppercase,\ - \ k=str_len))\n\ndef _stdRdr(func, args, path):\n orig = sys.stdout\n with\ - \ open(path, 'w') as sys.stdout:\n func(*args)\n sys.stdout = orig\n" - posttest: 'out = self._function(''one_two_three_four_five'') - - self.test_results.append(out == ''one,two,three'') - - out = self._function(''one_two_ '') - - self.test_results.append(out == ''one,two, '') - - out = self._function('' _ __ _ '') - - self.test_results.append(out == '' , ,'')' - pretest: '' - setup: '' - signature: 'def undToShortCSV(und_sep_words): -> return comma_sep' - solution: "def undToShortCSV(und_sep_words):\n comma_sep = ','.join(und_sep_words.split('_')[:3])\n\ - \ return comma_sep" - tags: '' - teardown: '' - text: 'Write a function called "undToShortCSV" that takes a string with words, - - each separated by an underscore, ''_'', changes the underscores to - - commas, ",", and returns only the first three words. You can assume - - that there will always be more than three words separated by underscore - - given.' - title: strings_7 - unittests: {} diff --git a/cobra/enabled/3_problems.yml b/cobra/enabled/3_problems.yml deleted file mode 100644 index 0d61e39..0000000 --- a/cobra/enabled/3_problems.yml +++ /dev/null @@ -1,309 +0,0 @@ -appendLineToFile: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - c0 = "{{}}\\n{{}}\\n".format(_randStr(), _randStr()) - - c1 = _randStr() - - self.test_results.append(len(c0) == open(f0, ''w'').write(c0)) - - self._function(f0, c1) - - self.test_results.append(c0 + c1 == open(f0, ''r'').read()) - - os.remove(f0)' - pretest: '' - setup: '' - signature: 'def appendLineToFile(file_path, content): -> #return nothing' - solution: "def appendLineToFile(file_path, content):\n with open(file_path, 'a')\ - \ as f:\n f.write(content)\n #return nothing" - tags: '' - teardown: '' - text: 'Write a function called appendLineToFile that accepts a path and a string, - - and writes the string to the end of the file (without modifying the - - existing contents in the file).' - title: readwrite_3 - unittests: {} -cdAndWrite: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - d0 = ''./{{}}''.format(_randStr()) - - os.mkdir(d0) - - cwd = os.path.realpath(''.'') - - content = ''asdf'' - - self.test_results.append(len(content) == self._function(d0, f0, content)) - - self.test_results.append(''./'' + os.path.realpath(''.'').split(''/'')[-1] == - d0) - - self.test_results.append(content == (os.path.isfile(f0) and open(f0, ''r'').read())) - - os.path.isfile(f0) and os.remove(f0) - - os.chdir(cwd) - - os.path.isdir(d0) and os.rmdir(d0)' - pretest: '' - setup: '' - signature: 'def cdAndWrite(dir_path, file_name, content): -> return os.stat(file_name).st_size' - solution: "def cdAndWrite(dir_path, file_name, content):\n os.chdir(dir_path)\n\ - \ open(file_name, 'w').write(content)\n return os.stat(file_name).st_size" - tags: '' - teardown: '' - text: 'Write a function called cdAndWrite that changes directory to the given - - path, then edits a file and writes the given content to it. Return the - - size of the file in bytes!' - title: os_basics_2 - unittests: {} -createTmpDir: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'd0 = ''''.join(random.choices(string.ascii_uppercase, k=4)) - - p0 = ''/tmp/{{}}''.format(d0) - - out = self._function(d0) - - self.test_results.append(out == p0) - - os.path.isdir(p0) and os.rmdir(p0)' - pretest: '' - setup: '' - signature: 'def createTmpDir(dir_name): -> return dir_path' - solution: "def createTmpDir(dir_name):\n #os.umask(0077)\n dir_path = '/tmp/{{}}'.format(dir_name)\n\ - \ os.mkdir(dir_path)\n return dir_path" - tags: '' - teardown: '' - text: 'Write a function called createTmpDir that accepts a directory name and - - creates it in /tmp. Set the permissions so that only the directory owner - - can read/write/execute it. Return the complete path to the directory. - - Bonus: Can you do this in a way that avoids a race condition security - - vulnerability?' - title: os_basics_4 - unittests: {} -listDirFilter: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: "e0 = _randStr()\ne1 = _randStr()\nfiles = {{e0: set(), e1: set()}}\n\ - for e in (e0, e1):\n for n in range(5):\n f = \"{{}}.{{}}\".format(n,\ - \ e)\n files[e].add(f)\n open(f, 'w').close()\nreg_filter = '(./){{0,1}}[0-9].'\ - \ + e0\nself.test_results.append(files[e0] == set(self._function('./', reg_filter)))\n\ - for f in list(files[e0]) + list(files[e1]):\n os.remove(f)" - pretest: '' - setup: '' - signature: 'def listDirFilter(dir_path, regex_filter): -> return files_list' - solution: "def listDirFilter(dir_path, regex_filter):\n files_list = []\n \ - \ for name in os.listdir(dir_path):\n if re.match(regex_filter, name):\n\ - \ files_list.append(name) \n return files_list" - tags: '' - teardown: '' - text: 'Write a function called listDirFilter that accepts a directory path and a - - regex filter. It retuns a list of files at the directory path whos names - - match the given regex. Return only the file names, not their complete - - path.' - title: os_basics_3 - unittests: {} -moveAFile: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - f1 = ''./{{}}''.format(_randStr()) - - content = ''asdf'' - - self.test_results.append(len(content) == open(f0, ''w'').write(content)) - - self._function(f0, f1) - - self.test_results.append(content == (os.path.isfile(f1) and open(f1, ''r'').read())) - - self.test_results.append(os.path.isfile(f1) and os.remove(f1) or True) - - self.test_results.append(not (os.path.isfile(f0) and os.remove(f0)))' - pretest: '' - setup: '' - signature: 'def moveAFile(src_path, dst_path): -> # return nothing' - solution: "def moveAFile(src_path, dst_path):\n shutil.move(src_path, dst_path)\n\ - \ # return nothing" - tags: '' - teardown: '' - text: 'Write a function called moveAFile that accepts a source file path and a - - dest file path and moves the file to the destination.' - title: os_basics_1 - unittests: {} -readFileToString: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - c0 = ''{{}}\\n{{}}\\n''.format(_randStr(), _randStr()) - - self.test_results.append(len(c0) == open(f0, ''w'').write(c0)) - - self.test_results.append(c0 == self._function(f0)) - - os.remove(f0)' - pretest: '' - setup: '' - signature: 'def readFileToString(file_path): -> return contents' - solution: "def readFileToString(file_path):\n with open(file_path, 'r') as f:\n\ - \ contents = f.read()\n return contents" - tags: '' - teardown: '' - text: 'Write a function called readFileToString that accepts a path, opens the - - path, and returns the contents of the file as a string value. You can - - assume that you''ll have access to the file, it won''t be binary data, you - - don''t need to do anything to the given path to open it.' - title: readwrite_1 - unittests: {} -readLinesFromFile: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - c0 = "{{}}\\n{{}}\\n".format(_randStr(), _randStr()) - - self.test_results.append(len(c0) == open(f0, ''w'').write(c0)) - - self.test_results.append(c0.split(''\\n'') == self._function(f0)) - - os.remove(f0)' - pretest: '' - setup: '' - signature: 'def readLinesFromFile(file_path): -> return contents' - solution: "def readLinesFromFile(file_path):\n contents = []\n with open(file_path,\ - \ 'r') as f:\n for line in f.read().split('\\n'):\n contents.append(line)\n\ - \ return contents" - tags: '' - teardown: '' - text: 'Write a function called readLinesFromFiles that accepts a path, reads the - - contents, and returns a list of stings for each line in the file. Do not - - include newline characters in the returned strings.' - title: readwrite_2 - unittests: {} -realPath: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'cwd = os.path.realpath(''.'') - - self.test_results.append(cwd == self._function(''.''))' - pretest: '' - setup: '' - signature: 'def realPath(dir_name): -> # return files_paths' - solution: "def realPath(dir_name):\n real_path = os.path.realpath(dir_name)\n\ - \ return real_path\n#def filePaths(dir_path, files_list):\n# '''os_basics_6\n\ - # Write a function called filePaths that accepts a directory path and a\n#\ - \ list of files. It returns a list of full paths to those files. \n# For\ - \ example, if dir_path is '/tmp/' and files list is ['./foobar.txt',\n# 'diddun.txt'],\ - \ the output would be ['/tmp/foobar.txt', '/tmp/diddun.txt'].\n# '''\n# \ - \ return files_paths" - tags: '' - teardown: '' - text: 'Write a function called realPath that accepts a path, checks if it has - - any symlinks in it, and returns the actual path (wihout symlinks) to the - - file or directory the original path pointed to.' - title: os_basics_5 - unittests: {} -rewriteInLower: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - f1 = ''./{{}}''.format(_randStr()) - - c0 = "!{{}}\\n{{}}13\\n! #@\\n".format(_randStr(), _randStr()).upper() - - self.test_results.append(len(c0) == open(f0, ''w'').write(c0)) - - self._function(f0, f1) - - self.test_results.append(os.path.isfile(f0) and os.path.isfile(f1)) - - self.test_results.append(c0.lower() == open(f1, ''r'').read()) - - os.remove(f0) - - os.remove(f1)' - pretest: '' - setup: '' - signature: 'def rewriteInLower(source_path, dest_path): -> #return nothing' - solution: "def rewriteInLower(source_path, dest_path):\n with open(source_path,\ - \ 'r') as f:\n contents = f.read().lower()\n with open(dest_path, 'w')\ - \ as f:\n f.write(contents)\n #return nothing" - tags: '' - teardown: '' - text: 'Write a function called rewriteInLower that accepts a source and - - destination path. It reads in the source path, converts the contents to - - all lower case, and writes them to the destination path.' - title: readwrite_5 - unittests: {} -truncateWriteFile: - imports: "\nglobal os\nimport os\nglobal random\nimport random\nglobal re\nimport\ - \ re\nglobal shutil\nimport shutil\nglobal string\nimport string\n\ndef _randStr(str_len=10):\n\ - \ return ''.join(random.choices(string.ascii_uppercase, k=str_len))\n" - posttest: 'f0 = ''./{{}}''.format(_randStr()) - - c0 = "{{}}\\n{{}}\\n".format(_randStr(), _randStr()) - - c1 = _randStr() - - self.test_results.append(len(c0) == open(f0, ''w'').write(c0)) - - self._function(f0, c1) - - self.test_results.append(c1 == open(f0, ''r'').read()) - - os.remove(f0)' - pretest: '' - setup: '' - signature: 'def truncateWriteFile(file_path, content): -> #return nothing' - solution: "def truncateWriteFile(file_path, content):\n with open(file_path,\ - \ 'w') as f:\n f.write(content)\n #return nothing" - tags: '' - teardown: '' - text: 'Write a function called truncateWriteFile that accepts a path and a - - string, and writes the string to the file, truncating (overwriting) any - - existing content in the file.' - title: readwrite_4 - unittests: {} diff --git a/cobra/enabled/final.yml b/cobra/enabled/final.yml deleted file mode 100644 index 2a4234f..0000000 --- a/cobra/enabled/final.yml +++ /dev/null @@ -1,188 +0,0 @@ -first half lower: - imports: | - global random - import random - setup: | - random.seed({seed}) - random_string = lambda: ''.join([chr(random.choice([random.randint(65,90), random.randint(97,122)])) for _ in range(0, random.randint(3,30))]) - teardown: '' - pretest: '' - posttest: '' - signature: 'def first_half_lower(a_string: str) -> str' - solution: | - def firstHalfLower(a_string): - length = int(len(a_string) / 2) - result = a_string[:length].lower() - return result - text: | - Write a function called "firstHalfLower" that takes a string as an - argument and returns the first half of the string, all lower case. When - calculating how many characters of the string to return, round down: - An 11 character string would result in 5 characters being returned. - unittests: - test1: - - str('HELLO WORLD :)') - test2_x6: - - random_string() - tags: - - strings -add them: - imports: | - import random - setup: | - random.seed({seed}) - teardown: '' - pretest: '' - posttest: '' - signature: 'def add_them(a: int, b: int) -> int' - solution: | - def addThem(a, b): - the_sum = a + b - return the_sum - text: | - Write a function called addThem that accepts two numbers and returns - their sum. - unittests: - test1: - - int(10) - - int(20) - test2_x3: - - random.randint(-1000,1000) - - random.randint(-1000,1000) - tags: - - math - -just even character: - imports: | - global random - import random - setup: | - random.seed({seed}) - random_string = lambda: ''.join([chr(random.choice([random.randint(65,90), random.randint(97,122)])) for _ in range(0, random.randint(3,30))]) - teardown: '' - pretest: '' - posttest: '' - signature: 'def just_even_character(a_string: str) -> str' - solution: | - def justEvenChars(a_string): - even_num_chars = a_string[::2] - return even_num_chars - text: | - Write a function called "justEvenChars" that takes a string as an - argument and returns only even numbered characters from the string. If - the string is "coolio", the result would be "coi", treating the zeroth - characte as even (0%2==0). - unittests: - test1: - - str('Hello World :)') - test2_x8: - - random_string() - tags: - - strings - -reverse order: - imports: | - global random - import random - setup: | - random.seed({seed}) - random_string = lambda: ''.join([chr(random.choice([random.randint(65,90), random.randint(97,122)])) for _ in range(0, random.randint(3,30))]) - teardown: '' - pretest: '' - posttest: '' - signature: 'def reverse_order(a_string: str) -> str' - solution: | - def reverseOrder(a_string): - switched = a_string.strip() - switched = switched.split() - switched = switched[::-1] - switched = " ".join(switched) - return switched - text: | - Write a function called "reverseOrder" that takes a string as an - argument and returns another string with all of the whitespace - delimetered words in the reverse order, not taking any special - consideration for number/symbols. KISS. If the string, " one1 tw_o - thREE four!" is passed in, "four! thREE tw_0 one1" would be returned. - Strip any whitespace from the ends of the given string. - unittests: - test1: - - str('Hello World :)') - test2: - - str('one1 tw_o thREE four') - test3_x2: - - str('{} {} {} {} {}'.format(random_string(), random_string(), random_string(), random_string(), random_string())) - tags: - - strings - -convert C to F: - imports: | - import random - setup: | - random.seed({seed}) - teardown: '' - pretest: '' - posttest: | - try: - result = self.test_results[-1] - self.test_results[-1] = round(result, 4) - except Exception: - pass - signature: 'def convertCToF(temp_in_c: float) -> float' - solution: | - def convertCToF(temp_in_c): - temp_in_f = (temp_in_c * (9/5)) + 32 - return temp_in_f - text: | - Write a function called convertCToF that accepts a temperature in - centigrade and returns the equivelant temperature in Farenheight. - The equation for this is: (f = c/5 + 32/9) - unittests: - test1: - - int(10) - test2_x3: - - random.randint(-100,100) - test3: - - int(-40) - test4: - - int(0) - tags: - - math - -smallest int: - imports: | - from random import seed, randint - posttest: '' - pretest: '' - setup: | - seed({seed}) - signature: 'def smallest_int(int_list: list[int], absolute_value=False: bool): -> int' - solution: | - def smallest_int(int_list, absolute_value=False): - if absolute_value: - int_list = map(lambda item: abs(item), int_list) - return min(int_list) - tags: - -math - teardown: '' - text: | - Write a function called smallestOfList that accepts a list or tuple of - numbers and returns the smallest number found in the list. - However, if absolute value is set to True, it should return the number that - has the smallest absolute value. - - If two numbers in the list both have an absolute value that is the - smallest and the same, the first one encounterd should be returned. - unittests: - test1: - - list([1,2,3,4,5,6,7,8,9,10]) - test2: - - list([-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]) - test3: - - list([-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]) - - True - test3_x4: - - list([randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100)]) - test4_x4: - - list([randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100), randint(-100,100)]) - - True \ No newline at end of file diff --git a/cobra/enabled/test.yml b/cobra/enabled/test.yml deleted file mode 100644 index 3ab4884..0000000 --- a/cobra/enabled/test.yml +++ /dev/null @@ -1,17 +0,0 @@ -test: - imports: "from time import time\nimport random\nimport string\n_randStr = '''''.join(random.choices(string.ascii_uppercase, k=10))'''" - posttest: "print('DIR:', dir())\nprint('locals:', locals())\nprint(exec(_randStr))" - pretest: 'pretest = "pretest: " + str(time()); print(time())' - setup: 'setup = "setup: " + str(time()); print(time())' - signature: test(a,b,c) - solution: 'def test(a, b, c): return 0' - tags: '' - teardown: 'print("{{setup}} teardown: {{time}}".format(setup=setup, time=time())); print(time())' - text: "Write a function that takes 2 integers as parameter\nIt should return the\ - \ sum of the 2 integers.\n\nE.g. \ndef addThem(num_a, num_b):\n #your code\ - \ here\n return the_sum\n" - unittests: - test1: - - str(time()) - - str(time()) - - str(time()) diff --git a/cobra/history/.gitkeep b/cobra/history/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/cobra/prob_edit.py b/cobra/prob_edit.py deleted file mode 100755 index 34dcd9b..0000000 --- a/cobra/prob_edit.py +++ /dev/null @@ -1,453 +0,0 @@ -#!/usr/bin/env python -# Python2 compatibility: -#from __future__ import print_function -#from future.builtins import input - -# Other imports: -import copy -import filecmp -from glob import glob -#import operator -from operator import itemgetter -import os -import shutil -import subprocess as sp -#import tempfile -from tempfile import mkstemp -import time -import traceback -import yaml -import cobra_client as cc - - -EDITOR='/usr/bin/vi' -EXCLUDE_FILES = ['session.yml',] -ESSENTIAL_KEYS = ('imports', 'posttest', 'pretest', 'setup', 'signature', - 'solution', 'tags', 'teardown', 'text', 'unittests') - -def cls(): - os.system('cls' if os.name=='nt' else 'clear') - - -def editTempFile(content, ref_header=None): - '''put "content" into a temp file and open it with the system editor. - if ref_header is defined, put that at the top of the file for reference. - a marker line follows, and the content is placed below that for editing. - Return the updated content.''' - - marker = "\n### do not edit anything above this line ###\n" - _, fname = mkstemp() - with open(fname, 'w') as f: - if ref_header != None: - f.write(ref_header) - f.write(marker) - if not content.startswith('\n'): - f.write('\n') - f.write(content) - - vi_cmd = (EDITOR, fname) - sp.call(vi_cmd, shell=False) - - with open(fname, 'r') as f: - new_content = f.read() - - if ref_header != None: - marker_loc = new_content.find(marker) - if marker_loc < 0: - print('Marker line not found... Aborting!') - print('Will re-open the editor, please copy your stuff externally.') - input("enter to continue...") - time.sleep(2) - with open(fname, 'a') as f: - f.write('\n### SAVE THIS CONTENT EXTERNALLY, FATAL ERROR ###\n') - f.write('\n### SAVE THIS CONTENT EXTERNALLY, FATAL ERROR ###\n') - f.write('\n### SAVE THIS CONTENT EXTERNALLY, FATAL ERROR ###\n') - f.write('\n### SAVE THIS CONTENT EXTERNALLY, FATAL ERROR ###\n') - sp.call(vi_cmd, shell=False) - return content - #offset to end of marker line - marker_loc += len(marker) - new_content = new_content[marker_loc:] - - #for guess in (1, 2, 3): - # answer = input("Save changes? [y]/n: ") - # if answer in ("", "y", "n"): - # if answer == "n": - # new_content = content - # break - # print("Responses accepted: 'y', 'n', or implicit y ''") - #else: - # print("Aborting!") - # time.sleep(2) - # new_content = content - return new_content - - -def mergeEditYml(problem, keys_to_edit, ref_header=None): - '''The idea here is to generate a string with yaml data for all - of the "keys_to_edit" from the problem data. Then pas it to the - editTempFile function for user edit with VI, and then return - the modified data. - ''' - content = {} - for key in keys_to_edit: - content[key] = problem[key] - new_content = yaml.dump(content, default_flow_style=False) - new_content = editTempFile(new_content, ref_header) - try: - print("Success loading yaml content...") - new_content = yaml.load(new_content) - except: - new_content = content - for key in keys_to_edit: - if key not in new_content: - print("Keys missing in returned text:", key, "from", keys_to_edit) - print("Aborting...") - time.sleep(2) - break - else: - print("All good...") - return new_content - return content - - -def getProbsFiles(): - all_files = glob('*.yml') - out_files = [] - for f in all_files: - for x in EXCLUDE_FILES: - if x in f: - break - else: - out_files.append(f) - return out_files - - -def testUpdateYmlFormat(probs_dict): - '''This checks if the yml is the old format (with uuid, etc). if it - is, then it is convrted to the new format and returned.''' - out = {} - for key, val in probs_dict.items(): - if 'title' in val: - key = val.pop('title') - if 'uuid' in val: - val.pop('uuid') - for k in ('pretest', 'posttest', 'tags', - 'imports', 'setup', 'teardown'): - if k not in val: - val[k] = '' - for k in ('history', 'ratings', 'successes'): - if k in val: - val.pop(k) - out[key] = val - return out - - - -def readProbsFile(problem_file): - '''This is called for each file containing course problems. Returns - a list of problems (dicts)''' - probs_dict = yaml.load(open(problem_file, 'r')) - if not isinstance(probs_dict, dict): - probs_dict = None - else: - probs_dict = testUpdateYmlFormat(probs_dict) - return probs_dict - - -def writeProbsFile(problem_file, probs_dict): - '''Takes a list of problem dicts and converts them to a dict of dicts - using the title as the primary key and writes them as yaml to the - problem_file''' - # translate back into dict for storage - #probs_dict = {} - #for prob in probs_list: - # probs_dict[prob['title']] = prob - with open(problem_file, 'w') as f: - f.write(yaml.dump(probs_dict, default_flow_style=False)) - - -def promptMenu(title, options, defaults=None): - '''This is mianly what the user interacts with. It puts up a list of - optoins and queries for a response from the user. - "options" is a list of options that will be assigned numbers to chose - from. "defaults" is a list of (key, description) items - that the user can choose from.''' - if not defaults: - defaults = (('n', 'next'), - ('p', 'previous'), - ('q', 'quit/return')) - valid_choices = [str(n) for n in range(len(options))] - valid_choices += [n for n, o in defaults] - - print("\n --- {} ---".format(title)) - for n, option in enumerate(options): - print(" {} {}".format(n, option)) - print("") - for n, option in defaults: - print(" {} {}".format(n, option)) - print("") - - for guess in (1, 2, 3): - answer = input("Select: ") - if answer not in valid_choices: - print("Invalid. Optoins are:", valid_choices) - continue - break - else: - return None - return answer - - -def backupProbsFile(probs_file_name): - # Make a backup copy of the problems file - if not os.path.isdir('./backups'): - os.mkdir('./backups') - epoch_seconds = int(time.time()) - shutil.copy( probs_file_name, - "./backups/{}_{}".format(probs_file_name, - epoch_seconds) ) - assert( filecmp.cmp( - probs_file_name, - "./backups/{}_{}".format(probs_file_name, - epoch_seconds) ) ) - - -def dPos(a_dict, key=None, index=None): - '''If key is set, return the index of the key; if index is set, return - the key at the given index.''' - d_list = list(a_dict.keys()) - if key != None: - index = d_list.index(key) - return index - elif index != None: - key = d_list[index] - return key - - -def dMove(a_dict, key, offset): - '''Return re-ordered dictionary with key move by given offset. - Do nothing if key not in dictionary. Limit offset to ends of dict.''' - if key in a_dict: - index = dPos(a_dict, key) - foo = list(a_dict.items()) - new_index = min(max(0, index + offset), len(foo)-1) - tmp = foo.pop(index) - foo.insert(new_index, tmp) - foo = dict(foo) - else: - foo = a_dict - return foo - - -def interactiveMenu(probs_dicts): - '''This is the meat of the tool. All of the code that make things - happen at each screen is included here. Trying to keep cross-contamination - between variables in here to a minimum w/o having to break out seperate - functions for each screen.''' - probs_file_name = None - probs_dict = None - prob_title = None - while True: - cls() - print("probs_file_name:", probs_file_name) - print("prob_title:", prob_title) - - # Each time menu is updated, write changes to disk - if not probs_file_name == None: - writeProbsFile(probs_file_name, probs_dict) - - ###################### - # Chose a problem file - ###################### - if probs_file_name == None: - defaults = (('q', 'quit/return'), ) - title = "Choose a problem file:" - choice = promptMenu(title, probs_dicts.keys(), defaults) - print("Choice was:", (choice,)) - #time.sleep(2) - - if choice == None: - break - elif choice.isdigit(): - #probs_file_name = probs_dicts.keys()[int(choice)] - probs_file_name = dPos(probs_dicts, index=int(choice)) - probs_dict = probs_dicts[probs_file_name] - backupProbsFile(probs_file_name) - elif choice == 'q': - print("Quitting this fine program!") - break - - ###################### - # Chose a problem - ###################### - elif prob_title == None: - defaults = ( ('q', 'quit/return'), ) - title = "Choose a problem to work on from '{}':".format( - probs_file_name) - probs_titles = [(k, v['signature']) for k, v in probs_dict.items()] - choice = promptMenu(title, probs_titles, defaults) - print("Choice was:", (choice,)) - #time.sleep(2) - - if choice == None: - break - elif choice.isdigit(): - prob_title = dPos(probs_dict, index=int(choice)) - #prob_title = probs_dict.keys()[int(choice)] - elif choice == 'q': - probs_file_name = None - continue - - ###################### - # Problem edit menu - ###################### - else: - prob_dict = probs_dict[prob_title] - prob_index = dPos(probs_dict, prob_title) - - defaults = (('e', 'edit all relevant fields'), - ('c', 'copy the problem'), - ('r', 'run the problem'), - ('-', ''), - ('t', 'edit title'), - ('x', 'edit text description'), - ('g', 'edit signature'), - ('s', 'edit solution'), - ('u', 'edit unit test'), - ('d', 'edit teardown'), - ('+', 'move up in order'), - ('-', 'move down in order'), - ('[', 'previous problem'), - (']', 'next problem'), - ('q', 'quit/return')) - title = ( "Prob Selected: index: {}\n" - " title: {}\n" - " signature: {}\n" - " text: \n" - "{}".format( prob_index, prob_title, - prob_dict['signature'], - prob_dict['text'] ) ) - choice = promptMenu(title, [], defaults) - print("Choice was:", (choice,)) - #time.sleep(2) - if choice.isdigit(): - pass - - # Edit problem title - elif choice == 't': - old_title = prob_title - while True: - prob_title = input("New Title: ") - if prob_title in probs_dict: - print("duplicate title!, try again.") - continue - break - probs_dict[prob_title] = probs_dict.pop(old_title) - - # Edit problem signature - elif choice == 'g': - prob_dict['signature'] = input("New Signature: ") - - # Edit text description - elif choice == 'x': - prob_dict['text'] = editTempFile(prob_dict['text']) - - elif choice == 's': - prob_dict['solution'] = editTempFile( prob_dict['solution'], - prob_dict['text'] ) - - # Edit unit tests - elif choice == 'u': - edit_keys = ('unittests', 'imports', 'setup', 'teardown') - content = mergeEditYml(prob_dict, edit_keys, prob_dict['text']) - for key in edit_keys: - prob_dict[key] = content[key] - - # Edit unit test teardown - elif choice == 'd': - prob_dict['teardown'] = editTempFile( prob_dict['teardown'], - prob_dict['text'] ) - - # Edit all relevant fields - elif choice == 'e': - edit_keys = ('text', 'signature', 'solution', 'tags', - 'unittests', 'imports', 'setup', 'teardown') - content = mergeEditYml(prob_dict, edit_keys) - for key in edit_keys: - prob_dict[key] = content[key] - - # Copy the current problem - elif choice == 'c': - old_title = prob_title - old_dict = prob_dict - - digit = 0 - while True: - prob_title = '{} copy {}'.format(old_title, digit) - if prob_title in probs_dict: - digit += 1 - continue - break - prob_dict = {} - for key in ESSENTIAL_KEYS: - prob_dict[key] = copy.deepcopy(old_dict[key]) - probs_dict[prob_title] = prob_dict - - # Run the problem: - elif choice == 'r': - from ptpython.repl import run_config - question_data = prob_dict - question_data['seed'] = 0 - eventloop = cc.create_eventloop() - ptpython_input = cc.PythonInput() - run_config(ptpython_input, - config_file='util/ptpython_config.py') - print("answer.text: ", question_data['solution']) - print("------------- running ------------") - answer = cc.Solution(question_data, question_data['solution']) - try: - answer.run_solution(True) - print("------------- RESULS: ------------") - print("solution: ", answer.test_results) - print("a.violations:", answer.violations) - print("a.violcount:", answer.violationcount) - #print("teardown:", answer._teardown) - #import code - #code.InteractiveConsole(locals=locals()).interact() - except Exception as e: - print("Exception in run: {}".format(e)) - traceback.print_stack() - - input("Enter to continue...") - - # Change ordering, etc... - elif choice == '+': - probs_dict = dMove(probs_dict, prob_title, 1) - elif choice == '-': - probs_dict = dMove(probs_dict, prob_title, -1) - elif choice == '[': - prob_index = max(0, prob_index-1) - prob_title = dPos(probs_dict, index=prob_index) - elif choice == ']': - prob_index = min(len(probs_dict)-1, prob_index+1) - prob_title = dPos(probs_dict, index=prob_index) - - elif choice == 'q': - prob_title = None - prob_dit = None - -def mainFunc(): - probs_files = sorted(getProbsFiles()) - print(probs_files) - probs_dicts = {} - for p_file in sorted(probs_files): - tmp = readProbsFile(p_file) - if tmp != None: - probs_dicts[p_file] = tmp - - interactiveMenu(probs_dicts) - - -if __name__ == "__main__": - mainFunc() diff --git a/cobra/question_list.yml b/cobra/question_list.yml deleted file mode 100644 index dfbe5bf..0000000 --- a/cobra/question_list.yml +++ /dev/null @@ -1,6 +0,0 @@ -- [final, add them] -- [final, smallest int] -- [final, first half lower] -- [final, just even character] -- [final, reverse order] -- [final, convert C to F] \ No newline at end of file diff --git a/cobra/run_gunicorn_server.sh b/cobra/run_gunicorn_server.sh deleted file mode 100755 index 0a7ca96..0000000 --- a/cobra/run_gunicorn_server.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -if which gunicorn3; then - gunicorn3 cobra_server:app -else - gunicorn cobra_server:app -fi diff --git a/cobra/run_waitress_server.bat b/cobra/run_waitress_server.bat deleted file mode 100644 index 3e7a042..0000000 --- a/cobra/run_waitress_server.bat +++ /dev/null @@ -1 +0,0 @@ -waitress-serve --port=8000 cobra_server:app \ No newline at end of file diff --git a/cobra/translate_doctest.py b/cobra/translate_doctest.py deleted file mode 100755 index 08edf2a..0000000 --- a/cobra/translate_doctest.py +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env python - -import sys -import yaml -import time -from base64 import b64encode - -#def getFolders(base_path): -# for item in os.path.list(base_path): -# ipath = "{}/{}".format(base_path, item) -# if os.path.isdir(): -# pass - - -def pull_probs(fpath): - lines = open(fpath).read().split('\n') - - probs = {'PRE': []} - - loc = 'PRE' - for line in lines[1:]: - if line.startswith('if __name__ =='): - break - elif loc != 'PRE' and not line.strip(): - continue - elif line.startswith('def ') and not line.startswith('def _'): - loc = line.split()[1].split('(')[0] - probs[loc] = [] - #print(loc, line) - probs[loc].append(line) - - pre = probs.pop('PRE') - return pre, probs - - -def grokProb(pre, prob_lines): - '''takes the text from the entire function definition of a problem - and solution and converts it into a dictoinary with all of the - parts needed to make a yml representation of it for the tool''' - assert(prob_lines[1].startswith(" '''")) - assert(len(prob_lines) > 8) - - # everything in pre gets executed in the library code block - func_name = prob_lines[0].split('def ')[1].split('(')[0] - prob = {'imports': '\n'.join(pre) } - prob['signature'] = '{} -> {}'.format(prob_lines[0], prob_lines[-1]) - #prob['name'] = definition.split()[1].split('(')[0] - prob['title'] = prob_lines[1].split("'")[3].strip() - - loc = 'text' - for line in prob_lines[2:]: - if line.strip().startswith('>>>'): - loc = 'posttest' - elif line.strip() in ("'''", '"""'): - loc = 'solution' - prob[loc] = [prob['signature'].split(' -> ')[0], ] - continue - - # initialize any missing keys - if loc not in prob: - prob[loc] = [] - - # cleanup specific data - if loc in ('text', ): - line = line.strip() - elif loc == 'posttest': - if line.startswith(' >>> ') or line.startswith(' ... '): - line = line[8:] - else: - line = line[4:] - - #print(prob['title'], loc, line) - prob[loc].append(line) - - # adapt test code around self.test_results - #test = [ n.strip()[4:] if n.startswith(' >>> ') else n.strip() - # for n in prob['posttest'] ] + [None,] - test = prob['posttest'] + [None,] - - # generate post test starting with function definition line - prob['posttest'] = [] - skipone = False - for n, line in enumerate(test[:-1]): - if skipone: - skipone = False - continue - nline = test[n+1] - if nline == 'True': - line = 'self.test_results.append({})'.format(line) - skipone = True - prob['posttest'].append(line) - - for loc in ('text', 'solution', 'posttest'): - prob[loc] = '\n'.join(prob[loc]) - #prob[loc] = prob[loc].replace('{}', '{{}}') - prob[loc] = prob[loc].replace('{', '{{') - prob[loc] = prob[loc].replace('}', '}}') - - print("FUNC_NAME:", func_name) - #time.sleep(10) - prob['posttest'] = prob['posttest'].replace(func_name, 'self._function') - # add any missing fields needed for the yml format... - prob['unittests'] = {} - prob['tags'] = '' - prob['setup'] = '' - prob['pretest'] = '' - prob['teardown'] = '' - - #for loc in ('solution', 'posttest'): - # prob[loc] = b64encode(prob[loc].encode('ascii')) - - return prob - - -def translate(pre, probs): - out = {} - for key, prob in probs.items(): - out[key] = grokProb(pre, prob) - return yaml.dump(out, default_flow_style=False) - -if __name__ == '__main__': - doctest_file = sys.argv[1] - yml_file = sys.argv[2] - print("DOCTEST FILE:", doctest_file) - print("YML FILE:", yml_file) - - PRE, probs = pull_probs(doctest_file) - print("PRE:") - print(PRE) - print("PROBS keys:", probs.keys()) - - yml_data = translate(PRE, probs) - - open(yml_file, 'w').write(yml_data) diff --git a/cobra/users/.gitkeep b/cobra/users/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/cobra/util/editor_utility.py b/cobra/util/editor_utility.py deleted file mode 100644 index 133f2bf..0000000 --- a/cobra/util/editor_utility.py +++ /dev/null @@ -1,67 +0,0 @@ -from util.utility import load_yml -from util.solution_checker import Solution -import colorama as cr - -cr.init() - -def get_question_labels(yml_file): - data = load_yml(yml_file) - return list(data.keys()) - -def print_question_data(yml_file, question_label): - question = load_yml(yml_file)[question_label] - - for key, value in question.items(): - try: - question[key] = value.decode('utf-8') - except AttributeError: - pass - - print('''\ -{h1}----==========={question_label}===========---- -{h2}imports (modules loaded before all tests)------------------------------------: -{p}{imports} -{h2}setup (script ran before all unit tests)-------------------------------------: -{p}{setup} -{h2}teardown (script ran after all unit tests)-----------------------------------: -{p}{teardown} -{h2}pretest (script ran before each unit test)-----------------------------------: -{p}{pretest} -{h2}posttest (script ran after each unit test)-----------------------------------: -{p}{posttest} -{h2}soulition (server accepted solution to question)-----------------------------: -{p}{solution} -{h2}text (text description of question)------------------------------------------: -{p}{text} -{h2}tags (tags to categorize question)-------------------------------------------: -{p}{tags} -{h2}unittests (parameters passed to soultion)------------------------------------:'''.format( - h1=cr.Fore.CYAN + cr.Back.MAGENTA, - h2=cr.Fore.WHITE + cr.Back.BLUE, - p=cr.Style.RESET_ALL, - question_label=question_label, - **question)) - print_unti_tests(yml_file, question_label) - print('''\ -{h5}RESULTS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~: -{results}'''.format(h5=cr.Fore.RED + cr.Back.WHITE, results=check_solution(yml_file, question_label))) - -def print_unti_tests(yml_file, question_label): - try: - unittests = load_yml(yml_file)[question_label]['unittests'] - except KeyError: - unittests = {} - for label, parameters in sorted(unittests.items()): - print('{h3}{label}:{reset}'.format( - h3=cr.Style.BRIGHT + cr.Fore.YELLOW + cr.Back.BLUE, - label=label, reset=cr.Style.RESET_ALL)) - for index, parameter in enumerate(parameters, 1): - print('{h4}parameter{index}{reset}'.format( - h4=cr.Fore.YELLOW, index=index, reset=cr.Style.RESET_ALL)) - print(parameter) - -def check_solution(yml_file, question_label): - question = load_yml(yml_file)[question_label] - master_results = Solution(question) - master_results.run_solution() - return master_results.test_results \ No newline at end of file diff --git a/cobra/util/ptpython_config.py b/cobra/util/ptpython_config.py deleted file mode 100644 index 269c2e0..0000000 --- a/cobra/util/ptpython_config.py +++ /dev/null @@ -1,58 +0,0 @@ -from __future__ import unicode_literals -from prompt_toolkit.filters import ViInsertMode -from prompt_toolkit.key_binding.input_processor import KeyPress -from prompt_toolkit.keys import Keys -from pygments.token import Token - -from ptpython.layout import CompletionVisualisation - -__all__ = ( - 'configure', -) - - -def configure(repl): - # Show function signature (bool). - repl.show_signature = False - - # Show docstring (bool). - repl.show_docstring = True - - # Ask for confirmation on exit. - repl.confirm_exit = False - - # Enable input validation. (Don't try to execute when the input contains - # syntax errors.) - repl.enable_input_validation = True - - # Use this colorscheme for the code. - repl.use_code_colorscheme('monokai') - - # Show completions. (NONE, POP_UP, MULTI_COLUMN or TOOLBAR) - repl.completion_visualisation = CompletionVisualisation.POP_UP - - # When CompletionVisualisation.POP_UP has been chosen, use this - # scroll_offset in the completion menu. - repl.completion_menu_scroll_offset = 0 - - # Show line numbers (when the input contains multiple lines.) - repl.show_line_numbers = True - - # Show status bar. - repl.show_status_bar = False - - # When the sidebar is visible, also show the help text. - repl.show_sidebar_help = False - - # Highlight matching parethesis. - repl.highlight_matching_parenthesis = False - - # Vi mode. - repl.vi_mode = True - - # Don't insert a blank line after the output. - repl.insert_blank_line_after_output = False - - # Complete while typing. (Don't require tab before the - # completion menu is shown.) - repl.complete_while_typing = True \ No newline at end of file diff --git a/cobra/util/server_utility.py b/cobra/util/server_utility.py deleted file mode 100644 index d41fcd3..0000000 --- a/cobra/util/server_utility.py +++ /dev/null @@ -1,148 +0,0 @@ -from hashlib import sha256 -from random import randint -from uuid import uuid4 -from time import time -from util.utility import encode_message, load_yml, save_yml -from os.path import isfile -from os import listdir - -class User(): - def __init__(self, name): - self.name = name - self.filepath = 'users/{file}.yml'.format(file=self.name) - self.exists = False - if self.user_exists(): - self.userinfo = load_yml(self.filepath) - self.exists = True - else: - self.userinfo = {'name': self.name, 'hash': None, 'salt': None, 'sessionid': None, 'ip': None, 'timestamp': None, 'completed': [], 'seed': 0} - - def user_exists(self): - return isfile(self.filepath) - - def create_user(self, password, ip): - if self.user_exists(): - return False - salt = make_salt() - pwhash = hash_creds(password, salt) - self.update_user({'hash': pwhash, 'salt': salt, 'ip': ip, 'seed': self.new_seed()}) - self.exists = True - return True - - def update_user(self, data): - self.userinfo.update(data) - save_yml(self.filepath, self.userinfo) - - def get_completed(self): - return self.userinfo['completed'] - - def update_completed(self, item): - if item in self.userinfo['completed']: - pass - else: - self.update_user({'completed': self.get_completed() + [item]}) - - def check_completed(self, item): - if item in self.userinfo['completed']: - return True - else: - return False - - def create_new_session(self): - sessionid = uuid4().hex - salt = self.userinfo['ip'] - sessionhash = hash_creds(sessionid, salt) - self.update_user({'sessionid':sessionhash, 'timestamp': time()}) - return encode_message(sessionid) - - def check_session_id(self, id, ip): - # timeout session if not active for over an hour - if self.userinfo['timestamp'] + 3600 < time(): - return False - # check to see if id is valid for ip - elif self.userinfo['sessionid'] == hash_creds(id, ip): - return True - else: - return False - - def login_user(self, password, ip): - if self.userinfo['hash'] == hash_creds(password, self.userinfo['salt']): - self.update_user({'ip': ip}) - return self.create_new_session() - else: - return False - - def new_seed(self): - #self.update_user({'seed': int(make_salt())}) - self.update_user({'seed': int(111)}) # static seed until I can figure out a bug - return self.get_seed() - - def get_seed(self): - return self.userinfo['seed'] - - -class Questions(): - def __init__(self): - self.questions = {filename[:-4]: load_yml('enabled/{}'.format(filename)) for filename in listdir('enabled') if filename[-4:] == '.yml'} - print('loaded these question files:') - print(self.questions.keys()) - - def get_lessons(self): - return list(self.questions.keys()) - - def get_questions(self, lesson): - return list(self.questions[lesson].keys()) - - def get_question(self, lesson, question_label): - return dict(self.questions[lesson][question_label]) - - -def get_users(): - return {filename.rsplit('.yml', maxsplit=1)[0]: User(filename.rsplit('.yml', maxsplit=1)[0]) - for filename in listdir('users')} - -def make_salt(): - return str(randint(0, 99999999)).zfill(8) - -def hash_creds(password, salt): - return sha256(password.encode('ascii') + salt.encode('ascii')).hexdigest() - -def update_history(item, user, solution, stats): - print(item) - yml_file = 'history/{0}__{1}.yml'.format(*item) - if isfile(yml_file): - history_data = load_yml(yml_file) - else: - history_data = {} - print(history_data) - history_data[user] = {'solution': solution, 'stats': stats} - save_yml(yml_file, history_data) - -def get_history(item): - yml_file = 'history/{0}__{1}.yml'.format(*item) - if isfile(yml_file): - history_data = load_yml(yml_file) - return history_data - else: - return False - -def leaderboard(): - board = {} - for filename in listdir('users'): - if filename[-4:] != '.yml': - continue - yml_file = 'users/{}'.format(filename) - data = load_yml(yml_file) - completed = len(data['completed']) - board[filename[:-4]] = completed - - html_body = '

Completed Questions:

' - for name, score in sorted(board.items(), key=lambda item: item[1], reverse=True): - html_body += ''.format(name=name, score=score) - html_body += '
{name}{score}
' - return html_body - - - - - \ No newline at end of file diff --git a/cobra/util/solution_checker.py b/cobra/util/solution_checker.py deleted file mode 100644 index bd60c19..0000000 --- a/cobra/util/solution_checker.py +++ /dev/null @@ -1,150 +0,0 @@ -from re import findall -from timeit import default_timer -from sys import executable -from subprocess import Popen, PIPE -from tempfile import NamedTemporaryFile -from os import remove - -class Solution(): - def __init__(self, data, solution=None): - if 'seed' in data.keys(): - pass - else: - data.update({'seed':0}) - - for key, value in data.items(): - try: - data[key] = value.decode('utf-8') - except AttributeError: - pass - try: - data[key] = value.format(**data) - except KeyError: - pass - except AttributeError: - pass - - if solution: - self.solution = solution - else: - self.solution = data['solution'] - self._imports = data['imports'] - self._setup = data['setup'] - self._teardown = data['teardown'] - self._pretest = data['pretest'] - self._posttest = data['posttest'] - try: - self._unittests = data['unittests'] - except KeyError: - self._unittests = {} - - self._function = None - self.exception_raised = False - self.test_results = [] - self.time_to_execute = 0 - self.linecount, self.charcount = self.get_counts() - self.violations = self.check_codestyle() - if self.violations == '': - self.violationcount = 0 - else: - self.violationcount = len(self.violations.split('\n')) - - def check_codestyle(self): - '''Checks the solution for pep8 standards''' - solution_file = NamedTemporaryFile(delete=False, encoding='utf-8', mode='w', suffix='.py') - solution_file.write(self.solution) - solution_file.close() - flake = Popen([executable, '-m', 'flake8', - '--format=row %(row)d, col %(col)d: %(text)s', - '--disable-noqa', '--max-line-length=150', '--ignore=W292,E731', solution_file.name], - stdout=PIPE, stderr=PIPE) - out, error = flake.communicate() - if error: - print(error.decode('utf8')) - remove(solution_file.name) - return out.decode('utf-8').strip() - - def get_counts(self): - linecount = len(self.solution.split('\n')) - charcount = len(self.solution) - return linecount, charcount - - def run_solution(self): - '''Takes a text solution and yml data, and combines the two for execution''' - # we need to make imports global so they can be used inside of unit tests - # we will also run our setup scripts here since we want those imports in the setup namespace - scope = {} - try: - exec(self.solution, scope) - except Exception as e: - print('{}: {}'.format(type(e).__name__, e)) - exception_raised = True - return None - #scope.pop('__builtins__') - #self._function = [value for value in scope.values() if value != '__builtins__'][0] - for value in scope.values(): - if isinstance(value, dict): - continue - else: - self._function = value - # now that we have the function in our namespace we can run it against our unittests - self._run_tests() - # and finally we will run our teardown scripts - - def _run_tests(self): - '''Runs the solution against all unit tests''' - test_list = [] - - exec(self._imports) - exec(self._setup) - - # first implement any text case multipliers, extends the total number of tests - try: - for testname, values in sorted(self._unittests.items()): - for _ in range(self._loopcount(testname)): - test_list.append(values) - except AttributeError: - pass - - # run through all the unit tests if they exist - if test_list: - for test in test_list: - exec(self._pretest) # pretest script - arguments = [] - for argument in test: - #print(type(argument)) - arguments += [eval(str(argument))] - #arguments.append(argument) - #arguments = map(lambda argument: eval(argument, locals), test) # converts the yml test case string into the solution arguments - self._run_test(arguments) - exec(self._posttest) # posttest script - # if there are no unit tests we just run the function once - else: - exec(self._pretest) # pretest script - self._run_test([]) - exec(self._posttest) # posttest script - exec(self._teardown) - - def _loopcount(self, testname): - '''Checks for _x in test names and returns the number following''' - try: - loop = int(findall(r'_x(\d*)', testname)[0]) - except IndexError: - loop = 1 - return loop - - def _run_test(self, arguments): - ''' run test and save results, and time taken ''' - start_time = default_timer() - try: - #print(arguments) - #print(self._function) - result = self._function(*arguments) # the actual test is run here - except Exception as e: - print('{}: {}'.format(type(e).__name__, e)) - result = None - exception_raised = True - finally: - time_to_execute = default_timer() - start_time - self.test_results.append(result) - self.time_to_execute += time_to_execute diff --git a/cobra/util/utility.py b/cobra/util/utility.py deleted file mode 100644 index c8ddfbd..0000000 --- a/cobra/util/utility.py +++ /dev/null @@ -1,43 +0,0 @@ -import os -from base64 import b64encode, b64decode -from hashlib import sha1, sha256 -from Crypto.Cipher import AES -from Crypto import Random -from random import randint -import yaml - -def cls(): - os.system('cls' if os.name=='nt' else 'clear') - -def encode_solution(soultion): - return b64encode(soultion.encode('ascii')).decode('utf-8') - -def encode_message(message, key=b'Sixteen byte key'): - key = key.zfill(16)[:16] - message = message.encode('ascii') - iv = Random.new().read(AES.block_size) - cipher = AES.new(key, AES.MODE_CFB, iv) - return b64encode(iv + cipher.encrypt(message)).decode('utf-8') - -def decode_message(b64coded_message, key=b'Sixteen byte key'): - key = key.zfill(16)[:16] - coded_message = b64decode(b64coded_message.encode('ascii')) - iv = coded_message[:16] - message = coded_message[16:] - cipher = AES.new(key, AES.MODE_CFB, iv) - return cipher.decrypt(message).decode('utf-8') - -def hash_results(results, token='0'): - hash = sha1(token.encode('ascii')) - for result in results: - hash.update(str(result).encode('ascii')) - return hash.hexdigest() - -def save_yml(filepath, data): - with open(filepath, 'w') as f: - yaml.dump(data, f, default_flow_style=False) - -def load_yml(filepath): - with open(filepath, 'r') as f: - data = yaml.load(f.read()) - return data \ No newline at end of file diff --git a/cobra/validate_yml.py b/cobra/validate_yml.py deleted file mode 100644 index 4ff5ff0..0000000 --- a/cobra/validate_yml.py +++ /dev/null @@ -1,14 +0,0 @@ -from util import editor_utility as eu - -def validate(yml): - for label in eu.get_question_labels(yml): - eu.print_question_data(yml, label) - -if __name__ == '__main__': - #files = ['enabled/2_basic_python.yml', 'enabled/3_files_paths.yml'] - #files = ['enabled/test.yml'] - #files = ['enabled/2_problems.yml'] - #files = ['enabled/2_problems.yml'] - files = ['enabled/final.yml'] - for file in files: - validate(file) \ No newline at end of file From cd08d4ad36b0e09783224b4eb2b20ab418aa7791 Mon Sep 17 00:00:00 2001 From: a8ksh4 Date: Thu, 22 Dec 2022 16:29:10 -0800 Subject: [PATCH 041/163] Update README.md --- README.md | 53 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a85caf1..8cbd198 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,45 @@ # python_class -Python Learning @ Everywhere -This page: goto/python + **NOTE:** * If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ -**Instructor documentation**: [here](./cobra/README.md) -* How to start problem server -* How to run client -* How to create content +## Background Info +20221222 - This course is being updated with a few things in mind: +* Incorporating Python 3.x changes (print, f-strings, encoding, etc.) +* Prioritizing Notebook Use and adding a variety of data science examples. +* Adding how-tos for some online enveronments to make this as accessible as possible - e.g. https://replit.com/ and https://colab.research.google.com/. +* Adding micropython info and a few notes on microcontroller use. +* Pygamezero? + +This guide was originally assembled with scripting and system-automation in mind, but the whole Jupyter Notebook mode of work, I think, makes python more approachable for data manipulation, automating office tasks, etc. And working with python might feel a little more consistent cross-platform when you're working in notebooks, so it's a good format for learning. ## Student Pre-Work: -* Most of this content is designed for & tested on linux. It is recommended to run it in linux or in a linux VM (ubuntu?). -* Download and install the Anaconda **Python 3** distribution from: http://continuum.io/downloads. You can use any python districutoin, but Anaconda is highly recommended becuase its package manager works so well and it has support for so many libraries out-of-the-box. -* Install git: +You need somewhere to run your python code, please make sure to have one of these ready to go when class starts: +* If you have your own laptop, please install the Anaconda Python distribution from here: https://www.anaconda.com/products/distribution + * In windows, I'd recommend NOT running the installer as administrator - Install for only a sinble user when prompted. It's easier to install packages if it is installed in your home directory rather than a shared area for all users. + * Anaconda is available for Windows, Mac, and Linux! + * You can use any python distribution, but Anaconda is highly recommended becuase its package manager works so well and it has support for so many libraries out-of-the-box. +* If you don't have a personal computer to use, or you just prefer web environments, sign into https://colab.research.google.com/ and make sure you can create a notebook there. You'll need to create a google account if you don't have one. There's a nice intro video for collabe here: https://www.youtube.com/watch?v=inN8seMm7UI + +* Create a ChatGPT account and try asking it a few questions - it can be very helpful for figuring out how to do things, why things work the way they do, etc: + * https://chat.openai.com/chat + * Example questions: + * How do I use for loops in python? + * How do I configure VS Code to use my Anaconda python interpreter? + * etc! + +### Optional Pre-Work +* Make a github.com account and install git. * Linux: sudo apt-get install git * Windows: https://git-scm.com/download/win -* Download and install a text editor with syntax highlighting, like Notepad ++: http://notepad-plus-plus.org/ + * Check out this repository in your project area: git clone https://github.com/a8ksh4/python_class.git` +* Feel free to open "bug reports" in this repo for content you'd like to see added, changes needed, or corrections. + +* nstall a text editor with code highlighting or an IDE for writing code in: + * Notepad ++: http://notepad-plus-plus.org/ + * VS Code: https://code.visualstudio.com/ + * Print out this python cheat sheet: http://www.astro.up.pt/~sousasag/Python_For_Astronomers/Python_qr.pdf -* Check out this repository in your project area: - `git clone https://github.com/a8ksh4/python_class.git` ## Quick Links: 1. [Git and Github](./1-git_and_github/README.md) (start here) @@ -56,7 +77,7 @@ This page: goto/python ### 5 - Data Manipulation * csv, json, yaml, pickle, xlsx * regex -* sql & sqlitle +* sql & sqlite ### 6 - Exception Handling * methodology * Examles @@ -64,6 +85,10 @@ This page: goto/python * examples ### 8 - Debugging * http://docs.python-guide.org/en/latest/writing/tests/ - +### 9 - Data Science with pandas +* Importing a Spreadsheet +* Basic column manipulation +* ... +* ... ### Windows Examples From 3260154abf442a74ad60848a0e73a6bd6d48dd5a Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 23 Dec 2022 08:36:39 -0800 Subject: [PATCH 042/163] Update README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8cbd198..e7334f8 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,8 @@ You need somewhere to run your python code, please make sure to have one of thes * Print out this python cheat sheet: http://www.astro.up.pt/~sousasag/Python_For_Astronomers/Python_qr.pdf ## Quick Links: -1. [Git and Github](./1-git_and_github/README.md) (start here) +0. [Curriculum](./0-curricullum/README.md) +1. [Git and Github](./1-git_and_github/README.md) 2. [Python Basics](./2-python_basics/README.md) 3. [Files and Paths](./3-files_and_paths/README.md) 4. [System and Environment](./4-system_and_env/README.md) @@ -51,6 +52,13 @@ You need somewhere to run your python code, please make sure to have one of thes 7. [Unit Testing](./7-unit_testing/README.md) ## Topics Overview: +### 0 - Curriculum +* Week 1 - Gettin notebook working, comp-sci intro, python data types, and basic math & string stuff. +* Week 2 - Branching and loops +* Week 3 - Modules +* Week 4 + + ### 1 - Git and Github ### 2 - Python Basics * python installations From b3f71ad1a0704710876c9c642a33e1e524106e18 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 23 Dec 2022 08:41:31 -0800 Subject: [PATCH 043/163] Create README.md --- 0-Curriculum/README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 0-Curriculum/README.md diff --git a/0-Curriculum/README.md b/0-Curriculum/README.md new file mode 100644 index 0000000..0ff1d9a --- /dev/null +++ b/0-Curriculum/README.md @@ -0,0 +1,33 @@ +# Intro Schedule +## Week 1: Introduction to programming concepts +* Getting notebook working +* Introduction to programming and Python +* Basic data types (strings, integers, floats, booleans) +* Variables and basic operators (assignment, arithmetic, comparison) +* Basic input and output (print, input) + +### W1 Day 1 Assignment +1. Create a new notebook that prompts for a name, age, and favorite color, and prints out a greeting. +2. Add a couple cells to the notebook and define variables with string and numeric types. +3. Print the variables, add them, perform other math operations. +4. Use dir(your_var_name) to see what built-ins are available for each data type. + +## Week 2: Control structures and functions +* Control structures (if/else statements, for loops) and Truthy-ness +* Functions (defining and calling functions, parameters and arguments) +* More on functions (default arguments, keyword arguments, return values) +* Introduction to debugging (print statements, using the debugger) + +## Week 3: Working with data +Day 1: Lists and tuples (indexing, slicing, modifying) +Day 2: Dictionaries (defining, accessing values, iterating) +Day 3: Reading and writing files +Day 4: Working with external libraries (importing and using libraries, installing libraries) + +## Week 4: Object-oriented programming +Day 1: Introduction to object-oriented programming (classes, objects, attributes, methods) +Day 2: Inheritance and polymorphism +Day 3: Exceptions and error handling +Day 4: Project work and review + +# Advanced Schedule From eb4782ab7a5eca87f0c6a0e3cd2dae5db60d36ba Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 23 Jan 2023 19:34:14 -0800 Subject: [PATCH 044/163] Update README.md --- 0-Curriculum/README.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/0-Curriculum/README.md b/0-Curriculum/README.md index 0ff1d9a..9c38107 100644 --- a/0-Curriculum/README.md +++ b/0-Curriculum/README.md @@ -1,18 +1,40 @@ # Intro Schedule ## Week 1: Introduction to programming concepts +### W1 Day 1 Lecture - Intro * Getting notebook working * Introduction to programming and Python +** Syntax and symbols +** Grouping/Context - Indentation +** Names of things - Reserved, Capitals, Camelcaser +** Style Guide - https://google.github.io/styleguide/pyguide.html +** Structure of a python file vs structure of a notebook +* Interpreter vs notebook vs file/script * Basic data types (strings, integers, floats, booleans) * Variables and basic operators (assignment, arithmetic, comparison) * Basic input and output (print, input) -### W1 Day 1 Assignment +#### W1 Day 1 Assignment 1. Create a new notebook that prompts for a name, age, and favorite color, and prints out a greeting. 2. Add a couple cells to the notebook and define variables with string and numeric types. 3. Print the variables, add them, perform other math operations. 4. Use dir(your_var_name) to see what built-ins are available for each data type. +### W1 Day 2 Lecture - If/else and more data types +* If/else - a control structure! +** Truthiness +* Lists +** Adding, removing, slicing, +* Strings +** 'f' strings +** Slicing +** math operations +** Other operations - upper, lower +* Dictionaries + +#### W1 Day 2 Homework + ## Week 2: Control structures and functions +### W2 Day 1 Lecture - Loops * Control structures (if/else statements, for loops) and Truthy-ness * Functions (defining and calling functions, parameters and arguments) * More on functions (default arguments, keyword arguments, return values) From 2df1c17599012e64c020a19a9e7cf3737e5562f8 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jul 2024 17:05:41 -0700 Subject: [PATCH 045/163] Update README.md --- README.md | 73 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index e7334f8..1e77adc 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,35 @@ -# python_class +# python class -**NOTE:** -* If you found this content in a zip file, please navigate to our github for the best experience: https://github.com/a8ksh4/python_class/ - -## Background Info -20221222 - This course is being updated with a few things in mind: -* Incorporating Python 3.x changes (print, f-strings, encoding, etc.) -* Prioritizing Notebook Use and adding a variety of data science examples. -* Adding how-tos for some online enveronments to make this as accessible as possible - e.g. https://replit.com/ and https://colab.research.google.com/. -* Adding micropython info and a few notes on microcontroller use. -* Pygamezero? +Welcome to the Library Pythong Intrductory course. Over four weeks, we'll learn the basics of the Python programming language and get to the point where we can open a spreadsheet with pandas and do some basic data analysis. + +We'll use google colab to open and work from python notebooks for this course. https://colab.research.google.com/ This is so anyone attending can work from the library's loaner notebooks if needed, and continue work on a machine at home. You're welcome to install python locally on your own laptop if you prefer. I'd recommend installing the anaconda python distribution as it has everything configured automatically for working with notebooks. -This guide was originally assembled with scripting and system-automation in mind, but the whole Jupyter Notebook mode of work, I think, makes python more approachable for data manipulation, automating office tasks, etc. And working with python might feel a little more consistent cross-platform when you're working in notebooks, so it's a good format for learning. +## Background Info and To-Do +This guide was originally assembled with scripting and system-automation in mind, but the whole Jupyter Notebook mode of work, I think, makes python more approachable for data manipulation, automating office tasks, etc. And working with python might feel a little more consistent cross-platform when you're working in notebooks, so it's a good format for learning. My to-do list includes: +* Incorporating Python 3.x changes (print, f-strings, encoding, etc.) in the examples +* Adding notebooks for each of four weeks with problems to work on. +* Prioritizing Notebook Use and adding a variety of data science examples. +* Adding modules for micropython, pygame or pygamezero, ... ## Student Pre-Work: -You need somewhere to run your python code, please make sure to have one of these ready to go when class starts: -* If you have your own laptop, please install the Anaconda Python distribution from here: https://www.anaconda.com/products/distribution - * In windows, I'd recommend NOT running the installer as administrator - Install for only a sinble user when prompted. It's easier to install packages if it is installed in your home directory rather than a shared area for all users. +Our recommended mode of work will be in notebooks on google Colab: https://colab.research.google.com/ +* Sign up for a google account if you don't have one. +* Log in to https://colab.research.google.com and skim over the readme info +* Open the week one notebook that we'll be working from: + * Go to File -> Open Notebook -> Github, and paste in "a8ksh4/Python-Intro". + * Open the Library Week 1 notebook file +* There's a nice intro video for collabe here: https://www.youtube.com/watch?v=inN8seMm7UI + +If you're working from your own laptop and want to open notebooks locally rather than in colab, I'd recommend insalling the the Anaconda Python distribution from here: https://www.anaconda.com/products/distribution + * In windows, I'd recommend NOT running the installer as administrator - Install for only a single user when prompted. It's easier to install packages if it is installed in your home directory rather than a shared area for all users. * Anaconda is available for Windows, Mac, and Linux! * You can use any python distribution, but Anaconda is highly recommended becuase its package manager works so well and it has support for so many libraries out-of-the-box. -* If you don't have a personal computer to use, or you just prefer web environments, sign into https://colab.research.google.com/ and make sure you can create a notebook there. You'll need to create a google account if you don't have one. There's a nice intro video for collabe here: https://www.youtube.com/watch?v=inN8seMm7UI + +## Curriculum +* Week 1: Introduction to Python and Google Colab. Covering variables and data types (numeric, strings, boolean), truthiness, and basic control flow (if-else statements). +* Week 2: Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while). +* Week 3: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration. +* Week 4: Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. * Create a ChatGPT account and try asking it a few questions - it can be very helpful for figuring out how to do things, why things work the way they do, etc: * https://chat.openai.com/chat @@ -29,20 +39,26 @@ You need somewhere to run your python code, please make sure to have one of thes * etc! ### Optional Pre-Work +* Create a ChatGPT account and try asking it a few questions - it can be very helpful for figuring out how to do things, why things work the way they do, etc: + * https://chat.openai.com/chat + * Example questions: + * How do I use for loops in python? + * How do I configure VS Code to use my Anaconda python interpreter? + * etc! * Make a github.com account and install git. * Linux: sudo apt-get install git * Windows: https://git-scm.com/download/win * Check out this repository in your project area: git clone https://github.com/a8ksh4/python_class.git` -* Feel free to open "bug reports" in this repo for content you'd like to see added, changes needed, or corrections. + * Feel free to open "bug reports" in this repo for content you'd like to see added, changes needed, or corrections. -* nstall a text editor with code highlighting or an IDE for writing code in: +* Install a text editor with code highlighting or an IDE for writing code in: * Notepad ++: http://notepad-plus-plus.org/ * VS Code: https://code.visualstudio.com/ -* Print out this python cheat sheet: http://www.astro.up.pt/~sousasag/Python_For_Astronomers/Python_qr.pdf +* Print out this python cheat sheet: tbd ## Quick Links: -0. [Curriculum](./0-curricullum/README.md) +0. [Coursework](./0-coursework/README.md) 1. [Git and Github](./1-git_and_github/README.md) 2. [Python Basics](./2-python_basics/README.md) 3. [Files and Paths](./3-files_and_paths/README.md) @@ -52,14 +68,11 @@ You need somewhere to run your python code, please make sure to have one of thes 7. [Unit Testing](./7-unit_testing/README.md) ## Topics Overview: -### 0 - Curriculum -* Week 1 - Gettin notebook working, comp-sci intro, python data types, and basic math & string stuff. -* Week 2 - Branching and loops -* Week 3 - Modules -* Week 4 - +### 0 - Coursework +There are four notebooks here, one for each week of the class. ### 1 - Git and Github + ### 2 - Python Basics * python installations * data types @@ -70,10 +83,12 @@ You need somewhere to run your python code, please make sure to have one of thes * file handling * sorting * regex + ### 3 - Files and Paths * create, rm, copy, move, chmod, chown * tar, gzip * logging + ### 4 - System and Environment * argparse * os & os.environ @@ -82,21 +97,27 @@ You need somewhere to run your python code, please make sure to have one of thes * nis & nodes * platform * subprocess + ### 5 - Data Manipulation * csv, json, yaml, pickle, xlsx * regex * sql & sqlite + ### 6 - Exception Handling * methodology * Examles + ### 7 - QA and Unit Testing * examples + ### 8 - Debugging * http://docs.python-guide.org/en/latest/writing/tests/ + ### 9 - Data Science with pandas * Importing a Spreadsheet * Basic column manipulation * ... * ... + ### Windows Examples From f2ed31c0a86647498cb377455a8d4fc42934c894 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jul 2024 17:07:55 -0700 Subject: [PATCH 046/163] Create README.md --- 0-coursework/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 0-coursework/README.md diff --git a/0-coursework/README.md b/0-coursework/README.md new file mode 100644 index 0000000..bc56c4d --- /dev/null +++ b/0-coursework/README.md @@ -0,0 +1 @@ +Foo From da0968e3ca2bbe106a25eb23168773c8f7d24365 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 6 Jul 2024 17:13:53 -0700 Subject: [PATCH 047/163] adding assignmints --- 0-Curriculum/README.md | 55 --------------------------------------- 0-coursework/week_1.ipynb | 0 0-coursework/week_2.ipynb | 0 0-coursework/week_3.ipynb | 0 0-coursework/week_4.ipynb | 0 5 files changed, 55 deletions(-) delete mode 100644 0-Curriculum/README.md create mode 100644 0-coursework/week_1.ipynb create mode 100644 0-coursework/week_2.ipynb create mode 100644 0-coursework/week_3.ipynb create mode 100644 0-coursework/week_4.ipynb diff --git a/0-Curriculum/README.md b/0-Curriculum/README.md deleted file mode 100644 index 9c38107..0000000 --- a/0-Curriculum/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# Intro Schedule -## Week 1: Introduction to programming concepts -### W1 Day 1 Lecture - Intro -* Getting notebook working -* Introduction to programming and Python -** Syntax and symbols -** Grouping/Context - Indentation -** Names of things - Reserved, Capitals, Camelcaser -** Style Guide - https://google.github.io/styleguide/pyguide.html -** Structure of a python file vs structure of a notebook -* Interpreter vs notebook vs file/script -* Basic data types (strings, integers, floats, booleans) -* Variables and basic operators (assignment, arithmetic, comparison) -* Basic input and output (print, input) - -#### W1 Day 1 Assignment -1. Create a new notebook that prompts for a name, age, and favorite color, and prints out a greeting. -2. Add a couple cells to the notebook and define variables with string and numeric types. -3. Print the variables, add them, perform other math operations. -4. Use dir(your_var_name) to see what built-ins are available for each data type. - -### W1 Day 2 Lecture - If/else and more data types -* If/else - a control structure! -** Truthiness -* Lists -** Adding, removing, slicing, -* Strings -** 'f' strings -** Slicing -** math operations -** Other operations - upper, lower -* Dictionaries - -#### W1 Day 2 Homework - -## Week 2: Control structures and functions -### W2 Day 1 Lecture - Loops -* Control structures (if/else statements, for loops) and Truthy-ness -* Functions (defining and calling functions, parameters and arguments) -* More on functions (default arguments, keyword arguments, return values) -* Introduction to debugging (print statements, using the debugger) - -## Week 3: Working with data -Day 1: Lists and tuples (indexing, slicing, modifying) -Day 2: Dictionaries (defining, accessing values, iterating) -Day 3: Reading and writing files -Day 4: Working with external libraries (importing and using libraries, installing libraries) - -## Week 4: Object-oriented programming -Day 1: Introduction to object-oriented programming (classes, objects, attributes, methods) -Day 2: Inheritance and polymorphism -Day 3: Exceptions and error handling -Day 4: Project work and review - -# Advanced Schedule diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/0-coursework/week_4.ipynb b/0-coursework/week_4.ipynb new file mode 100644 index 0000000..e69de29 From 0996b86567dad9acbf06c5b88542df6e5b21736a Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 6 Jul 2024 17:35:23 -0700 Subject: [PATCH 048/163] initializing notebooks --- 0-coursework/week_1.ipynb | 56 +++++++++++++++++++++++++++++++++ 0-coursework/week_2.ipynb | 65 +++++++++++++++++++++++++++++++++++++++ 0-coursework/week_3.ipynb | 56 +++++++++++++++++++++++++++++++++ 0-coursework/week_4.ipynb | 56 +++++++++++++++++++++++++++++++++ 4 files changed, 233 insertions(+) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index e69de29..ad70516 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -0,0 +1,56 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Getting Started" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "foo\n" + ] + } + ], + "source": [ + "print('foo')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index e69de29..06bec2e 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 2" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello World\n" + ] + } + ], + "source": [ + "print(\"Hello World\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(1, 2, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index e69de29..51ab595 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -0,0 +1,56 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 3" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Foo\n" + ] + } + ], + "source": [ + "print('Foo')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/0-coursework/week_4.ipynb b/0-coursework/week_4.ipynb index e69de29..0796136 100644 --- a/0-coursework/week_4.ipynb +++ b/0-coursework/week_4.ipynb @@ -0,0 +1,56 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 4" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bar\n" + ] + } + ], + "source": [ + "print(\"bar\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f99f59ec1b10ac4fe23c634b56e5756e672839b6 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 8 Jul 2024 21:02:45 -0700 Subject: [PATCH 049/163] added some content --- 0-coursework/week_1.ipynb | 109 +++++++++++++++++++++++++++++++++----- 1 file changed, 97 insertions(+), 12 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index ad70516..9469e59 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -4,24 +4,47 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Getting Started" + "# Start here!\n", + "\n", + "The first program most folks make is a hello world. Type the following in the code cell below and press shift + enter to run it! \n", + " \n", + "`print('Hello World!')`" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## About Python\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "foo\n" - ] - } - ], "source": [ - "print('foo')" + "## Syntax" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Syntax Errors\n", + "Recent versions of python 3 are pretty good at giving you error messages that help! \n", + " \n", + "Run the following cells, check the error messages, and fix the code to resolve the errors!\n", + "* Look at what line the error message refers to\n", + "* Think about the error\n", + "* Think about the code and compare whatever you do to fix it to error message." ] }, { @@ -29,6 +52,68 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [ + "a = \"The quick brown fox jumps over the lazy dog'\n", + "# Hint, something should be the same at the start and end of the string\n", + "# a is a variable that holds a string! A string is a data type!\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "b == 5\n", + "print('b is:', b)\n", + "# hint, an = does an assigmnint, and an == does a comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if b == 5\n", + " print('b is five')\n", + "else:\n", + " print('b is not five')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = 2\n", + "if x = 1:\n", + " print(\"x is 1\")\n", + "else:\n", + " print(f'x is not 1, it is {x}')\n", + "# Hint, a single equals sign is used to assign a value to a variable and the following\n", + "# are used to compare values: ==, !=, >, <, >=, <=" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data Types" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Strings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [] } ], From b4268ac0e133ef7c78602e8ea8a6e16981a59e1c Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 8 Jul 2024 21:49:22 -0700 Subject: [PATCH 050/163] more content --- 0-coursework/week_1.ipynb | 42 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 9469e59..24750ed 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Start here!\n", + "# Week 1 - Start here!\n", "\n", "The first program most folks make is a hello world. Type the following in the code cell below and press shift + enter to run it! \n", " \n", @@ -23,8 +23,33 @@ "metadata": {}, "source": [ "## About Python\n", + "Python is an interpreted language - you don'v have to compile your code before running it. It's disigned to be readable and maintainable, and to do a lot of tasks efficiently. It's one of the most popular languages for good reason.\n", "\n", - "\n" + "It may not run as fast as a compiled language like c, c++, fortran, but it has a lot of libraries that are written in c and make specific tasks very fast. We'll work with pandas later in this class. Pandas is build around numpy, a very performant library for manipulating lots of numbers. \n", + "\n", + "Run \"import this\", without the quotes, in the next cell!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What can we do with Python?\n", + "* Machine learning - Look into \"SciPy\" and many other libraries that make ML simple-ish to use.\n", + "* Analytics and data processing - find trends, do analysis, make graphs!\n", + "* Automate the boring stuff - office tasks like mail merges, filling out document templates over and over, processing spreadsheet and data\n", + "* Web scraping\n", + "* Embeded systems and Robotics - look at micropython and circuitpython, which run on many small microconrtollers\n", + "* Games - Look into pygame, pygamezero, or even Godot engine, which uses a python-like language and can build very advanced games. \n", + "* Systems automation - read config files, run commands on computers, collect data, do stuff. \n", + "* And more!" ] }, { @@ -82,6 +107,19 @@ " print('b is not five')" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if b % 2: # a less succinct way to write this is 'if b % 2 == 1'\n", + " print('b is odd')\n", + " else:\n", + " print('b is even')\n", + "# hint, if and else need the same level of indentation" + ] + }, { "cell_type": "code", "execution_count": null, From 260c3132a09448082acf61ab75e3b0d5c6088652 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 8 Jul 2024 21:49:33 -0700 Subject: [PATCH 051/163] more content --- 0-coursework/week_1.ipynb | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 24750ed..c953192 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -45,11 +45,14 @@ "* Machine learning - Look into \"SciPy\" and many other libraries that make ML simple-ish to use.\n", "* Analytics and data processing - find trends, do analysis, make graphs!\n", "* Automate the boring stuff - office tasks like mail merges, filling out document templates over and over, processing spreadsheet and data\n", - "* Web scraping\n", + "* Web scraping - Look into BeautifulSoup or many other libraries\n", "* Embeded systems and Robotics - look at micropython and circuitpython, which run on many small microconrtollers\n", - "* Games - Look into pygame, pygamezero, or even Godot engine, which uses a python-like language and can build very advanced games. \n", + "* Games - Look into PyGame, Pygame Zero, Turtle, or even Godot engine, which uses a python-like language and can build very advanced games. \n", "* Systems automation - read config files, run commands on computers, collect data, do stuff. \n", - "* And more!" + "* And more!\n", + "\n", + "### Libraries\n", + "You'll learn pretty quickly that learing python is as much about understanding how the language works and getting familiar with libraries to do the things you want to do. " ] }, { @@ -153,6 +156,30 @@ "cell_type": "markdown", "metadata": {}, "source": [] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "from turtle import *\n", + "home()\n", + "pos()\n", + "clearscreen()\n", + "for steps in range(100):\n", + " for c in ('blue', 'red', 'green'):\n", + " color(c)\n", + " forward(steps)\n", + " right(30)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 8b37080c0dd31b933996f645d5335c3f5697abea Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 13 Jul 2024 14:27:03 -0700 Subject: [PATCH 052/163] more content --- 0-coursework/week_1.ipynb | 195 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 189 insertions(+), 6 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index c953192..6322b1b 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -6,7 +6,7 @@ "source": [ "# Week 1 - Start here!\n", "\n", - "The first program most folks make is a hello world. Type the following in the code cell below and press shift + enter to run it! \n", + "The first program most folks make in any language is a hello world. Type the following in the code cell below and press shift + enter to run it!\n", " \n", "`print('Hello World!')`" ] @@ -27,6 +27,7 @@ "\n", "It may not run as fast as a compiled language like c, c++, fortran, but it has a lot of libraries that are written in c and make specific tasks very fast. We'll work with pandas later in this class. Pandas is build around numpy, a very performant library for manipulating lots of numbers. \n", "\n", + "#### *Exercise*:\n", "Run \"import this\", without the quotes, in the next cell!" ] }, @@ -52,14 +53,63 @@ "* And more!\n", "\n", "### Libraries\n", - "You'll learn pretty quickly that learing python is as much about understanding how the language works and getting familiar with libraries to do the things you want to do. " + "You'll learn pretty quickly that learing python is as much about understanding how the language works as getting familiar with libraries to do the things you want to do. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Syntax" + "## Syntax\n", + "Reference this page: https://en.wikipedia.org/wiki/Python_syntax_and_semantics\n", + "\n", + "### Keywords\n", + "Some words cannot be used as variables because they have special meaning in the pythin language:\n", + "and as assert async await break case class continue def del elif else except False finally for from global if import in is lambda match None nonlocal not or pass raise return True try while with yield _.\n", + "\n", + "### Indentation\n", + "Python uses indentation to group code inside of functions, classes, and control blocks. Other languages often use { } for the same purpose. \n", + "\n", + "For example, this function called foo has an if else block inside of it, with indentation showing what code belongs to the function:\n", + "\n", + " def foo(x):\n", + " if x == 0:\n", + " bar()\n", + " else:\n", + " baz(x)\n", + " foo(x - 1)\n", + "\n", + "What would happen if the last line, 'foo(x-1)' were un-indented to the same level as the if and else lines?\n", + "\n", + "An equivelant function in c could be written like this:\n", + "\n", + " void foo(int x)\n", + " {\n", + " if (x == 0) {\n", + " bar();\n", + " } else {\n", + " baz(x);\n", + " foo(x - 1);\n", + " }\n", + " }\n", + "\n", + "### Quoting\n", + "Strings, non-numeric values, are quoted with ', \", ''', \"\"\". We'll look at this more in the strings section below. Just note this. Variable names are not quoted, but values when assigned or passed as arguments to a function are if they are to be treated as strings. \n", + "\n", + "Examples:\n", + "* x = \"Hasn't seen it\"\n", + "* y = '''He said, \"it isn't there.\"'''\n", + "* ...\n", + "\n", + "### Describing data types\n", + "We use symbols like [], (), {} to say what type of data things are:\n", + "\n", + "* To define a list:\n", + " * x = [1, 2, 3, '1', '2', 'c']\n", + "* To define a tuple:\n", + " * y = (4, 5, 6, 'a', 'b')\n", + "* To define a dictionary:\n", + " * z = {1: 'a', 2: 'b', 'c': 'foo'}" ] }, { @@ -69,6 +119,7 @@ "### Syntax Errors\n", "Recent versions of python 3 are pretty good at giving you error messages that help! \n", " \n", + "#### *Exercise*:\n", "Run the following cells, check the error messages, and fix the code to resolve the errors!\n", "* Look at what line the error message refers to\n", "* Think about the error\n", @@ -142,7 +193,109 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Data Types" + "## Data Types\n", + "You may have heard the saying that everything in Python is an object. This means that every *thing* in python has properties and built in methods/functions for interacting with it. \n", + "\n", + "Following are the built in data types we need to know how to work with. But also keep in mind that we can define a *class* to make any type of object suited to our specific need. \n", + "\n", + "You can check the type of an object with the **type** function:\n", + "\n", + " >>> type('a')\n", + " \n", + "\n", + "#### *Exercise*:\n", + "Check the type of each of these things using the **type** function:\n", + "* -10\n", + "* 0\n", + "* 1.1, 10000000.1\n", + "* 'a'\n", + "* (1, 2, 3)\n", + "* ('a', 'b', 3)\n", + "* [4, 5, 'e']\n", + "* {'a': 2, 'b': 6}\n", + "* set((1, 1, 2, 3, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can check the built in methods of any type of object using the **dir** function: \n", + "\n", + " >>> dir([1, 2, 3])\n", + " ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']\n", + " >>> \n", + "\n", + "Anything listed without an __ is intended to be called directly to interact with the object. For example:\n", + "\n", + " >>> x = [1, 2, 3]\n", + " >>> x.append(4)\n", + " >>> x\n", + " [1, 2, 3, 4]\n", + "\n", + "Anything listed with __ at the start and end is a special method that you don't directly access, but works with the Python language naturally, making code more readable. For example, if I want to know if the number 2 is in the list [1, 2, 3], I can use:\n", + "\n", + " >>> 2 in [1, 2, 3]\n", + " True\n", + "\n", + "And in the background, python is running this:\n", + "\n", + " >>> [1, 2, 3].__contains__(2)\n", + " True\n", + "\n", + "#### *Exercise*\n", + "Use **dir** to check the built in methods for each ot the thinkgs from the above **type** exercise:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Integers and Floats\n", + "Python has different data types for integers, whole numbers, and floating point values, but will automaticaly convert to using floats when doing division unless you tell it not to. \n", + "\n", + "#### Arithmatic Operations\n", + "Most of these should look familiar. We start by assigning values to a and b, and them do some math with them. A few things to note:\n", + "* '/' is for division and will give a floating point value\n", + "* '//' is for division but will drop the remainder and give an integer result\n", + "* '%' is called a modulus and gives the remainder of the division.\n", + "* '^' is a little unusual, doing a *not* operation on the binary form of both numbers.\n", + "* '**' does an exponent, a to the power of b in this example.\n", + "\n", + " >>> a = 2\n", + " >>> b = 3\n", + " >>> a + b\n", + " 5\n", + " >>> a - b\n", + " -1\n", + " >>> a * b\n", + " 6\n", + " >>> a / b\n", + " 0.6666666666666666\n", + " >>> a ^ b\n", + " 1\n", + " >>> a ** b\n", + " 8\n", + " >>> a // b\n", + " 0\n", + " >>> a % b\n", + " 2\n", + "\n", + "#### Typecasting Ints and Floats\n" ] }, { @@ -155,7 +308,37 @@ { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "### Lists" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tuples" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dictionaries" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Typecasting" + ] }, { "cell_type": "code", @@ -198,7 +381,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From c8c554ac207ba728128a2f88c056115524b2078f Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 23 Jul 2024 19:50:18 -0700 Subject: [PATCH 053/163] updated weeks and added some sample data --- 0-coursework/week_1.ipynb | 169 ++++- 0-coursework/week_2.ipynb | 30 +- 0-coursework/week_3.ipynb | 44 +- 0-coursework/week_4.ipynb | 6 +- README.md | 21 +- SAMPLE_DATA/AAPL Historical Data.csv | 640 ++++++++++++++++++ SAMPLE_DATA/GME Historical Data.csv | 640 ++++++++++++++++++ SAMPLE_DATA/GOOG Historical Data.csv | 640 ++++++++++++++++++ .../NASDAQ Composite Historical Data.csv | 640 ++++++++++++++++++ SAMPLE_DATA/NVDA Historical Data.csv | 640 ++++++++++++++++++ 10 files changed, 3432 insertions(+), 38 deletions(-) create mode 100644 SAMPLE_DATA/AAPL Historical Data.csv create mode 100644 SAMPLE_DATA/GME Historical Data.csv create mode 100644 SAMPLE_DATA/GOOG Historical Data.csv create mode 100644 SAMPLE_DATA/NASDAQ Composite Historical Data.csv create mode 100644 SAMPLE_DATA/NVDA Historical Data.csv diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 6322b1b..708f948 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -27,6 +27,17 @@ "\n", "It may not run as fast as a compiled language like c, c++, fortran, but it has a lot of libraries that are written in c and make specific tasks very fast. We'll work with pandas later in this class. Pandas is build around numpy, a very performant library for manipulating lots of numbers. \n", "\n", + "### What can we do with Python?\n", + "* Machine learning - Look into \"SciPy\" and many other libraries that make ML simple-ish to use.\n", + "* Analytics and data processing - find trends, do analysis, make graphs!\n", + "* Automate the boring stuff - office tasks like mail merges, filling out document templates over and over, processing spreadsheet and data\n", + "* Web scraping - Look into BeautifulSoup or many other libraries\n", + "* Embeded systems and Robotics - look at micropython and circuitpython, which run on many small microconrtollers\n", + "* Games - Look into PyGame, Pygame Zero, Turtle, or even Godot engine, which uses a python-like language and can build very advanced games. \n", + "* Systems automation - read config files, run commands on computers, collect data, do stuff. \n", + "* And more!\n", + "\n", + "\n", "#### *Exercise*:\n", "Run \"import this\", without the quotes, in the next cell!" ] @@ -42,18 +53,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### What can we do with Python?\n", - "* Machine learning - Look into \"SciPy\" and many other libraries that make ML simple-ish to use.\n", - "* Analytics and data processing - find trends, do analysis, make graphs!\n", - "* Automate the boring stuff - office tasks like mail merges, filling out document templates over and over, processing spreadsheet and data\n", - "* Web scraping - Look into BeautifulSoup or many other libraries\n", - "* Embeded systems and Robotics - look at micropython and circuitpython, which run on many small microconrtollers\n", - "* Games - Look into PyGame, Pygame Zero, Turtle, or even Godot engine, which uses a python-like language and can build very advanced games. \n", - "* Systems automation - read config files, run commands on computers, collect data, do stuff. \n", - "* And more!\n", - "\n", "### Libraries\n", - "You'll learn pretty quickly that learing python is as much about understanding how the language works as getting familiar with libraries to do the things you want to do. " + "You'll learn pretty quickly that learing python is as much about understanding how the language works as getting familiar with libraries to do the things you want to do. A few examples:\n", + "* import math\n", + " * it has functions for rounding, trig, and a lot more\n", + "* from datetime import datetime\n", + " * datetime has tools for manipulating datetime objects! This is one that's weirdly complex in practice.\n", + "* import pandas as pd\n", + " * Using a short name is a common convention for some library. pandas is pd, numpy is np, ...\n", + " * Pandas is a bit like excel, except you do it all with commands in a reproducible way, rather than one off editing a file manually in excel.\n", + "* import json\n", + " * you'll use json a lot for web queries with the \"requests\" libray, for rest api stuff, and config files \n", + "... " ] }, { @@ -64,8 +75,9 @@ "Reference this page: https://en.wikipedia.org/wiki/Python_syntax_and_semantics\n", "\n", "### Keywords\n", - "Some words cannot be used as variables because they have special meaning in the pythin language:\n", - "and as assert async await break case class continue def del elif else except False finally for from global if import in is lambda match None nonlocal not or pass raise return True try while with yield _.\n", + "Some words cannot be used as variables because they have special meaning in the python language: \n", + "\n", + "*and as assert async await break case class continue def del elif else except False finally for from global if import in is lambda match None nonlocal not or pass raise return True try while with yield _.*\n", "\n", "### Indentation\n", "Python uses indentation to group code inside of functions, classes, and control blocks. Other languages often use { } for the same purpose. \n", @@ -79,7 +91,9 @@ " baz(x)\n", " foo(x - 1)\n", "\n", - "What would happen if the last line, 'foo(x-1)' were un-indented to the same level as the if and else lines?\n", + "**What would happen if the last line, 'foo(x-1)' were un-indented to the same level as the if and else lines?**\n", + "\n", + "**What would happen if there were tab characters mixed with the spaces in the indention in the above foo function?**\n", "\n", "An equivelant function in c could be written like this:\n", "\n", @@ -93,6 +107,8 @@ " }\n", " }\n", "\n", + "The indentation in c code is functionally unnecessary, but makes it readable.\n", + "\n", "### Quoting\n", "Strings, non-numeric values, are quoted with ', \", ''', \"\"\". We'll look at this more in the strings section below. Just note this. Variable names are not quoted, but values when assigned or passed as arguments to a function are if they are to be treated as strings. \n", "\n", @@ -101,6 +117,32 @@ "* y = '''He said, \"it isn't there.\"'''\n", "* ...\n", "\n", + "#### *Exercise*:\n", + "Fill out the print statements in the following code cell so that when the print statement runs, it prints exactly the text on each comment line, including quotes and back-slashes '\\'. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# It's Alright\n", + "print()\n", + "# He is called 'Johnny'.\n", + "print()\n", + "# Johnny said, \"That's some crazy quoting!\"\n", + "print()\n", + "# We can escape quotes with a backslash: \\\"\n", + "print()\n", + "# But how do we print the \\? Escape it with another \\!\n", + "print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "### Describing data types\n", "We use symbols like [], (), {} to say what type of data things are:\n", "\n", @@ -109,7 +151,31 @@ "* To define a tuple:\n", " * y = (4, 5, 6, 'a', 'b')\n", "* To define a dictionary:\n", - " * z = {1: 'a', 2: 'b', 'c': 'foo'}" + " * z = {1: 'a', 2: 'b', 'c': 'foo'}\n", + "\n", + "### Variables and Functions\n", + "We'll look deeper at each of these later, but just note how we write them for now. We'll get into the intricacies of how they work later. \n", + "\n", + "**Variables** are created by assigning a value to a name with an = symbol. For examble:\n", + "* valid_dogs = ['terrier', 'minpin', 'labrador']\n", + "* pets_age = 15\n", + "\n", + "\"valid_dogs\" and \"pets_age\" are the variables that refer to a list of strings and an integer, respectively. \n", + "\n", + " >>> pets_age = 15\n", + " >>> print(\"My dogs age is:\", pets_age)\n", + " My dogs age is: 15\n", + " >>> \n", + "\n", + "**Functions** are are created with the keyword \"def\", short for \"define\":\n", + "\n", + " def prompt_user_for_age(user_name):\n", + " prompt_message = f'{user_name}, enter your age: '\n", + " user_age = input(prompt_message)\n", + " return user_age\n", + "\n", + "This defines a function called \"prompt_user_for_age\" that takes an argument, \"user_name\", and it returns the response from the user, \"user_age\".\n", + "\n" ] }, { @@ -120,7 +186,7 @@ "Recent versions of python 3 are pretty good at giving you error messages that help! \n", " \n", "#### *Exercise*:\n", - "Run the following cells, check the error messages, and fix the code to resolve the errors!\n", + "Run the following code cells, check the error messages, and fix the code to resolve the errors!\n", "* Look at what line the error message refers to\n", "* Think about the error\n", "* Think about the code and compare whatever you do to fix it to error message." @@ -207,8 +273,13 @@ "Check the type of each of these things using the **type** function:\n", "* -10\n", "* 0\n", - "* 1.1, 10000000.1\n", + "* 50.1\n", + "* '123'\n", + "* '10.2'\n", "* 'a'\n", + "* True\n", + "* None\n", + "* 3+2j\n", "* (1, 2, 3)\n", "* ('a', 'b', 3)\n", "* [4, 5, 'e']\n", @@ -340,9 +411,47 @@ "### Typecasting" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 1 Turtle Challenge!\n", + "Turtle is a simple python graphics library. You tell the turtle which directon to walk, how far to walk, and what color to draw, and the turtle draws lines for you!\n", + "\n", + "This week, we'll get turtle working, and make some simple patterns. \n", + "\n", + "If you're working in google colab, you can use the following code to start using turtle:" + ] + }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip3 install ColabTurtle\n", + "from ColabTurtle.Turtle import *\n", + "initializeTurtle()\n", + "home()\n", + "pos()\n", + "clearscreen()\n", + "color('red')\n", + "forward(200)\n", + "right(90)\n", + "color('blue')\n", + "forward(30)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And if you're working in notebook locally installed on your laptop, you can use the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -350,11 +459,23 @@ "home()\n", "pos()\n", "clearscreen()\n", - "for steps in range(100):\n", - " for c in ('blue', 'red', 'green'):\n", - " color(c)\n", - " forward(steps)\n", - " right(30)" + "color('red')\n", + "forward(200)\n", + "right(90)\n", + "color('blue')\n", + "forward(30)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "Copy the turtle code from above to new cells below and make changes to accomplish as many of the following things as you can:\n", + "* Draw a square with each side a different color\n", + "* Draw an octogon with alternating colors on each side\n", + "* Rework your code from the above two challenges to use a variable for the side length, so you only have to change one number in the cell to make all of the sides longer or shorter. \n", + "* Use a variable to count the number of sides drawn. Each time you draw a side, add one to the counter. If the counter is odd, make the next side green. If the counter is even, make the next side blue. You can use an if statement to do this. And you can test to see if the counter is odd with simply \"counter % 2 > 0\". This uses the modulus operator to say, if the remainder after dividing counter by 2 is greater than zeri. If it is, then it evaluates True. If it is, it evaluates False. \n" ] }, { @@ -381,7 +502,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 06bec2e..5ab55e7 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -7,6 +7,13 @@ "# Week 2" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while)." + ] + }, { "cell_type": "code", "execution_count": 1, @@ -29,9 +36,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "print(1, 2, 3)" - ] + "source": [] }, { "cell_type": "code", @@ -39,6 +44,23 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 2 Turtle Challenge\n", + "This week, we can use the power of loops to make shapes of arbitrary numbers of sides with only a few lines of code!\n", + "\n", + "#### *Exercise*:\n", + "* Use variables for number_of_sides, side_length and a loop to draw regular polygons of any size and number of sides. You can use another variable, turn_angle, that is equal to 360 divided by the number of sides. Try doing this using a counter as we did last week and a while loop that checks if the counter is less than number_of_sides.\n", + "* Do the same thing, but with a for loop, iterating over range(number_of_sides) and omit the counter.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { @@ -57,7 +79,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index 51ab595..bcf2f74 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 3" + "# Week 3\n", + "\n", + "Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration." ] }, { @@ -30,6 +32,44 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Functions\n", + "\n", + "### Positional Arguments\n", + "\n", + "### Optional Arguments \n", + "\n", + "### Keyword Arguments\n", + "\n", + "### Arbitrary Arguments\n", + "We won't get into this, but look into *args and **kwargs. You can make a funcation accept any arguments. An example use for this is cerating your own version of the print function:\n", + "\n", + " DEBUG = True\n", + "\n", + " def debug_print(*args, **kwargs):\n", + " if DEBUG:\n", + " print(*args, **kwargs)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 3 Turtle Challenge\n", + "This week, we can use functions to isolate complex operations into little chunks that are used by other code to perform complex behavior with simple, readable, code.\n", + " \n", + "#### *Exercise*:\n", + "* " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { @@ -48,7 +88,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/0-coursework/week_4.ipynb b/0-coursework/week_4.ipynb index 0796136..f8b9531 100644 --- a/0-coursework/week_4.ipynb +++ b/0-coursework/week_4.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 4" + "# Week 4\n", + "\n", + "Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs" ] }, { @@ -48,7 +50,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/README.md b/README.md index 1e77adc..4738689 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,21 @@ If you're working from your own laptop and want to open notebooks locally rather * Week 3: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration. * Week 4: Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. -* Create a ChatGPT account and try asking it a few questions - it can be very helpful for figuring out how to do things, why things work the way they do, etc: - * https://chat.openai.com/chat - * Example questions: - * How do I use for loops in python? - * How do I configure VS Code to use my Anaconda python interpreter? - * etc! +### Next Steps +* Online Courses +* Weekend projects +* Automate something at work + +## Resources +* https://docs.python.org/3/ +* https://www.w3schools.com/python/default.asp +* https://google.github.io/styleguide/pyguide.html +* https://github.com/jsantarc/cognitiveclass.ai-Python-for-Data-Science +* https://replit.com/ + +### Notes on AI like ChatGPT +These tools are very helpful for learning. For this course, use them to explain how things work, but don't ask them to write code for you. If you don't experiment and learn for yourself, you won't retain much. + ### Optional Pre-Work * Create a ChatGPT account and try asking it a few questions - it can be very helpful for figuring out how to do things, why things work the way they do, etc: diff --git a/SAMPLE_DATA/AAPL Historical Data.csv b/SAMPLE_DATA/AAPL Historical Data.csv new file mode 100644 index 0000000..4cbb9bc --- /dev/null +++ b/SAMPLE_DATA/AAPL Historical Data.csv @@ -0,0 +1,640 @@ +"Date","Price","Open","High","Low","Vol.","Change %" +"07/19/2024","224.31","224.82","226.80","223.27","49.15M","0.06%" +"07/18/2024","224.18","230.28","230.44","222.27","66.03M","-2.05%" +"07/17/2024","228.88","229.45","231.46","226.64","57.35M","-2.53%" +"07/16/2024","234.82","235.00","236.27","232.33","43.23M","0.18%" +"07/15/2024","234.40","236.48","237.23","233.09","62.63M","1.67%" +"07/12/2024","230.54","228.92","232.64","228.68","53.05M","1.31%" +"07/11/2024","227.57","231.39","232.39","225.77","64.71M","-2.32%" +"07/10/2024","232.98","229.30","233.08","229.25","62.63M","1.88%" +"07/09/2024","228.68","227.93","229.40","226.37","48.17M","0.38%" +"07/08/2024","227.82","227.09","227.85","223.25","59.09M","0.65%" +"07/05/2024","226.34","221.65","226.45","221.65","60.41M","2.16%" +"07/03/2024","221.55","220.00","221.55","219.03","37.37M","0.58%" +"07/02/2024","220.27","216.15","220.38","215.10","58.05M","1.62%" +"07/01/2024","216.75","212.09","217.51","211.92","60.40M","2.91%" +"06/28/2024","210.62","215.77","216.07","210.30","82.54M","-1.63%" +"06/27/2024","214.10","214.69","215.74","212.35","49.77M","0.40%" +"06/26/2024","213.25","211.50","214.86","210.64","66.21M","2.00%" +"06/25/2024","209.07","209.15","211.38","208.61","56.71M","0.45%" +"06/24/2024","208.14","207.72","212.70","206.59","80.73M","0.31%" +"06/21/2024","207.49","210.39","211.89","207.11","246.42M","-1.04%" +"06/20/2024","209.68","213.93","214.24","208.85","86.17M","-2.15%" +"06/18/2024","214.29","217.59","218.63","213.00","79.94M","-1.10%" +"06/17/2024","216.67","213.37","218.95","212.72","93.73M","1.97%" +"06/14/2024","212.49","213.85","215.17","211.30","70.12M","-0.82%" +"06/13/2024","214.24","214.74","216.75","211.60","97.86M","0.55%" +"06/12/2024","213.07","207.37","220.20","206.90","198.13M","2.86%" +"06/11/2024","207.15","193.65","207.16","193.63","172.37M","7.26%" +"06/10/2024","193.12","196.90","197.30","192.15","97.26M","-1.91%" +"06/07/2024","196.89","194.65","196.94","194.14","53.10M","1.24%" +"06/06/2024","194.48","195.68","196.50","194.17","41.18M","-0.71%" +"06/05/2024","195.87","195.40","196.90","194.87","54.16M","0.78%" +"06/04/2024","194.35","194.63","195.32","193.03","47.47M","0.16%" +"06/03/2024","194.03","192.90","194.99","192.52","50.08M","0.93%" +"05/31/2024","192.25","191.44","192.57","189.91","75.16M","0.50%" +"05/30/2024","191.29","190.76","192.18","190.63","49.95M","0.53%" +"05/29/2024","190.29","189.61","192.25","189.51","53.07M","0.16%" +"05/28/2024","189.99","191.51","193.00","189.10","52.28M","0.01%" +"05/24/2024","189.98","188.82","190.58","188.04","36.33M","1.66%" +"05/23/2024","186.88","190.98","191.00","186.63","51.01M","-2.11%" +"05/22/2024","190.90","192.26","192.82","190.27","34.65M","-0.75%" +"05/21/2024","192.35","191.09","192.73","190.92","42.31M","0.69%" +"05/20/2024","191.04","189.32","191.92","189.01","44.36M","0.62%" +"05/17/2024","189.87","189.51","190.81","189.18","41.28M","0.02%" +"05/16/2024","189.84","190.47","191.10","189.66","52.85M","0.06%" +"05/15/2024","189.72","187.91","190.65","187.37","70.40M","1.22%" +"05/14/2024","187.43","187.51","188.30","186.29","52.39M","0.62%" +"05/13/2024","186.28","185.43","187.10","184.62","72.04M","1.76%" +"05/10/2024","183.05","184.90","185.09","182.13","50.76M","-0.82%" +"05/09/2024","184.57","182.56","184.66","182.11","48.98M","1.00%" +"05/08/2024","182.74","182.85","183.07","181.45","45.06M","0.19%" +"05/07/2024","182.40","183.45","184.90","181.32","77.31M","0.38%" +"05/06/2024","181.71","182.35","184.20","180.42","78.57M","-0.91%" +"05/03/2024","183.38","186.65","187.00","182.66","163.22M","5.98%" +"05/02/2024","173.03","172.51","173.41","170.89","94.21M","2.20%" +"05/01/2024","169.30","169.58","172.71","169.11","50.38M","-0.60%" +"04/30/2024","170.33","173.33","174.99","170.00","65.93M","-1.83%" +"04/29/2024","173.50","173.37","176.03","173.10","68.17M","2.48%" +"04/26/2024","169.30","169.88","171.34","169.18","44.84M","-0.35%" +"04/25/2024","169.89","169.52","170.61","168.15","50.56M","0.51%" +"04/24/2024","169.02","166.54","169.30","166.21","48.25M","1.27%" +"04/23/2024","166.90","165.35","167.05","164.92","49.54M","0.64%" +"04/22/2024","165.84","165.51","167.26","164.77","48.12M","0.51%" +"04/19/2024","165.00","166.21","166.40","164.07","68.15M","-1.22%" +"04/18/2024","167.04","168.03","168.64","166.55","43.12M","-0.57%" +"04/17/2024","168.00","169.61","170.65","168.00","50.90M","-0.81%" +"04/16/2024","169.38","171.75","173.76","168.27","73.71M","-1.92%" +"04/15/2024","172.69","175.36","176.63","172.50","73.53M","-2.19%" +"04/12/2024","176.55","174.26","178.36","174.21","101.67M","0.86%" +"04/11/2024","175.04","168.34","175.46","168.16","91.07M","4.33%" +"04/10/2024","167.78","168.80","169.09","167.11","49.71M","-1.11%" +"04/09/2024","169.67","168.70","170.08","168.35","42.45M","0.72%" +"04/08/2024","168.45","169.03","169.20","168.24","37.43M","-0.67%" +"04/05/2024","169.58","169.59","170.39","168.95","42.10M","0.45%" +"04/04/2024","168.82","170.29","171.92","168.82","53.70M","-0.49%" +"04/03/2024","169.65","168.79","170.68","168.58","47.69M","0.48%" +"04/02/2024","168.84","169.08","169.34","168.23","49.33M","-0.70%" +"04/01/2024","170.03","171.19","171.25","169.48","46.24M","-0.85%" +"03/28/2024","171.48","171.75","172.23","170.51","65.67M","-1.06%" +"03/27/2024","173.31","170.41","173.60","170.11","60.27M","2.12%" +"03/26/2024","169.71","170.00","171.42","169.58","57.39M","-0.67%" +"03/25/2024","170.85","170.57","171.94","169.45","54.29M","-0.83%" +"03/22/2024","172.28","171.76","173.05","170.06","71.16M","0.53%" +"03/21/2024","171.37","177.05","177.49","170.84","106.18M","-4.09%" +"03/20/2024","178.67","175.72","178.67","175.09","53.42M","1.47%" +"03/19/2024","176.08","174.34","176.60","173.03","55.22M","1.36%" +"03/18/2024","173.72","175.57","177.71","173.52","75.60M","0.64%" +"03/15/2024","172.62","171.17","172.62","170.29","121.75M","-0.22%" +"03/14/2024","173.00","172.91","174.31","172.05","72.91M","1.09%" +"03/13/2024","171.13","172.77","173.18","170.76","52.49M","-1.21%" +"03/12/2024","173.23","173.15","174.03","171.01","59.83M","0.28%" +"03/11/2024","172.75","172.94","174.38","172.05","60.14M","1.18%" +"03/08/2024","170.73","169.00","173.70","168.94","76.27M","1.02%" +"03/07/2024","169.00","169.15","170.73","168.49","71.77M","-0.07%" +"03/06/2024","169.12","171.06","171.24","168.68","68.59M","-0.59%" +"03/05/2024","170.12","170.76","172.04","169.62","95.13M","-2.84%" +"03/04/2024","175.10","176.15","176.90","173.79","81.51M","-2.54%" +"03/01/2024","179.66","179.55","180.53","177.38","73.56M","-0.60%" +"02/29/2024","180.75","181.27","182.57","179.53","136.68M","-0.37%" +"02/28/2024","181.42","182.51","183.12","180.13","48.95M","-0.66%" +"02/27/2024","182.63","181.10","183.92","179.56","54.32M","0.81%" +"02/26/2024","181.16","182.24","182.76","180.65","40.87M","-0.75%" +"02/23/2024","182.52","185.01","185.04","182.23","45.12M","-1.00%" +"02/22/2024","184.37","183.48","184.96","182.46","52.29M","1.12%" +"02/21/2024","182.32","181.94","182.89","180.66","41.53M","0.42%" +"02/20/2024","181.56","181.79","182.43","180.00","53.67M","-0.41%" +"02/16/2024","182.31","183.42","184.85","181.66","49.75M","-0.84%" +"02/15/2024","183.86","183.55","184.49","181.35","65.43M","-0.16%" +"02/14/2024","184.15","185.32","185.53","182.44","54.63M","-0.48%" +"02/13/2024","185.04","185.77","186.21","183.51","56.53M","-1.13%" +"02/12/2024","187.15","188.41","188.67","186.79","41.78M","-0.90%" +"02/09/2024","188.85","188.65","189.99","188.00","45.16M","0.28%" +"02/08/2024","188.32","189.38","189.54","187.35","40.96M","-0.58%" +"02/07/2024","189.41","190.64","191.05","188.61","53.44M","0.06%" +"02/06/2024","189.30","186.86","189.31","186.77","43.49M","0.86%" +"02/05/2024","187.68","188.15","189.25","185.84","69.67M","0.98%" +"02/02/2024","185.85","179.86","187.33","179.25","102.55M","-0.54%" +"02/01/2024","186.86","183.99","186.95","183.82","64.89M","1.33%" +"01/31/2024","184.40","187.04","187.10","184.35","55.47M","-1.94%" +"01/30/2024","188.04","190.94","191.80","187.47","55.86M","-1.92%" +"01/29/2024","191.73","192.01","192.20","189.58","47.15M","-0.36%" +"01/26/2024","192.42","194.27","194.76","191.94","44.59M","-0.90%" +"01/25/2024","194.17","195.22","196.27","193.11","54.82M","-0.17%" +"01/24/2024","194.50","195.42","196.38","194.34","53.63M","-0.35%" +"01/23/2024","195.18","195.02","195.75","193.83","42.36M","0.67%" +"01/22/2024","193.89","192.30","195.33","192.26","60.13M","1.22%" +"01/19/2024","191.56","189.33","191.95","188.82","68.90M","1.55%" +"01/18/2024","188.63","186.09","189.14","185.83","78.01M","3.26%" +"01/17/2024","182.68","181.27","182.93","180.30","47.32M","-0.52%" +"01/16/2024","183.63","182.16","184.26","180.93","65.60M","-1.23%" +"01/12/2024","185.92","186.06","186.74","185.19","40.48M","0.18%" +"01/11/2024","185.59","186.54","187.05","183.62","49.13M","-0.32%" +"01/10/2024","186.19","184.35","186.40","183.92","46.79M","0.57%" +"01/09/2024","185.14","183.92","185.15","182.73","42.84M","-0.23%" +"01/08/2024","185.56","182.09","185.60","181.50","59.14M","2.42%" +"01/05/2024","181.18","181.99","182.76","180.17","62.38M","-0.40%" +"01/04/2024","181.91","182.15","183.09","180.88","71.98M","-1.27%" +"01/03/2024","184.25","184.22","185.88","183.43","58.41M","-0.75%" +"01/02/2024","185.64","187.15","188.44","183.88","82.49M","-3.58%" +"12/29/2023","192.53","193.90","194.40","191.73","42.67M","-0.54%" +"12/28/2023","193.58","194.14","194.66","193.17","34.05M","0.22%" +"12/27/2023","193.15","192.49","193.50","191.09","48.09M","0.05%" +"12/26/2023","193.05","193.61","193.89","192.83","28.92M","-0.28%" +"12/22/2023","193.60","195.18","195.41","192.97","37.15M","-0.55%" +"12/21/2023","194.68","196.10","197.08","193.50","46.48M","-0.08%" +"12/20/2023","194.83","196.90","197.68","194.83","52.24M","-1.07%" +"12/19/2023","196.94","196.16","196.95","195.89","40.71M","0.54%" +"12/18/2023","195.89","196.09","196.63","194.39","55.75M","-0.85%" +"12/15/2023","197.57","197.53","198.40","197.00","128.54M","-0.27%" +"12/14/2023","198.11","198.02","199.62","196.16","66.83M","0.08%" +"12/13/2023","197.96","195.09","198.00","194.85","70.40M","1.67%" +"12/12/2023","194.71","193.08","194.72","191.72","52.70M","0.79%" +"12/11/2023","193.18","193.11","193.49","191.42","60.94M","-1.29%" +"12/08/2023","195.71","194.20","195.99","193.67","53.41M","0.74%" +"12/07/2023","194.27","193.63","195.00","193.59","47.48M","1.01%" +"12/06/2023","192.32","194.45","194.76","192.11","41.09M","-0.57%" +"12/05/2023","193.42","190.21","194.40","190.18","66.63M","2.11%" +"12/04/2023","189.43","189.98","190.05","187.45","43.39M","-0.95%" +"12/01/2023","191.24","190.33","191.56","189.23","45.70M","0.68%" +"11/30/2023","189.95","189.84","190.32","188.19","48.79M","0.31%" +"11/29/2023","189.37","190.90","192.09","188.97","43.01M","-0.54%" +"11/28/2023","190.40","189.78","191.08","189.40","38.42M","0.32%" +"11/27/2023","189.79","189.92","190.67","188.90","40.55M","-0.09%" +"11/24/2023","189.97","190.87","190.90","189.25","24.05M","-0.70%" +"11/22/2023","191.31","191.49","192.93","190.82","39.63M","0.35%" +"11/21/2023","190.64","191.41","191.52","189.74","38.13M","-0.42%" +"11/20/2023","191.45","189.89","191.90","189.88","46.54M","0.93%" +"11/17/2023","189.69","190.25","190.38","188.57","50.94M","-0.01%" +"11/16/2023","189.71","189.57","190.96","188.65","54.41M","0.90%" +"11/15/2023","188.01","187.85","189.50","187.78","53.79M","0.30%" +"11/14/2023","187.44","187.70","188.11","186.30","60.11M","1.43%" +"11/13/2023","184.80","185.82","186.03","184.21","43.63M","-0.86%" +"11/10/2023","186.40","183.97","186.57","183.53","66.18M","2.19%" +"11/09/2023","182.41","182.96","184.12","181.81","53.76M","-0.26%" +"11/08/2023","182.89","182.35","183.45","181.59","49.34M","0.59%" +"11/07/2023","181.82","179.18","182.44","178.97","70.53M","1.45%" +"11/06/2023","179.23","176.38","179.43","176.21","63.84M","1.46%" +"11/03/2023","176.65","174.24","176.82","173.35","79.83M","-0.52%" +"11/02/2023","177.57","175.52","177.78","175.46","77.33M","2.07%" +"11/01/2023","173.97","171.00","174.23","170.12","56.93M","1.87%" +"10/31/2023","170.77","169.35","170.90","167.90","44.85M","0.28%" +"10/30/2023","170.29","169.02","171.17","168.87","51.13M","1.23%" +"10/27/2023","168.22","166.91","168.96","166.83","58.50M","0.80%" +"10/26/2023","166.89","170.37","171.38","165.67","70.63M","-2.46%" +"10/25/2023","171.10","171.88","173.06","170.65","57.16M","-1.35%" +"10/24/2023","173.44","173.05","173.67","171.45","43.82M","0.25%" +"10/23/2023","173.00","170.91","174.01","169.93","55.98M","0.07%" +"10/20/2023","172.88","175.31","175.42","172.64","64.24M","-1.47%" +"10/19/2023","175.46","176.04","177.84","175.19","59.30M","-0.22%" +"10/18/2023","175.84","175.58","177.57","175.11","54.76M","-0.74%" +"10/17/2023","177.15","176.65","178.42","174.80","57.55M","-0.88%" +"10/16/2023","178.72","176.75","179.07","176.51","52.52M","-0.07%" +"10/13/2023","178.85","181.42","181.93","178.14","51.46M","-1.03%" +"10/12/2023","180.71","180.07","182.34","179.04","56.74M","0.51%" +"10/11/2023","179.80","178.20","179.85","177.60","47.55M","0.79%" +"10/10/2023","178.39","178.10","179.72","177.95","43.70M","-0.34%" +"10/09/2023","178.99","176.81","179.05","175.80","42.39M","0.85%" +"10/06/2023","177.49","173.80","177.99","173.18","57.27M","1.48%" +"10/05/2023","174.91","173.79","175.45","172.68","48.53M","0.72%" +"10/04/2023","173.66","171.09","174.21","170.97","53.02M","0.73%" +"10/03/2023","172.40","172.26","173.63","170.82","49.59M","-0.78%" +"10/02/2023","173.75","171.22","174.30","170.93","52.16M","1.48%" +"09/29/2023","171.21","172.02","173.07","170.34","51.86M","0.30%" +"09/28/2023","170.69","169.34","172.03","167.62","56.29M","0.15%" +"09/27/2023","170.43","172.62","173.04","169.05","66.92M","-0.89%" +"09/26/2023","171.96","174.82","175.20","171.66","64.59M","-2.34%" +"09/25/2023","176.08","174.20","176.97","174.15","46.17M","0.74%" +"09/22/2023","174.79","174.67","177.08","174.05","56.73M","0.49%" +"09/21/2023","173.93","174.55","176.30","173.86","63.15M","-0.89%" +"09/20/2023","175.49","179.26","179.70","175.40","58.44M","-2.00%" +"09/19/2023","179.07","177.52","179.63","177.13","51.83M","0.62%" +"09/18/2023","177.97","176.48","179.38","176.17","67.26M","1.69%" +"09/15/2023","175.01","176.48","176.49","173.82","109.26M","-0.42%" +"09/14/2023","175.74","174.00","176.10","173.58","60.90M","0.88%" +"09/13/2023","174.21","176.51","177.30","173.98","84.27M","-1.19%" +"09/12/2023","176.30","179.49","180.13","174.82","90.37M","-1.71%" +"09/11/2023","179.36","180.07","180.30","177.34","58.95M","0.66%" +"09/08/2023","178.18","178.35","180.24","177.79","65.60M","0.35%" +"09/07/2023","177.56","175.18","178.21","173.54","112.49M","-2.92%" +"09/06/2023","182.91","188.40","188.85","181.47","81.76M","-3.58%" +"09/05/2023","189.70","188.28","189.98","187.61","45.28M","0.13%" +"09/01/2023","189.46","189.49","189.92","188.28","45.77M","0.85%" +"08/31/2023","187.87","187.84","189.12","187.48","60.79M","0.12%" +"08/30/2023","187.65","184.94","187.85","184.74","60.81M","1.92%" +"08/29/2023","184.12","179.70","184.90","179.50","53.00M","2.18%" +"08/28/2023","180.19","180.09","180.59","178.54","43.82M","0.88%" +"08/25/2023","178.61","177.38","179.15","175.82","51.45M","1.26%" +"08/24/2023","176.38","180.67","181.10","176.01","54.95M","-2.62%" +"08/23/2023","181.12","178.52","181.55","178.32","52.72M","2.19%" +"08/22/2023","177.23","177.06","177.68","176.25","42.08M","0.79%" +"08/21/2023","175.84","175.07","176.13","173.74","46.31M","0.77%" +"08/18/2023","174.49","172.30","175.10","171.96","61.17M","0.28%" +"08/17/2023","174.00","177.14","177.51","173.48","66.06M","-1.46%" +"08/16/2023","176.57","177.13","178.54","176.50","46.96M","-0.50%" +"08/15/2023","177.45","178.88","179.48","177.05","43.62M","-1.12%" +"08/14/2023","179.46","177.97","179.69","177.30","43.68M","0.94%" +"08/11/2023","177.79","177.32","178.62","176.55","52.04M","-0.10%" +"08/10/2023","177.97","179.48","180.75","177.60","54.69M","-0.12%" +"08/09/2023","178.19","180.87","180.93","177.01","60.38M","-0.90%" +"08/08/2023","179.80","179.69","180.27","177.58","67.82M","0.53%" +"08/07/2023","178.85","182.13","183.13","177.35","97.58M","-1.73%" +"08/04/2023","181.99","185.52","187.38","181.92","115.96M","-4.80%" +"08/03/2023","191.17","191.57","192.37","190.69","62.24M","-0.73%" +"08/02/2023","192.58","195.04","195.18","191.85","50.39M","-1.55%" +"08/01/2023","195.60","196.24","196.73","195.28","35.28M","-0.43%" +"07/31/2023","196.45","196.06","196.49","195.26","38.82M","0.32%" +"07/28/2023","195.83","194.67","196.63","194.14","48.29M","1.35%" +"07/27/2023","193.22","196.02","197.20","192.55","47.46M","-0.66%" +"07/26/2023","194.50","193.67","195.64","193.32","47.47M","0.45%" +"07/25/2023","193.62","193.33","194.44","192.91","37.28M","0.45%" +"07/24/2023","192.75","193.41","194.91","192.25","45.51M","0.42%" +"07/21/2023","191.94","194.10","194.97","191.23","71.95M","-0.62%" +"07/20/2023","193.13","195.09","196.47","192.49","59.58M","-1.01%" +"07/19/2023","195.10","193.10","198.23","192.65","80.51M","0.71%" +"07/18/2023","193.73","193.35","194.33","192.41","48.35M","-0.13%" +"07/17/2023","193.99","191.90","194.32","191.81","50.52M","1.73%" +"07/14/2023","190.69","190.23","191.18","189.63","41.62M","0.08%" +"07/13/2023","190.54","190.50","191.19","189.78","41.34M","0.41%" +"07/12/2023","189.77","189.68","191.70","188.47","60.75M","0.90%" +"07/11/2023","188.08","189.16","189.30","186.60","46.64M","-0.28%" +"07/10/2023","188.61","189.26","189.99","187.04","59.92M","-1.09%" +"07/07/2023","190.68","191.41","192.67","190.24","46.82M","-0.59%" +"07/06/2023","191.81","189.84","192.02","189.20","45.16M","0.25%" +"07/05/2023","191.33","191.57","192.98","190.62","46.92M","-0.59%" +"07/03/2023","192.46","193.78","193.88","191.76","31.46M","-0.78%" +"06/30/2023","193.97","191.63","194.48","191.26","85.21M","2.31%" +"06/29/2023","189.59","189.08","190.07","188.94","46.35M","0.18%" +"06/28/2023","189.25","187.93","189.90","187.60","51.22M","0.63%" +"06/27/2023","188.06","185.89","188.39","185.67","50.73M","1.51%" +"06/26/2023","185.27","186.83","188.05","185.23","48.09M","-0.76%" +"06/23/2023","186.68","185.55","187.56","185.01","53.12M","-0.17%" +"06/22/2023","187.00","183.74","187.04","183.67","51.25M","1.65%" +"06/21/2023","183.96","184.90","185.41","182.59","49.52M","-0.57%" +"06/20/2023","185.01","184.41","186.10","184.41","49.80M","0.05%" +"06/16/2023","184.92","186.73","186.99","184.27","101.26M","-0.59%" +"06/15/2023","186.01","183.96","186.52","183.78","65.43M","1.12%" +"06/14/2023","183.95","183.37","184.39","182.02","57.46M","0.35%" +"06/13/2023","183.31","182.80","184.15","182.44","54.93M","-0.26%" +"06/12/2023","183.79","181.27","183.89","180.97","54.76M","1.56%" +"06/09/2023","180.96","181.50","182.23","180.63","48.90M","0.22%" +"06/08/2023","180.57","177.90","180.84","177.46","50.21M","1.55%" +"06/07/2023","177.82","178.44","181.21","177.32","61.94M","-0.78%" +"06/06/2023","179.21","179.96","180.12","177.43","64.85M","-0.21%" +"06/05/2023","179.58","182.63","184.95","178.04","121.95M","-0.76%" +"06/02/2023","180.95","181.03","181.78","179.26","62.00M","0.48%" +"06/01/2023","180.09","177.70","180.12","176.93","68.90M","1.60%" +"05/31/2023","177.25","177.32","179.35","176.76","99.63M","-0.03%" +"05/30/2023","177.30","176.96","178.99","176.57","55.96M","1.07%" +"05/26/2023","175.43","173.32","175.77","173.11","54.84M","1.41%" +"05/25/2023","172.99","172.41","173.90","171.69","56.06M","0.67%" +"05/24/2023","171.84","171.09","172.42","170.52","45.14M","0.16%" +"05/23/2023","171.56","173.13","173.38","171.27","50.75M","-1.52%" +"05/22/2023","174.20","173.98","174.71","173.45","43.57M","-0.55%" +"05/19/2023","175.16","176.39","176.39","174.94","55.81M","0.06%" +"05/18/2023","175.05","173.00","175.24","172.58","65.50M","1.37%" +"05/17/2023","172.69","171.71","172.93","170.42","57.95M","0.36%" +"05/16/2023","172.07","171.99","173.14","171.80","42.11M","0.00%" +"05/15/2023","172.07","173.16","173.21","171.47","37.27M","-0.29%" +"05/12/2023","172.57","173.62","174.06","171.00","45.53M","-0.68%" +"05/11/2023","173.75","173.85","174.59","172.17","49.51M","0.11%" +"05/10/2023","173.55","173.02","174.03","171.90","53.72M","1.04%" +"05/09/2023","171.77","173.05","173.54","171.60","45.33M","-1.00%" +"05/08/2023","173.50","172.48","173.85","172.11","55.96M","-0.04%" +"05/05/2023","173.57","170.98","174.30","170.76","113.45M","4.69%" +"05/04/2023","165.79","164.89","167.04","164.31","81.24M","-0.99%" +"05/03/2023","167.45","169.50","170.92","167.16","65.14M","-0.65%" +"05/02/2023","168.54","170.09","170.35","167.54","48.43M","-0.62%" +"05/01/2023","169.59","169.28","170.45","168.64","52.47M","-0.05%" +"04/28/2023","169.68","168.49","169.85","167.88","55.28M","0.75%" +"04/27/2023","168.41","165.19","168.56","165.19","64.90M","2.84%" +"04/26/2023","163.76","163.05","165.28","162.80","45.50M","-0.01%" +"04/25/2023","163.77","165.19","166.30","163.73","48.71M","-0.94%" +"04/24/2023","165.33","165.00","165.60","163.89","41.95M","0.19%" +"04/21/2023","165.02","165.05","166.45","164.49","58.34M","-0.98%" +"04/20/2023","166.65","166.09","167.87","165.56","52.46M","-0.58%" +"04/19/2023","167.63","165.80","168.16","165.54","47.72M","0.70%" +"04/18/2023","166.47","166.10","167.41","165.65","49.92M","0.75%" +"04/17/2023","165.23","165.09","165.39","164.03","41.52M","0.01%" +"04/14/2023","165.21","164.59","166.32","163.82","49.39M","-0.21%" +"04/13/2023","165.56","161.63","165.80","161.42","68.45M","3.41%" +"04/12/2023","160.10","161.22","162.06","159.78","50.13M","-0.44%" +"04/11/2023","160.80","162.35","162.36","160.51","47.64M","-0.76%" +"04/10/2023","162.03","161.42","162.03","160.08","47.72M","-1.60%" +"04/06/2023","164.66","162.43","164.96","162.00","45.39M","0.55%" +"04/05/2023","163.76","164.74","165.05","161.80","51.51M","-1.13%" +"04/04/2023","165.63","166.60","166.84","165.11","46.28M","-0.32%" +"04/03/2023","166.17","164.27","166.29","164.22","56.98M","0.77%" +"03/31/2023","164.90","162.44","165.00","161.91","68.75M","1.56%" +"03/30/2023","162.36","161.53","162.47","161.27","49.50M","0.99%" +"03/29/2023","160.77","159.37","161.05","159.35","51.31M","1.98%" +"03/28/2023","157.65","157.97","158.49","155.98","45.99M","-0.40%" +"03/27/2023","158.28","159.94","160.77","157.87","52.39M","-1.23%" +"03/24/2023","160.25","158.86","160.34","157.85","59.26M","0.83%" +"03/23/2023","158.93","158.83","161.55","157.68","67.62M","0.70%" +"03/22/2023","157.83","159.30","162.14","157.81","75.70M","-0.91%" +"03/21/2023","159.28","157.32","159.40","156.54","73.94M","1.19%" +"03/20/2023","157.40","155.07","157.82","154.15","73.64M","1.55%" +"03/17/2023","155.00","156.08","156.74","154.28","98.94M","-0.55%" +"03/16/2023","155.85","152.16","156.46","151.64","76.25M","1.87%" +"03/15/2023","152.99","151.19","153.24","149.92","77.17M","0.26%" +"03/14/2023","152.59","151.28","153.40","150.10","73.70M","1.41%" +"03/13/2023","150.47","147.80","153.14","147.70","84.46M","1.33%" +"03/10/2023","148.50","150.21","150.94","147.61","68.57M","-1.39%" +"03/09/2023","150.59","153.56","154.54","150.23","53.83M","-1.49%" +"03/08/2023","152.87","152.81","153.47","151.83","47.20M","0.84%" +"03/07/2023","151.60","153.70","154.03","151.13","56.18M","-1.45%" +"03/06/2023","153.83","153.79","156.30","153.46","87.56M","1.85%" +"03/03/2023","151.03","148.04","151.11","147.33","70.73M","3.51%" +"03/02/2023","145.91","144.38","146.71","143.90","52.28M","0.41%" +"03/01/2023","145.31","146.83","147.23","145.01","55.48M","-1.42%" +"02/28/2023","147.41","147.05","149.08","146.83","50.55M","-0.34%" +"02/27/2023","147.92","147.71","149.17","147.45","45.00M","0.82%" +"02/24/2023","146.71","147.11","147.19","145.72","55.47M","-1.80%" +"02/23/2023","149.40","150.09","150.34","147.24","48.39M","0.33%" +"02/22/2023","148.91","148.87","149.95","147.16","51.01M","0.29%" +"02/21/2023","148.48","150.20","151.30","148.40","58.87M","-2.67%" +"02/17/2023","152.55","152.35","153.00","150.85","59.14M","-0.75%" +"02/16/2023","153.71","153.51","156.33","153.35","68.17M","-1.04%" +"02/15/2023","155.33","153.11","155.50","152.88","65.67M","1.39%" +"02/14/2023","153.20","152.12","153.77","150.86","61.71M","-0.42%" +"02/13/2023","153.85","150.95","154.26","150.92","62.20M","1.88%" +"02/10/2023","151.01","149.46","151.34","149.22","57.45M","0.09%" +"02/09/2023","150.87","153.77","154.33","150.42","56.01M","-0.69%" +"02/08/2023","151.92","153.88","154.58","151.17","64.12M","-1.77%" +"02/07/2023","154.65","150.64","155.23","150.64","83.32M","1.92%" +"02/06/2023","151.73","152.57","153.10","150.78","69.86M","-1.79%" +"02/03/2023","154.50","148.03","157.38","147.83","154.36M","2.44%" +"02/02/2023","150.82","148.90","151.18","148.17","118.34M","3.71%" +"02/01/2023","145.43","143.97","146.61","141.32","77.66M","0.79%" +"01/31/2023","144.29","142.70","144.34","142.28","65.87M","0.90%" +"01/30/2023","143.00","144.96","145.55","142.85","64.02M","-2.01%" +"01/27/2023","145.93","143.15","147.23","143.08","70.56M","1.37%" +"01/26/2023","143.96","143.17","144.25","141.90","54.11M","1.48%" +"01/25/2023","141.86","140.89","142.43","138.81","65.80M","-0.47%" +"01/24/2023","142.53","140.30","143.16","140.30","66.44M","1.01%" +"01/23/2023","141.11","138.12","143.32","137.90","81.76M","2.35%" +"01/20/2023","137.87","135.28","138.02","134.22","80.22M","1.92%" +"01/19/2023","135.27","134.08","136.25","133.77","58.28M","0.04%" +"01/18/2023","135.21","136.82","138.61","135.03","69.67M","-0.54%" +"01/17/2023","135.94","134.83","137.29","134.13","63.65M","0.88%" +"01/13/2023","134.76","132.03","134.92","131.66","57.81M","1.01%" +"01/12/2023","133.41","133.88","134.26","131.44","71.38M","-0.06%" +"01/11/2023","133.49","131.25","133.51","130.46","69.46M","2.11%" +"01/10/2023","130.73","130.26","131.26","128.12","63.90M","0.45%" +"01/09/2023","130.15","130.46","133.41","129.89","70.79M","0.41%" +"01/06/2023","129.62","126.01","130.29","124.89","87.75M","3.68%" +"01/05/2023","125.02","127.13","127.77","124.76","80.96M","-1.06%" +"01/04/2023","126.36","126.89","128.66","125.08","89.11M","1.03%" +"01/03/2023","125.07","130.28","130.90","124.17","112.12M","-3.74%" +"12/30/2022","129.93","128.41","129.95","127.43","77.03M","0.25%" +"12/29/2022","129.61","127.99","130.48","127.73","75.70M","2.83%" +"12/28/2022","126.04","129.67","131.03","125.87","85.44M","-3.07%" +"12/27/2022","130.03","131.38","131.41","128.72","69.01M","-1.39%" +"12/23/2022","131.86","130.92","132.41","129.64","63.81M","-0.28%" +"12/22/2022","132.23","134.35","134.56","130.30","77.85M","-2.38%" +"12/21/2022","135.45","132.98","136.81","132.75","85.93M","2.38%" +"12/20/2022","132.30","131.39","133.25","129.89","77.43M","-0.05%" +"12/19/2022","132.37","135.11","135.20","131.32","79.59M","-1.59%" +"12/16/2022","134.51","136.68","137.65","133.73","160.16M","-1.46%" +"12/15/2022","136.50","141.11","141.80","136.02","98.93M","-4.69%" +"12/14/2022","143.21","145.35","146.65","141.16","82.29M","-1.55%" +"12/13/2022","145.47","149.50","149.97","144.24","93.89M","0.68%" +"12/12/2022","144.49","142.70","144.50","141.06","70.46M","1.64%" +"12/09/2022","142.16","142.34","145.57","140.90","76.10M","-0.34%" +"12/08/2022","142.65","142.36","143.52","141.10","62.13M","1.21%" +"12/07/2022","140.94","142.19","143.37","140.00","69.72M","-1.38%" +"12/06/2022","142.91","147.07","147.30","141.92","64.73M","-2.54%" +"12/05/2022","146.63","147.77","150.92","145.77","68.83M","-0.80%" +"12/02/2022","147.81","145.96","148.00","145.65","65.45M","-0.34%" +"12/01/2022","148.31","148.21","149.13","146.61","71.25M","0.19%" +"11/30/2022","148.03","141.40","148.72","140.55","111.38M","4.86%" +"11/29/2022","141.17","144.29","144.81","140.35","83.76M","-2.11%" +"11/28/2022","144.22","145.14","146.64","143.38","69.35M","-2.63%" +"11/25/2022","148.11","148.30","148.88","147.12","35.20M","-1.96%" +"11/23/2022","151.07","149.45","151.83","149.34","58.30M","0.59%" +"11/22/2022","150.18","148.13","150.42","146.93","51.80M","1.47%" +"11/21/2022","148.01","150.16","150.37","147.71","58.72M","-2.17%" +"11/18/2022","151.29","152.30","152.70","149.97","74.83M","0.38%" +"11/17/2022","150.72","146.43","151.48","146.15","80.39M","1.30%" +"11/16/2022","148.79","149.13","149.87","147.29","64.22M","-0.83%" +"11/15/2022","150.04","152.21","153.59","148.56","89.87M","1.19%" +"11/14/2022","148.28","148.97","150.28","147.43","73.37M","-0.95%" +"11/11/2022","149.70","145.82","150.01","144.37","93.98M","1.93%" +"11/10/2022","146.87","141.24","146.87","139.50","118.85M","8.90%" +"11/09/2022","134.87","138.50","138.55","134.59","74.92M","-3.32%" +"11/08/2022","139.50","140.41","141.43","137.49","89.91M","0.42%" +"11/07/2022","138.92","137.11","139.15","135.67","83.37M","0.39%" +"11/04/2022","138.38","142.09","142.67","134.38","140.81M","-0.36%" +"11/03/2022","138.88","142.06","142.80","138.75","97.92M","-4.24%" +"11/02/2022","145.03","148.95","152.17","145.00","93.60M","-3.73%" +"11/01/2022","150.65","155.08","155.45","149.13","80.38M","-1.75%" +"10/31/2022","153.34","153.15","154.24","151.92","97.94M","-1.54%" +"10/28/2022","155.74","148.20","157.50","147.82","164.76M","7.56%" +"10/27/2022","144.80","148.07","149.05","144.13","109.18M","-3.05%" +"10/26/2022","149.35","150.96","151.99","148.04","88.44M","-1.96%" +"10/25/2022","152.34","150.09","152.49","149.36","74.73M","1.93%" +"10/24/2022","149.45","147.18","150.23","146.00","75.98M","1.48%" +"10/21/2022","147.27","142.87","147.85","142.65","86.55M","2.71%" +"10/20/2022","143.39","143.02","145.89","142.65","64.52M","-0.33%" +"10/19/2022","143.86","141.69","144.95","141.50","61.76M","0.08%" +"10/18/2022","143.75","145.49","146.70","140.61","99.14M","0.94%" +"10/17/2022","142.41","141.07","142.90","140.27","85.25M","2.91%" +"10/14/2022","138.38","144.31","144.52","138.19","88.60M","-3.22%" +"10/13/2022","142.99","134.99","143.59","134.37","113.22M","3.36%" +"10/12/2022","138.34","139.13","140.36","138.16","70.43M","-0.46%" +"10/11/2022","138.98","139.90","141.35","138.22","77.03M","-1.03%" +"10/10/2022","140.42","140.42","141.89","138.57","74.90M","0.24%" +"10/07/2022","140.09","142.54","143.10","139.45","85.93M","-3.67%" +"10/06/2022","145.43","145.81","147.54","145.22","68.40M","-0.66%" +"10/05/2022","146.40","144.07","147.38","143.01","79.47M","0.21%" +"10/04/2022","146.10","145.03","146.22","144.26","87.83M","2.56%" +"10/03/2022","142.45","138.21","143.07","137.68","114.31M","3.08%" +"09/30/2022","138.20","141.28","143.10","138.00","124.93M","-3.00%" +"09/29/2022","142.48","146.10","146.72","140.68","128.14M","-4.91%" +"09/28/2022","149.84","147.64","150.64","144.84","146.69M","-1.27%" +"09/27/2022","151.76","152.74","154.72","149.95","84.44M","0.66%" +"09/26/2022","150.77","149.66","153.77","149.64","93.34M","0.23%" +"09/23/2022","150.43","151.19","151.47","148.56","96.03M","-1.51%" +"09/22/2022","152.74","152.38","154.47","150.91","86.65M","-0.64%" +"09/21/2022","153.72","157.34","158.74","153.60","101.70M","-2.03%" +"09/20/2022","156.90","153.40","158.08","153.08","107.69M","1.57%" +"09/19/2022","154.48","149.31","154.56","149.10","81.47M","2.51%" +"09/16/2022","150.70","151.21","151.35","148.37","162.28M","-1.10%" +"09/15/2022","152.37","154.65","155.24","151.38","90.48M","-1.89%" +"09/14/2022","155.31","154.79","157.10","153.61","87.97M","0.96%" +"09/13/2022","153.84","159.90","160.54","153.37","122.66M","-5.87%" +"09/12/2022","163.43","159.59","164.26","159.30","104.96M","3.85%" +"09/09/2022","157.37","155.47","157.82","154.75","68.08M","1.88%" +"09/08/2022","154.46","154.64","156.36","152.68","84.92M","-0.96%" +"09/07/2022","155.96","154.82","156.67","153.61","87.45M","0.93%" +"09/06/2022","154.53","156.47","157.09","153.69","73.71M","-0.82%" +"09/02/2022","155.81","159.75","160.36","154.96","76.96M","-1.36%" +"09/01/2022","157.96","156.64","158.42","154.67","74.23M","0.47%" +"08/31/2022","157.22","160.30","160.58","157.14","87.99M","-1.06%" +"08/30/2022","158.91","162.13","162.56","157.72","77.91M","-1.53%" +"08/29/2022","161.38","161.15","162.90","159.82","73.31M","-1.37%" +"08/26/2022","163.62","170.57","171.05","163.56","78.96M","-3.77%" +"08/25/2022","170.03","168.78","170.14","168.35","51.22M","1.49%" +"08/24/2022","167.53","167.32","168.11","166.24","53.84M","0.18%" +"08/23/2022","167.23","167.08","168.71","166.65","54.15M","-0.20%" +"08/22/2022","167.57","169.69","169.86","167.13","69.03M","-2.30%" +"08/19/2022","171.52","173.03","173.74","171.31","70.35M","-1.51%" +"08/18/2022","174.15","173.75","174.90","173.12","62.29M","-0.23%" +"08/17/2022","174.55","172.77","176.15","172.57","79.54M","0.88%" +"08/16/2022","173.03","172.78","173.71","171.66","56.38M","-0.09%" +"08/15/2022","173.19","171.52","173.39","171.35","54.09M","0.63%" +"08/12/2022","172.10","169.82","172.17","169.40","68.04M","2.14%" +"08/11/2022","168.49","170.06","170.99","168.19","57.15M","-0.44%" +"08/10/2022","169.24","167.68","169.34","166.90","70.17M","2.62%" +"08/09/2022","164.92","164.02","165.82","163.25","63.14M","0.03%" +"08/08/2022","164.87","166.37","167.81","164.20","60.36M","-0.29%" +"08/05/2022","165.35","163.21","165.85","163.00","56.70M","-0.28%" +"08/04/2022","165.81","166.01","167.19","164.43","55.47M","-0.19%" +"08/03/2022","166.13","160.84","166.59","160.75","82.51M","3.82%" +"08/02/2022","160.01","160.10","162.41","159.63","59.91M","-0.93%" +"08/01/2022","161.51","161.01","163.59","160.89","67.83M","-0.62%" +"07/29/2022","162.51","161.24","163.63","159.50","101.79M","3.28%" +"07/28/2022","157.35","156.98","157.64","154.41","81.38M","0.36%" +"07/27/2022","156.79","152.58","157.33","152.16","78.62M","3.42%" +"07/26/2022","151.60","152.26","153.09","150.80","55.14M","-0.88%" +"07/25/2022","152.95","154.01","155.04","152.28","53.62M","-0.74%" +"07/22/2022","154.09","155.39","156.28","153.41","66.68M","-0.81%" +"07/21/2022","155.35","154.50","155.57","151.94","65.09M","1.51%" +"07/20/2022","153.04","151.12","153.72","150.37","64.82M","1.35%" +"07/19/2022","151.00","147.92","151.23","146.91","82.98M","2.67%" +"07/18/2022","147.07","150.74","151.57","146.70","81.42M","-2.06%" +"07/15/2022","150.17","149.78","150.86","148.20","76.26M","1.15%" +"07/14/2022","148.47","144.08","148.95","143.25","78.14M","2.05%" +"07/13/2022","145.49","142.99","146.45","142.12","71.19M","-0.25%" +"07/12/2022","145.86","145.76","148.45","145.05","77.59M","0.68%" +"07/11/2022","144.87","145.67","146.64","143.78","63.31M","-1.48%" +"07/08/2022","147.04","145.26","147.55","145.00","64.55M","0.47%" +"07/07/2022","146.35","143.29","146.55","143.28","66.25M","2.40%" +"07/06/2022","142.92","141.35","144.12","141.08","74.06M","0.96%" +"07/05/2022","141.56","137.77","141.61","136.93","73.43M","1.89%" +"07/01/2022","138.93","136.04","139.04","135.66","71.05M","1.62%" +"06/30/2022","136.72","137.25","138.37","133.77","98.96M","-1.80%" +"06/29/2022","139.23","137.46","140.67","136.67","66.24M","1.30%" +"06/28/2022","137.44","142.13","143.42","137.32","67.32M","-2.98%" +"06/27/2022","141.66","142.70","143.49","140.96","70.21M","0.00%" +"06/24/2022","141.66","139.90","141.91","139.77","89.12M","2.45%" +"06/23/2022","138.27","136.82","138.59","135.63","72.43M","2.16%" +"06/22/2022","135.35","134.79","137.76","133.91","73.41M","-0.38%" +"06/21/2022","135.87","133.42","137.06","133.32","81.00M","3.28%" +"06/17/2022","131.56","130.07","133.08","129.81","134.52M","1.15%" +"06/16/2022","130.06","132.08","132.39","129.04","107.96M","-3.97%" +"06/15/2022","135.43","134.29","137.34","132.16","91.53M","2.01%" +"06/14/2022","132.76","133.13","133.89","131.48","84.78M","0.67%" +"06/13/2022","131.88","132.87","135.20","131.44","122.21M","-3.83%" +"06/10/2022","137.13","140.28","140.76","137.06","91.57M","-3.86%" +"06/09/2022","142.64","147.08","147.95","142.53","69.47M","-3.60%" +"06/08/2022","147.96","148.58","149.87","147.46","53.95M","-0.50%" +"06/07/2022","148.71","144.35","149.00","144.10","67.81M","1.76%" +"06/06/2022","146.14","147.03","148.57","144.90","71.60M","0.52%" +"06/03/2022","145.38","146.90","147.97","144.46","88.57M","-3.86%" +"06/02/2022","151.21","147.83","151.27","146.86","72.35M","1.68%" +"06/01/2022","148.71","149.90","151.74","147.68","74.29M","-0.09%" +"05/31/2022","148.84","149.07","150.66","146.84","103.72M","-0.53%" +"05/27/2022","149.64","145.39","149.68","145.26","90.98M","4.08%" +"05/26/2022","143.78","137.39","144.34","137.14","90.60M","2.32%" +"05/25/2022","140.52","138.43","141.78","138.34","92.48M","0.11%" +"05/24/2022","140.36","140.81","141.97","137.33","104.13M","-1.92%" +"05/23/2022","143.11","137.79","143.26","137.65","117.73M","4.01%" +"05/20/2022","137.59","139.09","140.70","132.61","137.43M","0.17%" +"05/19/2022","137.35","139.88","141.66","136.60","136.10M","-2.46%" +"05/18/2022","140.82","146.85","147.36","139.90","109.74M","-5.64%" +"05/17/2022","149.24","148.86","149.77","146.68","78.34M","2.54%" +"05/16/2022","145.54","145.55","147.52","144.18","86.64M","-1.07%" +"05/13/2022","147.11","144.59","148.10","143.11","113.99M","3.19%" +"05/12/2022","142.56","142.77","146.20","138.80","182.60M","-2.69%" +"05/11/2022","146.50","153.50","155.45","145.81","142.69M","-5.18%" +"05/10/2022","154.51","155.52","156.74","152.93","115.37M","1.61%" +"05/09/2022","152.06","154.93","155.83","151.49","131.58M","-3.32%" +"05/06/2022","157.28","156.01","159.44","154.18","116.12M","0.33%" +"05/05/2022","156.77","163.85","164.08","154.95","130.53M","-5.57%" +"05/04/2022","166.02","159.67","166.48","159.26","108.26M","4.10%" +"05/03/2022","159.48","158.15","160.71","156.32","88.97M","0.96%" +"05/02/2022","157.96","156.71","158.23","153.27","123.06M","0.20%" +"04/29/2022","157.65","161.84","166.20","157.25","131.75M","-3.66%" +"04/28/2022","163.64","159.25","164.51","158.93","130.22M","4.52%" +"04/27/2022","156.57","155.91","159.79","155.38","88.06M","-0.15%" +"04/26/2022","156.80","162.25","162.34","156.72","95.62M","-3.73%" +"04/25/2022","162.88","161.12","163.17","158.46","96.05M","0.67%" +"04/22/2022","161.79","166.46","167.87","161.50","84.88M","-2.78%" +"04/21/2022","166.42","168.91","171.53","165.91","87.23M","-0.48%" +"04/20/2022","167.23","168.76","168.88","166.10","67.93M","-0.10%" +"04/19/2022","167.40","165.02","167.82","163.91","67.72M","1.41%" +"04/18/2022","165.07","163.92","166.60","163.57","69.02M","-0.13%" +"04/14/2022","165.29","170.62","171.27","165.04","75.33M","-3.00%" +"04/13/2022","170.40","167.39","171.04","166.77","70.62M","1.63%" +"04/12/2022","167.66","168.02","169.87","166.64","79.27M","1.15%" +"04/11/2022","165.75","168.71","169.03","165.50","72.25M","-2.55%" +"04/08/2022","170.09","171.78","171.78","169.20","76.58M","-1.19%" +"04/07/2022","172.14","171.16","173.36","169.85","77.59M","0.18%" +"04/06/2022","171.83","172.36","173.63","170.13","89.06M","-1.85%" +"04/05/2022","175.06","177.50","178.30","174.41","73.40M","-1.89%" +"04/04/2022","178.44","174.57","178.49","174.44","76.55M","2.37%" +"04/01/2022","174.31","174.03","174.88","171.94","78.75M","-0.17%" +"03/31/2022","174.61","177.84","178.03","174.40","103.05M","-1.78%" +"03/30/2022","177.77","178.55","179.61","176.70","92.63M","-0.66%" +"03/29/2022","178.96","176.69","179.01","176.34","100.59M","1.91%" +"03/28/2022","175.60","172.17","175.73","172.00","90.37M","0.50%" +"03/25/2022","174.72","173.88","175.28","172.75","80.55M","0.37%" +"03/24/2022","174.07","171.06","174.14","170.21","90.13M","2.27%" +"03/23/2022","170.21","167.99","172.64","167.65","98.06M","0.82%" +"03/22/2022","168.82","165.51","169.42","164.91","81.53M","2.08%" +"03/21/2022","165.38","163.51","166.35","163.01","95.81M","0.85%" +"03/18/2022","163.98","160.51","164.48","159.76","123.51M","2.09%" +"03/17/2022","160.62","158.61","161.00","157.63","75.62M","0.65%" +"03/16/2022","159.59","157.05","160.00","154.46","102.30M","2.90%" +"03/15/2022","155.09","150.90","155.57","150.38","92.96M","2.97%" +"03/14/2022","150.62","151.45","154.12","150.10","108.73M","-2.66%" +"03/11/2022","154.73","158.93","159.28","154.50","96.97M","-2.39%" +"03/10/2022","158.52","160.20","160.39","155.98","105.34M","-2.72%" +"03/09/2022","162.95","161.47","163.41","159.41","91.45M","3.50%" +"03/08/2022","157.44","158.82","162.88","155.80","131.15M","-1.17%" +"03/07/2022","159.30","163.36","165.02","159.04","96.42M","-2.37%" +"03/04/2022","163.17","164.49","165.55","162.10","83.82M","-1.84%" +"03/03/2022","166.23","168.47","168.91","165.55","76.68M","-0.20%" +"03/02/2022","166.56","164.39","167.36","162.95","79.72M","2.06%" +"03/01/2022","163.20","164.69","166.60","161.97","83.47M","-1.16%" +"02/28/2022","165.12","163.06","165.42","162.43","95.06M","0.16%" +"02/25/2022","164.85","163.84","165.12","160.87","91.97M","1.30%" +"02/24/2022","162.74","152.58","162.85","152.00","141.15M","1.67%" +"02/23/2022","160.07","165.54","166.15","159.75","90.01M","-2.59%" +"02/22/2022","164.32","164.98","166.69","162.15","91.16M","-1.78%" +"02/18/2022","167.30","169.82","170.54","166.19","82.77M","-0.94%" +"02/17/2022","168.88","171.03","171.91","168.47","69.59M","-2.13%" +"02/16/2022","172.55","171.85","173.34","170.05","61.18M","-0.14%" +"02/15/2022","172.79","170.97","172.95","170.25","64.29M","2.32%" +"02/14/2022","168.88","167.37","169.58","166.56","86.19M","0.14%" +"02/11/2022","168.64","172.33","173.08","168.04","98.67M","-2.02%" +"02/10/2022","172.12","174.14","175.48","171.55","90.87M","-2.36%" +"02/09/2022","176.28","176.05","176.65","174.90","71.29M","0.83%" +"02/08/2022","174.83","171.73","175.35","171.43","74.83M","1.85%" +"02/07/2022","171.66","172.86","173.95","170.95","77.25M","-0.42%" +"02/04/2022","172.39","171.68","174.10","170.68","82.47M","-0.29%" +"02/03/2022","172.90","174.48","176.24","172.12","89.42M","-1.67%" +"02/02/2022","175.84","174.75","175.88","173.33","84.91M","0.70%" +"02/01/2022","174.61","174.01","174.84","172.31","86.21M","-0.10%" +"01/31/2022","174.78","170.16","175.00","169.51","115.54M","2.61%" +"01/28/2022","170.33","165.71","170.35","162.80","179.94M","6.98%" +"01/27/2022","159.22","162.45","163.84","158.28","121.95M","-0.29%" +"01/26/2022","159.69","163.50","164.39","157.82","108.28M","-0.06%" +"01/25/2022","159.78","158.98","162.76","157.02","115.80M","-1.14%" +"01/24/2022","161.62","160.02","162.30","154.70","162.71M","-0.49%" +"01/21/2022","162.41","164.41","166.33","162.30","122.85M","-1.28%" +"01/20/2022","164.51","166.98","169.68","164.18","91.42M","-1.03%" +"01/19/2022","166.23","170.00","171.08","165.94","94.81M","-2.10%" +"01/18/2022","169.80","171.51","172.54","169.41","91.17M","-1.89%" +"01/14/2022","173.07","171.34","173.78","171.09","80.44M","0.51%" +"01/13/2022","172.19","175.78","176.62","171.79","84.51M","-1.90%" +"01/12/2022","175.53","176.12","177.18","174.82","74.81M","0.26%" +"01/11/2022","175.08","172.32","175.18","170.82","76.14M","1.68%" +"01/10/2022","172.19","169.08","172.50","168.17","106.77M","0.01%" +"01/07/2022","172.17","172.89","174.14","171.03","86.71M","0.10%" +"01/06/2022","172.00","172.70","175.30","171.64","96.90M","-1.67%" +"01/05/2022","174.92","179.61","180.17","174.64","94.54M","-2.66%" +"01/04/2022","179.70","182.63","182.94","179.12","99.31M","-1.27%" +"01/03/2022","182.01","177.83","182.88","177.71","104.70M","2.50%" \ No newline at end of file diff --git a/SAMPLE_DATA/GME Historical Data.csv b/SAMPLE_DATA/GME Historical Data.csv new file mode 100644 index 0000000..b37d96b --- /dev/null +++ b/SAMPLE_DATA/GME Historical Data.csv @@ -0,0 +1,640 @@ +"Date","Price","Open","High","Low","Vol.","Change %" +"07/19/2024","24.97","25.55","26.39","24.85","12.76M","-3.52%" +"07/18/2024","25.88","27.98","28.38","25.61","16.97M","-7.51%" +"07/17/2024","27.98","28.40","29.79","27.24","23.78M","-1.96%" +"07/16/2024","28.54","27.75","28.83","27.37","25.59M","5.70%" +"07/15/2024","27.00","25.98","27.20","25.65","17.14M","3.65%" +"07/12/2024","26.05","25.76","26.89","25.42","16.24M","1.88%" +"07/11/2024","25.57","25.43","26.02","25.02","13.03M","2.40%" +"07/10/2024","24.97","25.00","26.45","24.90","22.33M","1.50%" +"07/09/2024","24.60","24.60","25.18","24.00","9.52M","0.61%" +"07/08/2024","24.45","24.12","25.14","23.85","11.82M","1.12%" +"07/05/2024","24.18","24.18","25.08","23.82","11.78M","-0.78%" +"07/03/2024","24.37","24.03","24.89","23.65","11.83M","1.63%" +"07/02/2024","23.98","23.24","24.32","23.10","13.70M","2.79%" +"07/01/2024","23.33","23.35","23.78","22.31","30.69M","-5.51%" +"06/28/2024","24.69","25.02","26.17","24.31","20.21M","-1.59%" +"06/27/2024","25.09","24.10","26.69","24.06","34.87M","3.68%" +"06/26/2024","24.20","24.60","25.38","24.04","17.90M","-2.93%" +"06/25/2024","24.93","23.60","24.97","22.55","27.63M","5.41%" +"06/24/2024","23.65","23.26","24.83","23.24","22.16M","-1.17%" +"06/21/2024","23.93","25.24","25.81","23.51","28.00M","-6.49%" +"06/20/2024","25.59","24.25","25.93","23.65","36.03M","3.60%" +"06/18/2024","24.70","24.58","25.97","23.61","38.08M","-2.06%" +"06/17/2024","25.22","28.55","29.18","23.79","90.35M","-12.13%" +"06/14/2024","28.70","29.23","30.66","27.41","82.87M","-1.44%" +"06/13/2024","29.12","26.56","29.58","25.56","107.31M","14.38%" +"06/12/2024","25.46","29.17","33.70","24.83","147.99M","-16.50%" +"06/11/2024","30.49","24.40","30.92","22.79","146.91M","22.80%" +"06/10/2024","24.83","28.97","29.34","23.06","131.57M","-12.01%" +"06/07/2024","28.22","37.69","48.00","26.12","279.05M","-39.38%" +"06/06/2024","46.55","31.57","47.50","31.28","206.69M","47.45%" +"06/05/2024","31.57","26.30","31.84","26.11","73.16M","19.13%" +"06/04/2024","26.50","26.26","28.01","25.20","51.66M","-5.36%" +"06/03/2024","28.00","40.19","40.50","26.40","165.81M","21.00%" +"05/31/2024","23.14","22.58","23.72","21.68","22.17M","2.34%" +"05/30/2024","22.61","21.02","22.70","20.10","24.51M","6.45%" +"05/29/2024","21.24","22.00","22.98","21.05","26.92M","-10.68%" +"05/28/2024","23.78","23.10","26.66","21.15","105.08M","25.16%" +"05/24/2024","19.00","18.42","19.68","17.70","43.02M","3.71%" +"05/23/2024","18.32","21.40","21.40","18.26","30.56M","-13.26%" +"05/22/2024","21.12","21.56","22.25","20.76","43.52M","-4.52%" +"05/21/2024","22.12","22.24","22.85","20.04","49.25M","-4.41%" +"05/20/2024","23.14","21.54","23.40","18.94","55.26M","4.19%" +"05/17/2024","22.21","21.86","22.41","19.70","96.08M","-19.73%" +"05/16/2024","27.67","33.98","35.24","27.59","76.18M","-30.04%" +"05/15/2024","39.55","40.31","42.35","31.00","131.79M","-18.87%" +"05/14/2024","48.75","64.83","64.83","36.00","206.98M","60.10%" +"05/13/2024","30.45","26.34","38.20","24.77","187.24M","74.40%" +"05/10/2024","17.46","17.93","20.20","16.88","36.83M","-3.05%" +"05/09/2024","18.01","15.90","18.51","15.35","25.76M","13.13%" +"05/08/2024","15.92","16.05","17.24","15.33","24.78M","-2.39%" +"05/07/2024","16.31","15.85","17.29","14.93","24.31M","0.00%" +"05/06/2024","16.31","14.99","17.40","13.62","48.02M","-0.97%" +"05/03/2024","16.47","12.42","17.45","12.31","36.29M","29.08%" +"05/02/2024","12.76","11.11","12.88","10.96","8.65M","16.96%" +"05/01/2024","10.91","11.03","11.32","10.70","2.66M","-1.62%" +"04/30/2024","11.09","11.18","11.30","10.91","2.87M","-1.77%" +"04/29/2024","11.29","11.84","11.96","11.18","3.84M","-5.13%" +"04/26/2024","11.90","11.18","12.19","11.00","7.69M","6.16%" +"04/25/2024","11.21","10.70","11.21","10.48","4.90M","2.56%" +"04/24/2024","10.93","10.16","10.94","10.16","4.83M","7.58%" +"04/23/2024","10.16","10.05","10.28","10.01","2.51M","1.50%" +"04/22/2024","10.01","10.41","10.44","10.01","3.26M","-3.93%" +"04/19/2024","10.42","10.20","10.49","10.20","2.46M","1.07%" +"04/18/2024","10.31","10.32","10.63","10.27","2.18M","0.10%" +"04/17/2024","10.30","10.44","10.59","10.30","2.10M","-0.68%" +"04/16/2024","10.37","10.00","10.55","9.95","4.16M","3.08%" +"04/15/2024","10.06","10.81","10.84","10.06","5.09M","-6.59%" +"04/12/2024","10.77","11.21","11.23","10.76","3.21M","-4.61%" +"04/11/2024","11.29","10.91","11.39","10.80","3.80M","4.06%" +"04/10/2024","10.85","10.90","11.07","10.75","3.55M","-1.45%" +"04/09/2024","11.01","10.85","11.18","10.73","3.51M","1.66%" +"04/08/2024","10.83","11.30","11.36","10.83","3.66M","-3.73%" +"04/05/2024","11.25","11.30","11.50","10.97","4.76M","-2.43%" +"04/04/2024","11.53","11.50","11.82","11.38","4.35M","1.32%" +"04/03/2024","11.38","11.22","11.50","10.90","4.33M","0.89%" +"04/02/2024","11.28","11.84","11.99","11.26","6.33M","-5.92%" +"04/01/2024","11.99","12.63","12.67","11.55","9.21M","-4.23%" +"03/28/2024","12.52","13.19","13.19","12.47","8.47M","-4.94%" +"03/27/2024","13.17","13.05","13.72","12.80","17.87M","-15.03%" +"03/26/2024","15.50","15.15","15.63","14.75","17.25M","2.51%" +"03/25/2024","15.12","13.42","15.15","13.31","10.42M","15.42%" +"03/22/2024","13.10","13.76","13.95","13.01","4.41M","-4.10%" +"03/21/2024","13.66","13.56","14.02","13.48","3.38M","1.34%" +"03/20/2024","13.48","13.47","13.79","13.21","3.92M","0.52%" +"03/19/2024","13.41","13.76","13.89","13.30","3.89M","-3.59%" +"03/18/2024","13.91","14.25","14.30","13.90","3.49M","-2.32%" +"03/15/2024","14.24","14.55","14.83","14.21","4.48M","-2.67%" +"03/14/2024","14.63","14.80","15.02","14.40","2.53M","-1.61%" +"03/13/2024","14.87","14.69","15.20","14.62","2.90M","1.02%" +"03/12/2024","14.72","14.35","14.84","14.09","2.38M","2.01%" +"03/11/2024","14.43","14.64","14.94","14.36","2.11M","-1.50%" +"03/08/2024","14.65","15.40","15.63","14.52","3.17M","-4.00%" +"03/07/2024","15.26","15.26","15.51","15.05","2.11M","0.00%" +"03/06/2024","15.26","15.22","15.89","14.94","3.82M","1.73%" +"03/05/2024","15.00","14.95","15.28","14.78","3.15M","-1.45%" +"03/04/2024","15.22","14.93","15.59","14.83","4.37M","1.81%" +"03/01/2024","14.95","14.18","15.09","13.99","4.90M","4.77%" +"02/29/2024","14.27","14.34","14.65","14.03","2.64M","0.21%" +"02/28/2024","14.24","14.00","14.47","13.89","2.44M","0.21%" +"02/27/2024","14.21","13.70","14.29","13.68","2.80M","3.87%" +"02/26/2024","13.68","13.31","13.74","13.20","2.28M","1.26%" +"02/23/2024","13.51","13.30","13.79","13.12","2.32M","1.12%" +"02/22/2024","13.36","13.50","13.65","13.34","1.82M","-0.37%" +"02/21/2024","13.41","13.46","13.67","13.23","1.73M","-0.59%" +"02/20/2024","13.49","13.96","14.05","13.16","3.78M","-4.46%" +"02/16/2024","14.12","14.46","14.53","14.10","2.30M","-2.69%" +"02/15/2024","14.51","14.54","14.75","14.23","2.40M","0.69%" +"02/14/2024","14.41","14.33","14.43","14.05","2.50M","1.69%" +"02/13/2024","14.17","14.20","14.40","13.77","3.79M","-3.80%" +"02/12/2024","14.73","14.58","15.22","14.53","2.75M","0.48%" +"02/09/2024","14.66","14.37","15.23","14.30","3.58M","2.16%" +"02/08/2024","14.35","14.01","14.44","13.89","1.84M","1.99%" +"02/07/2024","14.07","14.12","14.30","13.78","1.95M","-0.21%" +"02/06/2024","14.10","13.60","14.30","13.43","3.05M","4.75%" +"02/05/2024","13.46","14.50","14.61","13.40","4.36M","-8.62%" +"02/02/2024","14.73","14.15","14.92","14.08","2.92M","2.15%" +"02/01/2024","14.42","14.34","14.42","14.02","2.22M","1.34%" +"01/31/2024","14.23","14.40","14.83","14.22","2.68M","-2.20%" +"01/30/2024","14.55","14.54","14.82","14.51","1.65M","-1.56%" +"01/29/2024","14.78","14.50","14.81","14.31","2.16M","2.00%" +"01/26/2024","14.49","14.44","14.72","14.41","2.29M","-0.21%" +"01/25/2024","14.52","13.97","14.54","13.92","3.64M","4.09%" +"01/24/2024","13.95","14.28","14.38","13.82","2.51M","-1.62%" +"01/23/2024","14.18","15.00","15.02","14.05","3.50M","-4.83%" +"01/22/2024","14.90","14.50","15.16","14.30","3.61M","2.69%" +"01/19/2024","14.51","14.36","14.60","14.09","2.40M","1.54%" +"01/18/2024","14.29","14.20","14.77","14.05","3.91M","1.49%" +"01/17/2024","14.08","13.86","14.11","13.71","2.71M","0.72%" +"01/16/2024","13.98","14.60","14.62","13.93","3.58M","-5.22%" +"01/12/2024","14.75","15.30","15.62","14.73","2.48M","-3.28%" +"01/11/2024","15.25","15.65","15.80","15.24","2.99M","-3.05%" +"01/10/2024","15.73","15.12","15.76","14.97","3.19M","3.76%" +"01/09/2024","15.16","15.59","15.62","15.12","3.11M","-3.99%" +"01/08/2024","15.79","15.78","16.12","15.70","3.03M","-1.07%" +"01/05/2024","15.96","16.16","16.52","15.96","2.62M","-2.44%" +"01/04/2024","16.36","16.51","16.75","16.31","2.67M","-1.98%" +"01/03/2024","16.69","16.30","16.83","15.90","4.19M","0.12%" +"01/02/2024","16.67","17.25","17.59","16.58","4.43M","-4.91%" +"12/29/2023","17.53","18.04","18.16","17.46","4.54M","-2.99%" +"12/28/2023","18.07","18.05","18.32","17.85","3.57M","-1.63%" +"12/27/2023","18.37","17.43","18.37","17.37","4.80M","5.82%" +"12/26/2023","17.36","16.98","17.41","16.82","3.08M","2.30%" +"12/22/2023","16.97","16.78","17.20","16.45","3.33M","-0.06%" +"12/21/2023","16.98","17.19","17.34","16.59","3.98M","0.30%" +"12/20/2023","16.93","17.53","18.38","16.89","5.55M","-4.46%" +"12/19/2023","17.72","17.89","18.59","17.23","5.45M","-0.78%" +"12/18/2023","17.86","17.24","18.51","17.10","7.35M","3.48%" +"12/15/2023","17.26","17.40","17.58","17.01","7.12M","-1.03%" +"12/14/2023","17.44","17.14","17.88","16.80","10.75M","4.49%" +"12/13/2023","16.69","15.22","16.80","15.19","9.09M","9.66%" +"12/12/2023","15.22","15.12","15.36","14.84","4.21M","1.00%" +"12/11/2023","15.07","15.45","15.69","14.98","4.96M","-3.09%" +"12/08/2023","15.55","15.83","16.48","15.47","10.40M","-4.95%" +"12/07/2023","16.36","13.71","16.52","13.56","19.84M","10.24%" +"12/06/2023","14.84","15.36","15.70","14.64","12.69M","-0.47%" +"12/05/2023","14.91","16.47","16.72","14.87","14.22M","-12.19%" +"12/04/2023","16.98","15.29","17.41","14.91","20.10M","10.98%" +"12/01/2023","15.30","14.52","15.99","14.50","13.38M","5.15%" +"11/30/2023","14.55","16.29","16.33","14.31","16.54M","-10.46%" +"11/29/2023","16.25","15.49","17.56","14.70","61.17M","20.46%" +"11/28/2023","13.49","11.90","13.55","11.89","14.19M","13.27%" +"11/27/2023","11.91","12.18","12.33","11.89","3.71M","-2.38%" +"11/24/2023","12.20","12.22","12.41","12.18","1.23M","-0.73%" +"11/22/2023","12.29","12.56","12.71","12.19","2.36M","-2.07%" +"11/21/2023","12.55","12.65","12.72","12.26","3.71M","-1.95%" +"11/20/2023","12.80","13.00","13.20","12.80","2.30M","-1.77%" +"11/17/2023","13.03","12.52","13.06","12.52","3.42M","3.99%" +"11/16/2023","12.53","13.14","13.19","12.52","3.43M","-5.58%" +"11/15/2023","13.27","13.15","13.50","13.03","4.12M","2.87%" +"11/14/2023","12.90","12.75","13.39","12.69","5.19M","6.26%" +"11/13/2023","12.14","12.50","12.53","11.82","4.32M","-3.19%" +"11/10/2023","12.54","12.81","12.97","12.35","3.88M","-1.26%" +"11/09/2023","12.70","13.25","13.32","12.70","2.75M","-4.37%" +"11/08/2023","13.28","13.51","13.76","13.28","1.71M","-2.64%" +"11/07/2023","13.64","13.47","13.79","13.23","2.35M","0.81%" +"11/06/2023","13.53","13.99","14.05","13.48","2.16M","-2.45%" +"11/03/2023","13.87","13.90","14.40","13.83","2.97M","1.69%" +"11/02/2023","13.64","13.37","13.69","13.27","3.57M","4.84%" +"11/01/2023","13.01","13.78","13.80","13.01","3.43M","-5.52%" +"10/31/2023","13.77","12.85","13.90","12.82","4.57M","7.58%" +"10/30/2023","12.80","13.15","13.27","12.59","3.48M","-2.44%" +"10/27/2023","13.12","13.51","13.61","13.02","2.48M","-2.81%" +"10/26/2023","13.50","13.73","13.80","13.41","2.04M","-1.53%" +"10/25/2023","13.71","14.01","14.01","13.60","1.97M","-2.35%" +"10/24/2023","14.04","13.59","14.30","13.55","3.74M","4.46%" +"10/23/2023","13.44","13.28","13.59","13.04","2.79M","0.00%" +"10/20/2023","13.44","13.18","13.80","13.12","3.66M","2.13%" +"10/19/2023","13.16","13.80","13.85","12.90","5.81M","-4.98%" +"10/18/2023","13.85","14.00","14.25","13.81","4.05M","-1.91%" +"10/17/2023","14.12","14.25","14.83","14.10","3.84M","-2.15%" +"10/16/2023","14.43","14.81","14.93","14.15","3.51M","-3.28%" +"10/13/2023","14.92","14.92","15.10","14.78","1.84M","-1.13%" +"10/12/2023","15.09","15.77","15.80","14.82","3.18M","-4.61%" +"10/11/2023","15.82","16.01","16.08","15.74","2.10M","-1.13%" +"10/10/2023","16.00","15.50","16.19","15.40","2.92M","3.90%" +"10/09/2023","15.40","14.77","15.50","14.72","2.28M","2.12%" +"10/06/2023","15.08","14.59","15.26","14.58","2.47M","2.52%" +"10/05/2023","14.71","14.70","14.98","14.58","1.95M","-1.08%" +"10/04/2023","14.87","14.77","14.94","14.44","2.59M","1.85%" +"10/03/2023","14.60","15.29","15.29","14.57","4.51M","-5.13%" +"10/02/2023","15.39","16.30","16.31","15.26","6.09M","-6.50%" +"09/29/2023","16.46","17.05","17.26","16.40","3.40M","-2.26%" +"09/28/2023","16.84","18.02","18.10","16.44","7.43M","-1.81%" +"09/27/2023","17.15","16.87","17.26","16.81","1.68M","2.20%" +"09/26/2023","16.78","17.38","17.82","16.78","2.73M","-5.04%" +"09/25/2023","17.67","17.00","17.72","16.85","2.18M","2.85%" +"09/22/2023","17.18","17.18","17.35","17.00","2.10M","0.94%" +"09/21/2023","17.02","17.28","17.32","16.65","2.91M","-2.85%" +"09/20/2023","17.52","17.63","17.93","17.45","2.13M","0.00%" +"09/19/2023","17.52","17.59","17.64","17.13","2.58M","-0.17%" +"09/18/2023","17.55","17.99","18.10","17.35","3.69M","-3.68%" +"09/15/2023","18.22","18.36","18.61","18.15","6.17M","-0.60%" +"09/14/2023","18.33","17.80","18.52","17.60","3.08M","2.92%" +"09/13/2023","17.81","17.31","17.93","17.27","3.01M","3.37%" +"09/12/2023","17.23","17.53","18.50","17.19","5.18M","1.23%" +"09/11/2023","17.02","17.85","17.85","16.90","3.54M","-3.90%" +"09/08/2023","17.71","18.15","18.50","17.35","4.69M","-6.25%" +"09/07/2023","18.89","19.13","19.48","17.61","5.02M","0.75%" +"09/06/2023","18.75","19.06","19.15","18.42","6.11M","-2.50%" +"09/05/2023","19.23","18.45","19.34","18.26","3.78M","4.40%" +"09/01/2023","18.42","18.66","18.73","18.32","2.14M","-0.70%" +"08/31/2023","18.55","18.41","19.42","18.15","4.67M","0.98%" +"08/30/2023","18.37","18.20","18.52","17.91","1.88M","0.71%" +"08/29/2023","18.24","17.60","18.55","17.60","2.71M","3.81%" +"08/28/2023","17.57","17.35","18.11","17.25","3.01M","2.57%" +"08/25/2023","17.13","16.50","17.18","16.45","3.42M","4.71%" +"08/24/2023","16.36","16.94","16.98","16.18","3.62M","-3.14%" +"08/23/2023","16.89","17.25","17.34","16.88","2.91M","-2.14%" +"08/22/2023","17.26","18.62","18.62","17.25","3.79M","-6.60%" +"08/21/2023","18.48","18.30","18.82","18.20","2.86M","0.65%" +"08/18/2023","18.36","18.18","18.66","18.14","2.03M","-0.11%" +"08/17/2023","18.38","18.79","18.81","18.30","2.06M","-1.13%" +"08/16/2023","18.59","19.18","19.34","18.55","3.02M","-3.83%" +"08/15/2023","19.33","19.77","19.78","19.09","2.29M","-3.16%" +"08/14/2023","19.96","19.75","20.01","19.08","3.33M","-1.14%" +"08/11/2023","20.19","20.03","20.38","19.97","1.52M","0.00%" +"08/10/2023","20.19","20.00","20.29","19.87","1.43M","1.30%" +"08/09/2023","19.93","20.85","20.85","19.82","2.93M","-3.91%" +"08/08/2023","20.74","20.70","20.90","20.28","1.43M","-1.57%" +"08/07/2023","21.07","20.90","21.24","20.48","1.44M","0.43%" +"08/04/2023","20.98","20.95","21.89","20.89","2.41M","0.24%" +"08/03/2023","20.93","20.88","21.18","20.74","1.32M","0.48%" +"08/02/2023","20.83","21.15","21.15","20.34","2.63M","-3.12%" +"08/01/2023","21.50","21.95","22.00","21.26","2.57M","-3.15%" +"07/31/2023","22.20","22.00","22.38","21.85","1.98M","1.23%" +"07/28/2023","21.93","22.02","22.49","21.79","2.65M","-1.31%" +"07/27/2023","22.22","22.94","23.49","22.13","3.37M","-2.11%" +"07/26/2023","22.70","22.70","22.99","22.48","1.49M","-0.66%" +"07/25/2023","22.85","23.10","23.10","22.53","1.67M","-0.82%" +"07/24/2023","23.04","22.42","23.04","22.20","2.97M","3.88%" +"07/21/2023","22.18","23.05","23.22","22.16","3.17M","-3.19%" +"07/20/2023","22.91","23.01","23.22","22.66","2.26M","-1.12%" +"07/19/2023","23.17","23.42","23.58","22.96","2.25M","0.39%" +"07/18/2023","23.08","22.72","23.80","22.68","2.35M","1.14%" +"07/17/2023","22.82","22.88","23.31","22.70","2.03M","-0.65%" +"07/14/2023","22.97","23.49","23.72","22.94","2.18M","-2.09%" +"07/13/2023","23.46","23.54","23.98","23.42","1.91M","0.09%" +"07/12/2023","23.44","24.25","24.31","23.44","1.74M","-1.97%" +"07/11/2023","23.91","23.20","24.44","23.20","3.06M","1.57%" +"07/10/2023","23.54","22.61","23.56","22.00","3.32M","3.65%" +"07/07/2023","22.71","22.97","23.53","22.67","2.45M","-0.53%" +"07/06/2023","22.83","23.52","23.57","22.82","2.39M","-4.48%" +"07/05/2023","23.90","24.64","24.85","23.79","2.27M","-4.05%" +"07/03/2023","24.91","24.29","25.11","24.21","1.81M","2.72%" +"06/30/2023","24.25","24.97","25.13","24.25","2.80M","-2.61%" +"06/29/2023","24.90","24.96","25.47","24.62","3.10M","-0.32%" +"06/28/2023","24.98","23.44","25.10","23.40","3.49M","5.94%" +"06/27/2023","23.58","23.29","23.60","23.00","2.14M","2.43%" +"06/26/2023","23.02","23.38","24.03","22.91","2.53M","-2.87%" +"06/23/2023","23.70","23.78","24.15","23.68","2.26M","-2.55%" +"06/22/2023","24.32","24.13","24.33","23.76","1.90M","-0.45%" +"06/21/2023","24.43","24.84","25.10","24.10","2.40M","-0.61%" +"06/20/2023","24.58","24.41","24.65","23.72","3.25M","0.08%" +"06/16/2023","24.56","25.02","25.11","24.42","4.44M","-1.13%" +"06/15/2023","24.84","25.41","26.17","24.64","5.50M","-3.35%" +"06/14/2023","25.70","26.72","27.08","24.90","7.24M","-4.64%" +"06/13/2023","26.95","26.20","27.65","25.03","17.16M","10.91%" +"06/12/2023","24.30","22.84","24.30","22.74","7.14M","7.14%" +"06/09/2023","22.68","21.78","23.43","21.50","10.34M","5.78%" +"06/08/2023","21.44","20.30","22.00","20.10","19.21M","-17.89%" +"06/07/2023","26.11","26.20","26.55","25.07","18.00M","5.75%" +"06/06/2023","24.69","24.01","25.25","24.00","3.98M","1.56%" +"06/05/2023","24.31","24.53","25.84","24.16","4.98M","-1.34%" +"06/02/2023","24.64","24.29","24.93","24.28","3.30M","2.24%" +"06/01/2023","24.10","24.04","24.66","23.78","3.84M","0.21%" +"05/31/2023","24.05","24.51","24.80","23.88","4.27M","-2.12%" +"05/30/2023","24.57","23.35","24.69","23.30","5.04M","5.68%" +"05/26/2023","23.25","23.47","23.71","23.06","2.26M","-0.43%" +"05/25/2023","23.35","23.50","23.69","22.71","2.49M","0.34%" +"05/24/2023","23.27","23.13","23.52","22.73","1.90M","0.47%" +"05/23/2023","23.16","23.89","23.90","22.80","3.79M","-4.34%" +"05/22/2023","24.21","22.10","24.36","21.99","6.25M","9.75%" +"05/19/2023","22.06","22.94","22.99","21.75","2.67M","-4.30%" +"05/18/2023","23.05","22.90","23.30","22.68","2.14M","0.79%" +"05/17/2023","22.87","21.99","23.25","21.90","4.57M","4.00%" +"05/16/2023","21.99","21.50","22.10","21.42","2.50M","1.71%" +"05/15/2023","21.62","20.62","21.63","20.49","2.60M","4.49%" +"05/12/2023","20.69","20.83","20.98","20.23","2.01M","-0.91%" +"05/11/2023","20.88","20.69","21.16","20.51","1.65M","0.58%" +"05/10/2023","20.76","20.45","20.96","20.38","2.14M","2.57%" +"05/09/2023","20.24","20.16","20.65","20.12","1.52M","-1.32%" +"05/08/2023","20.51","20.46","20.99","20.09","2.40M","0.44%" +"05/05/2023","20.42","19.62","20.88","19.51","4.36M","5.53%" +"05/04/2023","19.35","19.25","19.48","18.92","2.04M","2.38%" +"05/03/2023","18.90","18.56","19.20","18.53","3.18M","1.72%" +"05/02/2023","18.58","18.45","18.58","18.06","1.92M","0.16%" +"05/01/2023","18.55","19.16","19.25","18.46","2.36M","-3.84%" +"04/28/2023","19.29","18.92","19.72","18.88","2.84M","1.85%" +"04/27/2023","18.94","18.75","19.34","18.72","2.24M","1.55%" +"04/26/2023","18.65","18.98","19.23","18.65","2.29M","-1.84%" +"04/25/2023","19.00","19.74","20.04","18.91","2.56M","-4.67%" +"04/24/2023","19.93","20.15","20.41","19.81","2.74M","-2.73%" +"04/21/2023","20.49","20.20","20.62","20.10","2.09M","1.34%" +"04/20/2023","20.22","20.88","21.57","20.06","2.98M","-5.11%" +"04/19/2023","21.31","21.28","21.87","20.96","2.54M","-1.39%" +"04/18/2023","21.61","22.14","22.32","21.50","2.75M","-3.01%" +"04/17/2023","22.28","22.27","22.68","22.14","2.07M","-0.80%" +"04/14/2023","22.46","22.74","23.25","22.32","2.31M","-0.40%" +"04/13/2023","22.55","22.50","22.85","22.33","1.80M","1.30%" +"04/12/2023","22.26","22.90","23.28","22.26","2.14M","-1.90%" +"04/11/2023","22.69","22.57","23.17","22.42","2.54M","1.43%" +"04/10/2023","22.37","21.85","22.43","21.82","2.18M","-0.13%" +"04/06/2023","22.40","22.00","22.67","21.77","2.51M","1.50%" +"04/05/2023","22.07","22.47","22.47","21.23","3.64M","-1.25%" +"04/04/2023","22.35","22.75","23.14","22.09","3.42M","-3.54%" +"04/03/2023","23.17","22.94","23.85","22.66","4.27M","0.65%" +"03/31/2023","23.02","22.35","23.07","22.15","3.88M","2.31%" +"03/30/2023","22.50","22.60","22.83","22.11","3.48M","0.18%" +"03/29/2023","22.46","23.08","23.70","22.22","4.16M","-2.98%" +"03/28/2023","23.15","22.97","23.54","22.22","5.71M","0.65%" +"03/27/2023","23.00","23.99","24.01","22.69","4.58M","-4.09%" +"03/24/2023","23.98","22.32","23.99","22.10","8.77M","6.20%" +"03/23/2023","22.58","22.57","24.59","22.13","11.17M","-5.40%" +"03/22/2023","23.87","26.60","27.00","23.05","66.76M","35.24%" +"03/21/2023","17.65","17.15","18.35","17.14","15.88M","4.62%" +"03/20/2023","16.87","16.65","17.27","16.25","4.46M","1.63%" +"03/17/2023","16.60","16.62","16.72","15.92","5.11M","-0.95%" +"03/16/2023","16.76","16.00","16.77","15.53","4.09M","5.08%" +"03/15/2023","15.95","16.50","16.69","15.69","4.54M","-5.68%" +"03/14/2023","16.91","17.37","17.41","16.40","3.08M","0.96%" +"03/13/2023","16.75","16.77","17.35","16.52","2.96M","-2.90%" +"03/10/2023","17.25","17.53","17.77","16.85","2.85M","-1.54%" +"03/09/2023","17.52","18.07","18.38","17.48","2.65M","-3.58%" +"03/08/2023","18.17","18.05","18.38","17.63","3.28M","0.61%" +"03/07/2023","18.06","18.54","18.83","18.06","2.38M","-3.16%" +"03/06/2023","18.65","18.52","19.50","18.52","2.82M","-0.27%" +"03/03/2023","18.70","18.19","19.10","18.10","2.51M","2.80%" +"03/02/2023","18.19","18.15","18.40","17.62","2.63M","0.22%" +"03/01/2023","18.15","18.92","19.09","18.14","4.21M","-5.62%" +"02/28/2023","19.23","19.06","19.52","18.95","3.37M","0.68%" +"02/27/2023","19.10","19.61","19.70","18.89","4.01M","-2.25%" +"02/24/2023","19.54","19.71","20.08","19.54","2.28M","-2.98%" +"02/23/2023","20.14","20.66","20.87","19.53","2.86M","-1.85%" +"02/22/2023","20.52","20.53","21.19","20.33","2.16M","-0.68%" +"02/21/2023","20.66","21.33","21.83","20.63","3.10M","-6.05%" +"02/17/2023","21.99","21.27","22.07","21.15","2.85M","1.81%" +"02/16/2023","21.60","21.25","22.42","20.85","3.88M","-0.92%" +"02/15/2023","21.80","19.80","21.80","19.59","7.15M","9.71%" +"02/14/2023","19.87","19.31","20.01","19.10","2.75M","0.91%" +"02/13/2023","19.69","19.30","19.94","19.01","2.30M","2.18%" +"02/10/2023","19.27","19.56","20.04","19.05","2.90M","-2.03%" +"02/09/2023","19.67","21.25","21.65","19.67","4.50M","-6.78%" +"02/08/2023","21.10","21.43","21.55","20.61","2.85M","-0.57%" +"02/07/2023","21.22","23.00","23.05","20.50","9.09M","-11.06%" +"02/06/2023","23.86","21.88","24.88","21.77","8.71M","7.24%" +"02/03/2023","22.25","22.01","23.93","21.80","4.94M","-1.98%" +"02/02/2023","22.70","22.44","24.40","22.22","7.66M","3.99%" +"02/01/2023","21.83","21.49","22.12","20.55","4.52M","-0.18%" +"01/31/2023","21.87","21.41","22.05","21.30","3.13M","2.92%" +"01/30/2023","21.25","22.50","23.48","21.13","4.95M","-6.88%" +"01/27/2023","22.82","19.80","23.31","19.41","11.90M","14.04%" +"01/26/2023","20.01","20.61","21.17","19.38","3.52M","-1.09%" +"01/25/2023","20.23","20.59","20.84","19.53","3.52M","-5.47%" +"01/24/2023","21.40","21.30","22.09","21.00","2.38M","-1.20%" +"01/23/2023","21.66","19.50","22.49","19.37","7.18M","10.45%" +"01/20/2023","19.61","19.05","20.07","18.90","3.56M","2.99%" +"01/19/2023","19.04","20.44","20.45","18.82","4.52M","-8.42%" +"01/18/2023","20.79","22.01","22.15","20.50","5.63M","-4.63%" +"01/17/2023","21.80","20.49","21.94","20.37","5.41M","6.39%" +"01/13/2023","20.49","19.88","21.11","19.80","5.49M","-0.68%" +"01/12/2023","20.63","19.04","20.63","18.34","5.88M","8.35%" +"01/11/2023","19.04","18.19","20.05","17.86","8.41M","7.15%" +"01/10/2023","17.77","16.30","18.09","16.25","4.40M","8.49%" +"01/09/2023","16.38","16.65","17.13","16.36","3.52M","-0.49%" +"01/06/2023","16.46","16.00","16.57","15.41","4.82M","1.48%" +"01/05/2023","16.22","17.06","17.26","15.89","6.07M","-6.35%" +"01/04/2023","17.32","17.25","17.93","16.90","3.94M","0.70%" +"01/03/2023","17.20","18.64","19.26","17.09","5.14M","-6.83%" +"12/30/2022","18.46","17.95","18.58","17.90","2.67M","0.71%" +"12/29/2022","18.33","18.12","18.57","17.75","3.44M","2.29%" +"12/28/2022","17.92","18.29","18.70","16.98","5.67M","-1.54%" +"12/27/2022","18.20","19.91","19.99","18.00","4.23M","-9.36%" +"12/23/2022","20.08","20.00","20.63","19.65","3.17M","1.36%" +"12/22/2022","19.81","20.50","20.50","18.50","5.34M","-3.65%" +"12/21/2022","20.56","20.40","20.90","20.18","2.79M","1.48%" +"12/20/2022","20.26","19.86","21.32","19.62","4.48M","1.71%" +"12/19/2022","19.92","20.55","20.89","19.59","3.70M","-4.23%" +"12/16/2022","20.80","20.48","21.11","20.01","9.38M","1.07%" +"12/15/2022","20.58","20.74","21.44","20.24","6.44M","-2.23%" +"12/14/2022","21.05","21.19","22.00","21.01","4.60M","0.24%" +"12/13/2022","21.00","23.55","23.70","20.83","6.31M","-7.37%" +"12/12/2022","22.67","22.66","23.15","22.18","3.75M","0.18%" +"12/09/2022","22.63","24.59","24.59","22.59","5.33M","-8.71%" +"12/08/2022","24.79","22.00","25.00","21.97","10.25M","11.37%" +"12/07/2022","22.26","23.40","23.61","21.97","10.08M","-4.83%" +"12/06/2022","23.39","25.41","25.58","23.11","7.70M","-8.49%" +"12/05/2022","25.56","27.31","27.48","25.44","4.97M","-7.12%" +"12/02/2022","27.52","26.25","27.87","26.11","4.58M","3.46%" +"12/01/2022","26.60","26.00","27.50","25.18","7.62M","1.49%" +"11/30/2022","26.21","25.90","26.23","24.91","3.73M","2.38%" +"11/29/2022","25.60","25.58","26.35","25.32","2.03M","1.23%" +"11/28/2022","25.29","25.79","26.44","25.21","2.45M","-3.36%" +"11/25/2022","26.17","26.50","27.05","26.14","1.12M","-1.99%" +"11/23/2022","26.70","25.92","27.14","25.92","2.74M","1.52%" +"11/22/2022","26.30","25.13","26.45","24.70","4.24M","4.53%" +"11/21/2022","25.16","26.66","27.83","24.85","4.44M","-8.84%" +"11/18/2022","27.60","28.16","28.70","26.83","3.09M","-0.58%" +"11/17/2022","27.76","26.30","27.76","26.15","2.48M","2.28%" +"11/16/2022","27.14","26.62","27.35","26.37","2.45M","-1.63%" +"11/15/2022","27.59","26.59","28.24","26.27","5.39M","5.91%" +"11/14/2022","26.05","26.30","27.38","25.61","4.35M","-0.19%" +"11/11/2022","26.10","24.78","26.12","24.15","3.99M","4.90%" +"11/10/2022","24.88","24.62","25.70","23.91","6.11M","7.66%" +"11/09/2022","23.11","24.55","24.67","21.89","8.46M","-8.07%" +"11/08/2022","25.14","25.33","25.85","24.11","4.70M","-2.41%" +"11/07/2022","25.76","26.25","26.30","24.80","3.30M","-2.83%" +"11/04/2022","26.51","26.60","27.03","25.34","4.14M","0.84%" +"11/03/2022","26.29","26.00","27.28","26.00","3.38M","-1.24%" +"11/02/2022","26.62","27.90","28.75","26.50","4.14M","-6.23%" +"11/01/2022","28.39","29.40","29.69","27.62","5.15M","0.28%" +"10/31/2022","28.31","31.22","34.99","27.91","24.03M","0.50%" +"10/28/2022","28.17","26.88","28.79","26.42","8.09M","8.64%" +"10/27/2022","25.93","25.75","26.33","25.20","2.42M","2.01%" +"10/26/2022","25.42","26.37","27.48","25.32","3.87M","-5.40%" +"10/25/2022","26.87","24.82","27.79","24.80","7.79M","8.74%" +"10/24/2022","24.71","25.00","25.19","24.11","3.11M","-2.33%" +"10/21/2022","25.30","24.15","25.33","24.10","3.04M","3.65%" +"10/20/2022","24.41","24.65","25.45","24.07","5.15M","-0.53%" +"10/19/2022","24.54","26.00","26.18","24.27","5.32M","-7.99%" +"10/18/2022","26.67","27.10","27.74","26.13","4.40M","2.73%" +"10/17/2022","25.96","25.37","26.41","25.24","3.17M","5.40%" +"10/14/2022","24.63","25.77","26.37","24.63","2.78M","-3.64%" +"10/13/2022","25.56","24.42","26.59","23.91","3.52M","0.79%" +"10/12/2022","25.36","25.96","26.89","25.27","3.28M","0.36%" +"10/11/2022","25.27","24.87","26.30","23.95","4.20M","1.08%" +"10/10/2022","25.00","25.37","26.50","24.75","2.92M","-1.38%" +"10/07/2022","25.35","25.84","25.84","24.42","3.27M","-2.46%" +"10/06/2022","25.99","26.29","27.00","25.80","2.42M","-1.52%" +"10/05/2022","26.39","26.77","26.98","25.43","2.99M","-4.38%" +"10/04/2022","27.60","25.95","27.83","25.95","4.58M","8.75%" +"10/03/2022","25.38","25.14","25.63","24.21","2.65M","0.99%" +"09/30/2022","25.13","25.03","25.82","24.44","3.15M","-1.30%" +"09/29/2022","25.46","27.08","27.69","24.69","4.12M","-6.77%" +"09/28/2022","27.31","25.89","27.50","25.62","2.63M","4.52%" +"09/27/2022","26.13","25.47","26.39","25.13","4.49M","6.74%" +"09/26/2022","24.48","24.66","25.87","24.12","3.44M","-2.24%" +"09/23/2022","25.04","24.15","25.15","24.06","3.62M","1.38%" +"09/22/2022","24.70","27.17","27.27","24.38","4.35M","-8.04%" +"09/21/2022","26.86","27.45","28.99","26.77","3.86M","-2.47%" +"09/20/2022","27.54","29.28","29.33","27.17","3.15M","-4.90%" +"09/19/2022","28.96","28.33","29.65","28.15","3.40M","1.12%" +"09/16/2022","28.64","28.33","28.80","27.78","4.66M","0.10%" +"09/15/2022","28.61","27.86","29.07","27.86","3.33M","1.71%" +"09/14/2022","28.13","27.56","28.45","26.65","3.61M","1.01%" +"09/13/2022","27.85","27.40","28.61","27.32","3.66M","-4.75%" +"09/12/2022","29.24","29.03","30.34","28.00","6.18M","1.11%" +"09/09/2022","28.92","26.30","29.08","26.10","7.92M","11.96%" +"09/08/2022","25.83","25.00","26.74","24.07","14.14M","7.45%" +"09/07/2022","24.04","24.73","25.19","23.42","12.50M","-4.38%" +"09/06/2022","25.14","25.75","26.72","24.67","7.01M","-8.11%" +"09/02/2022","27.36","28.26","28.74","26.93","4.68M","-0.98%" +"09/01/2022","27.63","28.00","28.91","26.95","5.29M","-3.53%" +"08/31/2022","28.64","29.25","29.96","28.26","5.16M","-4.02%" +"08/30/2022","29.84","31.62","31.87","29.42","5.06M","-5.42%" +"08/29/2022","31.55","30.48","32.75","30.38","4.29M","1.97%" +"08/26/2022","30.94","31.50","32.38","30.63","4.30M","-3.19%" +"08/25/2022","31.96","32.84","32.89","31.50","4.73M","-1.66%" +"08/24/2022","32.50","34.00","34.94","32.44","5.62M","-3.07%" +"08/23/2022","33.53","34.70","34.99","33.45","4.84M","-2.81%" +"08/22/2022","34.50","34.31","36.20","34.20","5.80M","-5.45%" +"08/19/2022","36.49","35.18","37.19","34.67","9.55M","-3.80%" +"08/18/2022","37.93","39.27","40.07","37.34","8.15M","-6.39%" +"08/17/2022","40.52","42.17","44.36","40.41","9.77M","-3.96%" +"08/16/2022","42.19","39.17","45.53","38.60","23.60M","6.33%" +"08/15/2022","39.68","39.75","40.39","38.81","5.24M","-2.60%" +"08/12/2022","40.74","40.00","41.43","39.15","5.12M","3.27%" +"08/11/2022","39.45","40.91","41.97","39.35","5.14M","-2.66%" +"08/10/2022","40.53","42.00","42.00","38.63","5.43M","0.40%" +"08/09/2022","40.37","42.14","43.19","39.00","6.95M","-7.09%" +"08/08/2022","43.45","41.29","47.99","40.75","18.05M","8.57%" +"08/05/2022","40.02","37.37","40.43","36.56","8.12M","4.33%" +"08/04/2022","38.36","38.34","39.89","37.89","5.42M","1.13%" +"08/03/2022","37.93","36.22","38.01","36.00","5.19M","5.83%" +"08/02/2022","35.84","35.90","36.80","35.12","4.70M","3.05%" +"08/01/2022","34.78","33.80","35.71","33.77","4.20M","2.26%" +"07/29/2022","34.01","33.68","34.79","33.06","3.99M","0.50%" +"07/28/2022","33.84","33.39","34.43","32.66","3.21M","0.18%" +"07/27/2022","33.78","32.96","34.12","32.16","4.25M","4.16%" +"07/26/2022","32.43","32.87","33.31","32.10","4.87M","-4.56%" +"07/25/2022","33.98","35.00","35.51","33.25","5.69M","-5.03%" +"07/22/2022","35.78","36.88","38.70","34.93","10.06M","-6.74%" +"07/21/2022","38.37","39.93","40.00","37.29","9.28M","-3.33%" +"07/20/2022","39.69","38.50","40.41","38.35","11.40M","4.65%" +"07/19/2022","37.92","37.44","39.21","36.59","12.83M","3.45%" +"07/18/2022","36.66","36.25","37.40","35.77","11.16M","3.53%" +"07/15/2022","35.41","34.86","35.59","33.51","9.83M","3.99%" +"07/14/2022","34.05","34.80","37.99","34.05","20.97M","-3.60%" +"07/13/2022","35.32","33.75","36.34","33.75","13.70M","3.03%" +"07/12/2022","34.28","32.70","35.65","31.82","16.90M","5.40%" +"07/11/2022","32.52","32.14","32.94","31.16","7.56M","1.21%" +"07/08/2022","32.13","31.67","33.17","30.63","13.20M","-4.87%" +"07/07/2022","33.78","31.12","33.88","30.45","30.31M","15.06%" +"07/06/2022","29.36","30.17","30.57","28.34","9.99M","-2.33%" +"07/05/2022","30.06","30.38","30.62","29.75","6.05M","-2.58%" +"07/01/2022","30.85","30.28","31.29","29.82","6.62M","0.92%" +"06/30/2022","30.58","29.84","31.65","29.44","6.72M","-0.46%" +"06/29/2022","30.72","30.39","31.62","29.90","6.83M","-1.22%" +"06/28/2022","31.09","32.75","32.83","30.57","6.62M","-4.09%" +"06/27/2022","32.42","34.12","34.26","31.83","9.75M","-4.08%" +"06/24/2022","33.80","35.75","37.09","32.88","17.00M","-4.80%" +"06/23/2022","35.51","35.41","36.00","34.18","6.68M","2.57%" +"06/22/2022","34.62","34.67","36.18","34.11","7.85M","-1.30%" +"06/21/2022","35.07","34.56","36.35","33.88","12.51M","3.80%" +"06/17/2022","33.78","31.72","33.96","31.58","12.34M","7.48%" +"06/16/2022","31.43","31.24","32.32","30.15","10.00M","-2.75%" +"06/15/2022","32.32","31.24","32.99","30.91","10.76M","2.47%" +"06/14/2022","31.54","29.39","32.00","29.02","12.74M","6.70%" +"06/13/2022","29.56","30.13","31.14","28.58","13.79M","-8.40%" +"06/10/2022","32.27","31.50","32.98","30.78","11.83M","0.09%" +"06/09/2022","32.24","34.70","34.97","31.83","13.14M","-7.03%" +"06/08/2022","34.68","35.35","38.25","33.96","24.47M","-5.30%" +"06/07/2022","36.63","32.50","37.47","31.58","24.97M","14.36%" +"06/06/2022","32.03","33.83","34.03","31.76","9.53M","-4.19%" +"06/03/2022","33.42","32.50","34.53","31.06","18.23M","-0.22%" +"06/02/2022","33.50","29.75","34.13","28.89","27.92M","10.38%" +"06/01/2022","30.35","30.70","32.40","29.25","14.99M","-2.68%" +"05/31/2022","31.18","34.30","34.98","30.13","19.08M","-9.09%" +"05/27/2022","34.30","35.25","35.92","31.75","30.05M","6.81%" +"05/26/2022","32.12","29.00","37.12","28.67","57.89M","11.54%" +"05/25/2022","28.79","22.53","28.87","22.53","40.06M","29.19%" +"05/24/2022","22.29","23.51","23.55","21.67","8.88M","-7.26%" +"05/23/2022","24.03","24.14","24.32","22.88","6.99M","0.49%" +"05/20/2022","23.92","24.95","25.60","22.44","9.97M","-3.56%" +"05/19/2022","24.80","22.81","25.49","22.54","12.72M","8.43%" +"05/18/2022","22.87","24.09","24.96","22.54","11.56M","-8.87%" +"05/17/2022","25.09","23.48","25.09","22.80","10.44M","9.35%" +"05/16/2022","22.95","24.70","24.79","22.69","11.58M","-6.70%" +"05/13/2022","24.60","24.75","26.69","23.76","23.93M","9.85%" +"05/12/2022","22.39","20.76","27.01","19.44","40.14M","10.13%" +"05/11/2022","20.33","23.37","23.82","20.00","16.68M","-13.02%" +"05/10/2022","23.38","25.75","26.51","22.00","16.60M","-5.35%" +"05/09/2022","24.70","27.69","27.69","24.52","13.26M","-13.87%" +"05/06/2022","28.67","29.32","30.14","27.56","7.16M","-3.72%" +"05/05/2022","29.78","30.99","31.17","28.78","7.02M","-6.26%" +"05/04/2022","31.77","29.80","31.94","28.93","6.65M","5.52%" +"05/03/2022","30.11","29.62","31.11","28.60","7.31M","0.72%" +"05/02/2022","29.89","30.91","31.35","28.17","10.17M","-4.40%" +"04/29/2022","31.27","31.83","32.72","30.75","5.14M","-3.28%" +"04/28/2022","32.33","32.57","33.15","30.13","7.08M","-0.41%" +"04/27/2022","32.46","31.82","33.17","31.15","5.22M","1.76%" +"04/26/2022","31.90","33.91","34.20","31.54","6.18M","-6.14%" +"04/25/2022","33.99","33.85","34.93","33.32","6.14M","-1.64%" +"04/22/2022","34.56","35.64","36.58","33.89","6.28M","-2.36%" +"04/21/2022","35.39","37.50","38.28","34.98","6.74M","-4.90%" +"04/20/2022","37.21","38.00","38.08","36.66","4.65M","-2.37%" +"04/19/2022","38.12","35.71","38.24","34.96","9.42M","7.78%" +"04/18/2022","35.37","37.50","37.81","34.31","9.87M","-6.17%" +"04/14/2022","37.69","37.32","39.13","36.81","10.00M","0.05%" +"04/13/2022","37.67","36.03","38.03","35.51","8.03M","4.02%" +"04/12/2022","36.22","36.63","38.06","35.42","8.00M","-1.40%" +"04/11/2022","36.73","35.76","37.06","35.15","9.81M","0.51%" +"04/08/2022","36.55","37.27","37.68","35.51","10.37M","-2.54%" +"04/07/2022","37.50","38.53","39.17","35.39","15.31M","-4.24%" +"04/06/2022","39.16","37.75","39.82","37.42","16.27M","1.99%" +"04/05/2022","38.40","42.00","42.11","38.00","15.83M","-10.04%" +"04/04/2022","42.68","41.74","43.31","39.13","18.56M","3.47%" +"04/01/2022","41.25","47.22","47.44","38.81","52.76M","-0.95%" +"03/31/2022","41.65","40.78","43.94","39.63","44.97M","-0.16%" +"03/30/2022","41.71","43.75","45.83","41.25","36.68M","-7.25%" +"03/29/2022","44.97","47.06","49.85","40.75","72.05M","-5.11%" +"03/28/2022","47.40","37.99","47.71","37.89","65.27M","24.77%" +"03/25/2022","37.99","35.01","39.54","34.55","53.54M","6.71%" +"03/24/2022","35.60","33.50","35.87","31.69","36.40M","0.99%" +"03/23/2022","35.25","32.50","37.73","31.64","98.40M","14.50%" +"03/22/2022","30.78","23.85","31.45","23.61","60.07M","30.72%" +"03/21/2022","23.55","22.50","24.85","22.44","15.81M","3.76%" +"03/18/2022","22.70","19.93","24.36","19.73","35.69M","3.52%" +"03/17/2022","21.92","21.27","22.40","20.86","13.80M","0.97%" +"03/16/2022","21.72","21.28","22.50","20.50","10.62M","5.11%" +"03/15/2022","20.66","20.52","21.89","19.67","14.12M","5.80%" +"03/14/2022","19.53","23.36","23.58","19.40","18.13M","-15.73%" +"03/11/2022","23.17","25.67","25.73","23.17","8.82M","-7.83%" +"03/10/2022","25.14","25.98","26.01","24.56","5.58M","-4.42%" +"03/09/2022","26.30","26.75","27.22","25.88","5.60M","2.14%" +"03/08/2022","25.75","25.26","27.25","24.27","8.54M","3.68%" +"03/07/2022","24.84","28.75","28.75","24.03","12.59M","-11.02%" +"03/04/2022","27.92","29.50","30.13","27.65","5.92M","-5.70%" +"03/03/2022","29.60","30.74","30.93","29.31","4.38M","-2.92%" +"03/02/2022","30.49","29.88","30.67","29.09","5.24M","2.48%" +"03/01/2022","29.75","30.55","31.47","29.59","4.38M","-3.50%" +"02/28/2022","30.83","30.25","31.57","29.22","6.46M","4.01%" +"02/25/2022","29.65","30.89","31.24","29.12","6.84M","-4.82%" +"02/24/2022","31.15","26.38","31.43","26.03","9.02M","8.45%" +"02/23/2022","28.72","30.31","30.84","28.57","5.39M","-2.70%" +"02/22/2022","29.51","29.55","30.83","28.55","6.16M","-2.86%" +"02/18/2022","30.38","31.05","31.41","29.53","6.21M","-1.52%" +"02/17/2022","30.85","31.69","32.71","30.56","6.26M","-3.83%" +"02/16/2022","32.08","31.11","33.21","30.98","8.01M","1.72%" +"02/15/2022","31.54","30.24","31.81","29.82","7.92M","7.75%" +"02/14/2022","29.27","30.73","31.38","29.04","9.10M","-5.76%" +"02/11/2022","31.06","30.62","32.47","30.19","11.30M","1.45%" +"02/10/2022","30.62","29.49","32.94","29.00","14.83M","-1.46%" +"02/09/2022","31.07","28.52","31.18","28.25","15.47M","7.52%" +"02/08/2022","28.90","25.44","29.42","25.14","19.84M","12.96%" +"02/07/2022","25.58","25.75","26.35","24.69","7.04M","0.00%" +"02/04/2022","25.58","24.75","26.00","23.77","7.63M","3.13%" +"02/03/2022","24.81","25.38","26.74","24.43","10.71M","-0.81%" +"02/02/2022","25.01","27.59","27.96","24.51","13.12M","-11.15%" +"02/01/2022","28.15","28.25","29.16","27.07","13.85M","3.37%" +"01/31/2022","27.23","24.47","27.45","24.47","14.00M","11.26%" +"01/28/2022","24.48","23.85","24.50","21.90","16.43M","4.69%" +"01/27/2022","23.38","26.03","26.75","23.22","14.68M","-9.43%" +"01/26/2022","25.82","25.27","29.75","25.08","33.33M","3.48%" +"01/25/2022","24.95","24.23","26.24","23.75","14.30M","-0.36%" +"01/24/2022","25.04","24.75","25.72","21.57","25.07M","-5.84%" +"01/21/2022","26.59","25.25","27.55","23.18","22.12M","3.59%" +"01/20/2022","25.67","26.98","28.80","25.40","11.68M","-3.66%" +"01/19/2022","26.64","27.50","28.26","26.10","9.61M","-2.15%" +"01/18/2022","27.23","28.28","28.44","26.10","15.04M","-6.64%" +"01/14/2022","29.16","30.04","30.58","28.00","15.40M","-4.76%" +"01/13/2022","30.62","32.13","32.63","30.42","8.90M","-4.36%" +"01/12/2022","32.01","32.50","32.83","31.61","6.30M","-1.72%" +"01/11/2022","32.58","32.53","34.20","31.85","10.33M","-0.65%" +"01/10/2022","32.79","33.75","33.92","30.00","22.05M","-6.73%" +"01/07/2022","35.15","39.94","40.08","33.13","48.55M","7.32%" +"01/06/2022","32.76","33.21","34.42","30.28","24.21M","1.28%" +"01/05/2022","32.34","37.10","37.21","32.29","13.59M","-13.12%" +"01/04/2022","37.23","38.04","38.25","35.76","7.34M","-2.57%" +"01/03/2022","38.21","37.31","39.85","37.30","5.67M","3.00%" \ No newline at end of file diff --git a/SAMPLE_DATA/GOOG Historical Data.csv b/SAMPLE_DATA/GOOG Historical Data.csv new file mode 100644 index 0000000..731b1b2 --- /dev/null +++ b/SAMPLE_DATA/GOOG Historical Data.csv @@ -0,0 +1,640 @@ +"Date","Price","Open","High","Low","Vol.","Change %" +"07/19/2024","179.39","180.37","181.97","178.86","14.49M","0.09%" +"07/18/2024","179.22","183.54","184.05","178.21","17.88M","-1.86%" +"07/17/2024","182.62","184.68","185.23","181.62","17.38M","-1.55%" +"07/16/2024","185.50","188.96","190.34","185.12","12.76M","-1.43%" +"07/15/2024","188.19","186.49","189.90","186.49","12.19M","0.75%" +"07/12/2024","186.78","186.92","188.69","186.14","14.45M","-0.28%" +"07/11/2024","187.30","191.34","192.41","186.82","16.45M","-2.78%" +"07/10/2024","192.66","190.75","193.31","190.62","12.05M","1.17%" +"07/09/2024","190.44","191.75","192.86","190.23","10.22M","-0.02%" +"07/08/2024","190.48","191.37","191.68","189.32","12.10M","-0.77%" +"07/05/2024","191.96","187.32","192.26","187.32","14.30M","2.44%" +"07/03/2024","187.39","186.30","187.62","185.38","7.41M","0.42%" +"07/02/2024","186.61","183.47","186.95","183.06","12.56M","1.15%" +"07/01/2024","184.49","184.48","185.34","182.73","11.82M","0.58%" +"06/28/2024","183.42","185.72","186.58","183.32","23.03M","-1.84%" +"06/27/2024","186.86","185.65","187.50","185.45","13.03M","0.80%" +"06/26/2024","185.37","184.20","185.93","183.99","13.38M","-0.11%" +"06/25/2024","185.58","181.15","185.75","181.10","18.92M","2.65%" +"06/24/2024","180.79","181.28","182.08","180.23","18.20M","0.29%" +"06/21/2024","180.26","178.49","182.51","178.06","59.73M","1.43%" +"06/20/2024","177.71","176.71","178.74","176.46","16.75M","0.71%" +"06/18/2024","176.45","178.79","178.91","175.62","15.64M","-1.30%" +"06/17/2024","178.78","176.98","179.92","176.49","15.27M","0.23%" +"06/14/2024","178.37","175.85","178.73","175.85","12.36M","0.92%" +"06/13/2024","176.74","177.84","178.51","176.66","15.96M","-1.57%" +"06/12/2024","179.56","179.75","182.08","177.78","18.60M","0.77%" +"06/11/2024","178.19","177.72","178.39","175.44","14.40M","0.88%" +"06/10/2024","176.63","176.45","178.47","174.38","17.12M","0.39%" +"06/07/2024","175.95","178.46","179.42","175.79","14.72M","-1.35%" +"06/06/2024","178.35","177.43","178.71","177.21","14.26M","0.72%" +"06/05/2024","177.07","176.54","177.97","175.29","15.23M","1.11%" +"06/04/2024","175.13","174.45","175.19","173.22","14.07M","0.41%" +"06/03/2024","174.42","173.88","175.86","172.45","20.74M","0.26%" +"05/31/2024","173.96","173.40","174.42","170.97","28.09M","0.23%" +"05/30/2024","173.56","176.69","176.69","173.23","18.84M","-2.16%" +"05/29/2024","177.40","176.81","178.23","176.26","15.02M","-0.35%" +"05/28/2024","178.02","175.74","178.51","175.68","15.66M","0.96%" +"05/24/2024","176.33","176.52","177.30","175.20","11.40M","0.73%" +"05/23/2024","175.06","178.78","179.91","174.54","14.93M","-1.65%" +"05/22/2024","178.00","178.40","178.85","176.78","16.19M","-0.86%" +"05/21/2024","179.54","178.40","179.82","177.31","14.71M","0.61%" +"05/20/2024","178.46","177.31","179.95","177.23","17.50M","0.66%" +"05/17/2024","177.29","175.55","177.49","174.98","16.55M","1.06%" +"05/16/2024","175.43","174.60","176.34","174.05","17.25M","0.89%" +"05/15/2024","173.88","172.30","174.05","172.03","20.96M","1.13%" +"05/14/2024","171.93","171.59","172.78","170.42","18.73M","0.60%" +"05/13/2024","170.90","165.85","170.95","165.76","19.65M","0.36%" +"05/10/2024","170.29","169.69","171.34","167.91","18.74M","-0.75%" +"05/09/2024","171.58","171.15","172.44","169.93","11.94M","0.25%" +"05/08/2024","171.16","170.75","171.91","170.52","14.57M","-1.05%" +"05/07/2024","172.98","170.12","173.47","170.00","21.10M","1.85%" +"05/06/2024","169.83","169.22","169.90","167.89","15.15M","0.50%" +"05/03/2024","168.99","169.54","169.85","164.98","22.77M","0.31%" +"05/02/2024","168.46","166.67","168.53","165.69","17.04M","1.75%" +"05/01/2024","165.57","166.18","168.81","164.90","25.22M","0.56%" +"04/30/2024","164.64","167.38","169.87","164.50","29.42M","-1.94%" +"04/29/2024","167.90","170.77","171.38","167.06","35.91M","-3.33%" +"04/26/2024","173.69","175.99","176.42","171.40","56.50M","9.97%" +"04/25/2024","157.95","153.36","158.28","152.77","36.20M","-1.96%" +"04/24/2024","161.10","159.09","161.39","158.82","19.49M","0.74%" +"04/23/2024","159.92","158.59","160.48","157.96","16.12M","1.25%" +"04/22/2024","157.95","156.01","159.18","155.66","17.24M","1.43%" +"04/19/2024","155.72","157.75","157.99","153.91","21.48M","-1.11%" +"04/18/2024","157.46","156.93","158.49","156.21","14.02M","0.37%" +"04/17/2024","156.88","157.19","158.68","156.13","16.24M","0.56%" +"04/16/2024","156.00","155.64","157.23","155.05","15.41M","-0.21%" +"04/15/2024","156.33","160.28","160.83","156.15","21.14M","-1.80%" +"04/12/2024","159.19","159.40","161.70","158.60","16.99M","-1.00%" +"04/11/2024","160.79","158.34","161.12","157.93","17.84M","1.99%" +"04/10/2024","157.66","157.88","158.16","156.20","16.34M","-0.30%" +"04/09/2024","158.14","157.35","159.89","156.64","21.54M","1.28%" +"04/08/2024","156.14","154.01","156.65","153.99","16.64M","1.43%" +"04/05/2024","153.94","151.68","154.84","151.08","16.30M","1.32%" +"04/04/2024","151.94","155.08","156.18","151.88","24.18M","-2.83%" +"04/03/2024","156.37","154.92","156.55","154.13","17.27M","0.32%" +"04/02/2024","155.87","154.75","155.99","153.46","17.60M","-0.40%" +"04/01/2024","156.50","151.83","157.00","151.65","24.47M","2.78%" +"03/28/2024","152.26","152.00","152.67","151.33","21.11M","0.21%" +"03/27/2024","151.94","152.15","152.69","150.13","16.62M","0.16%" +"03/26/2024","151.70","151.24","153.20","151.03","19.31M","0.36%" +"03/25/2024","151.15","150.95","151.46","148.80","15.11M","-0.41%" +"03/22/2024","151.77","150.24","152.56","150.09","19.25M","2.04%" +"03/21/2024","148.74","150.32","151.30","148.01","19.84M","-0.63%" +"03/20/2024","149.68","148.79","149.76","147.66","17.73M","1.19%" +"03/19/2024","147.92","148.98","149.62","147.01","17.75M","-0.38%" +"03/18/2024","148.48","149.37","152.93","148.14","47.68M","4.44%" +"03/15/2024","142.17","143.41","144.34","141.13","41.04M","-1.50%" +"03/14/2024","144.34","142.30","144.73","141.49","36.12M","2.54%" +"03/13/2024","140.77","140.06","142.19","140.01","19.64M","0.82%" +"03/12/2024","139.62","138.25","140.28","138.21","19.02M","0.49%" +"03/11/2024","138.94","137.07","139.98","137.07","22.54M","1.94%" +"03/08/2024","136.29","135.04","138.99","134.80","26.50M","0.78%" +"03/07/2024","135.24","133.89","135.82","132.66","24.11M","2.02%" +"03/06/2024","132.56","134.24","134.74","131.95","23.18M","-0.91%" +"03/05/2024","133.78","132.74","134.02","131.55","28.45M","-0.31%" +"03/04/2024","134.20","136.54","136.63","132.86","43.57M","-2.81%" +"03/01/2024","138.08","139.61","140.00","137.98","28.55M","-1.22%" +"02/29/2024","139.78","138.35","139.95","137.57","35.49M","1.71%" +"02/28/2024","137.43","139.10","139.28","136.64","30.63M","-1.91%" +"02/27/2024","140.10","139.41","140.49","138.50","22.36M","0.97%" +"02/26/2024","138.75","143.45","143.84","138.74","33.51M","-4.50%" +"02/23/2024","145.29","144.97","145.96","144.79","14.52M","-0.02%" +"02/22/2024","145.32","146.12","146.20","144.01","23.02M","1.03%" +"02/21/2024","143.84","142.64","143.98","141.91","16.50M","1.15%" +"02/20/2024","142.20","140.94","143.33","140.80","18.63M","0.31%" +"02/16/2024","141.76","144.21","144.48","141.52","21.87M","-1.51%" +"02/15/2024","143.94","144.46","144.76","141.88","26.72M","-2.17%" +"02/14/2024","147.14","147.37","147.83","145.55","16.65M","0.53%" +"02/13/2024","146.37","146.07","148.04","145.11","18.14M","-1.59%" +"02/12/2024","148.73","149.54","150.59","148.56","17.24M","-0.99%" +"02/09/2024","150.22","147.95","150.70","147.43","21.88M","2.04%" +"02/08/2024","147.22","146.97","147.61","146.42","18.24M","0.37%" +"02/07/2024","146.68","146.12","147.00","145.21","21.44M","0.87%" +"02/06/2024","145.41","145.96","146.74","144.52","21.52M","0.33%" +"02/05/2024","144.93","144.04","146.67","143.91","29.25M","0.97%" +"02/02/2024","143.54","140.89","143.88","138.17","42.14M","0.58%" +"02/01/2024","142.71","143.69","144.62","142.26","25.53M","0.64%" +"01/31/2024","141.80","145.39","145.59","141.55","43.91M","-7.35%" +"01/30/2024","153.05","154.01","155.04","152.77","26.58M","-1.16%" +"01/29/2024","154.84","153.64","155.20","152.92","20.91M","0.68%" +"01/26/2024","153.79","152.87","154.11","152.80","19.49M","0.10%" +"01/25/2024","153.64","151.74","154.76","151.22","21.50M","2.19%" +"01/24/2024","150.35","150.29","151.57","149.84","19.25M","1.12%" +"01/23/2024","148.68","147.72","148.86","147.19","14.11M","0.66%" +"01/22/2024","147.71","148.71","150.01","147.58","21.83M","-0.18%" +"01/19/2024","147.97","146.30","148.04","145.80","27.18M","2.06%" +"01/18/2024","144.99","143.44","145.59","143.35","18.88M","1.47%" +"01/17/2024","142.89","142.91","143.41","140.51","17.88M","-0.83%" +"01/16/2024","144.08","143.43","145.84","143.06","19.20M","-0.11%" +"01/12/2024","144.24","144.34","144.74","143.36","14.00M","0.40%" +"01/11/2024","143.67","144.90","146.66","142.21","17.47M","-0.09%" +"01/10/2024","143.80","142.52","144.52","142.46","16.64M","0.87%" +"01/09/2024","142.56","140.06","142.80","139.79","19.58M","1.44%" +"01/08/2024","140.53","138.00","140.64","137.88","17.65M","2.29%" +"01/05/2024","137.39","138.35","138.81","136.85","15.44M","-0.47%" +"01/04/2024","138.04","139.85","140.63","138.01","18.25M","-1.65%" +"01/03/2024","140.36","138.60","141.09","138.43","18.97M","0.57%" +"01/02/2024","139.56","139.60","140.61","137.74","20.07M","-0.97%" +"12/29/2023","140.93","140.68","141.43","139.90","14.88M","-0.25%" +"12/28/2023","141.28","141.85","142.27","140.83","12.19M","-0.11%" +"12/27/2023","141.44","142.83","143.32","141.05","17.29M","-0.97%" +"12/26/2023","142.82","142.98","143.95","142.50","11.17M","0.07%" +"12/22/2023","142.72","142.13","143.25","142.05","18.51M","0.65%" +"12/21/2023","141.80","140.77","142.03","140.47","18.10M","1.53%" +"12/20/2023","139.66","140.33","143.08","139.41","33.51M","1.13%" +"12/19/2023","138.10","138.00","138.77","137.45","20.66M","0.66%" +"12/18/2023","137.19","133.86","138.38","133.77","25.70M","2.50%" +"12/15/2023","133.84","132.92","134.83","132.63","58.59M","0.48%" +"12/14/2023","133.20","134.77","135.04","131.06","29.62M","-0.57%" +"12/13/2023","133.97","134.54","134.78","132.95","25.41M","0.25%" +"12/12/2023","133.64","133.27","134.54","132.83","26.58M","-0.79%" +"12/11/2023","134.70","133.82","134.79","132.89","24.50M","-1.42%" +"12/08/2023","136.64","135.66","137.99","135.57","23.02M","-1.31%" +"12/07/2023","138.45","136.60","140.00","136.23","38.42M","5.34%" +"12/06/2023","131.43","132.90","133.31","131.31","16.36M","-0.73%" +"12/05/2023","132.39","130.37","133.54","129.73","19.24M","1.35%" +"12/04/2023","130.63","131.29","131.45","129.40","24.12M","-2.02%" +"12/01/2023","133.32","133.32","133.50","132.15","24.27M","-0.45%" +"11/30/2023","133.92","136.40","136.96","132.79","29.91M","-1.82%" +"11/29/2023","136.40","138.99","139.67","136.29","21.01M","-1.60%" +"11/28/2023","138.62","137.63","138.66","137.04","17.05M","0.41%" +"11/27/2023","138.05","137.57","139.63","137.54","17.89M","-0.12%" +"11/24/2023","138.22","139.54","139.68","137.47","8.83M","-1.29%" +"11/22/2023","140.02","139.10","141.10","139.00","17.31M","1.01%" +"11/21/2023","138.62","137.94","138.96","137.71","17.65M","0.51%" +"11/20/2023","137.92","135.50","138.43","135.49","19.59M","0.72%" +"11/17/2023","136.94","137.82","138.00","135.48","25.59M","-1.27%" +"11/16/2023","138.70","136.96","138.88","136.08","17.62M","1.70%" +"11/15/2023","136.38","136.64","136.84","135.33","15.84M","0.70%" +"11/14/2023","135.43","135.65","137.24","135.10","22.32M","1.34%" +"11/13/2023","133.64","133.36","134.11","132.77","16.41M","-0.31%" +"11/10/2023","134.06","131.53","134.27","130.87","20.88M","1.80%" +"11/09/2023","131.69","133.36","133.96","131.51","17.98M","-1.18%" +"11/08/2023","133.26","132.36","133.54","132.16","15.09M","0.65%" +"11/07/2023","132.40","131.98","133.28","131.14","19.22M","0.72%" +"11/06/2023","131.45","130.22","131.56","129.93","15.36M","0.83%" +"11/03/2023","130.37","129.09","130.73","129.01","19.53M","1.39%" +"11/02/2023","128.58","129.56","130.09","128.11","24.09M","0.79%" +"11/01/2023","127.57","125.34","127.74","124.93","26.54M","1.81%" +"10/31/2023","125.30","126.27","126.56","123.93","21.12M","-0.36%" +"10/30/2023","125.75","124.46","126.55","123.88","24.17M","1.90%" +"10/27/2023","123.40","124.03","124.44","121.46","37.37M","-0.03%" +"10/26/2023","123.44","124.47","125.46","122.32","33.91M","-2.55%" +"10/25/2023","126.67","129.77","130.10","126.09","58.80M","-9.60%" +"10/24/2023","140.12","139.16","140.71","138.75","26.54M","1.61%" +"10/23/2023","137.90","136.23","139.02","135.11","20.78M","0.85%" +"10/20/2023","136.74","138.59","139.04","136.24","24.97M","-1.61%" +"10/19/2023","138.98","139.80","141.01","138.60","21.83M","-0.22%" +"10/18/2023","139.28","140.75","141.99","138.71","18.30M","-1.21%" +"10/17/2023","140.99","140.03","141.25","138.53","17.42M","0.36%" +"10/16/2023","140.49","139.73","140.90","139.32","17.35M","1.38%" +"10/13/2023","138.58","140.65","141.34","137.97","19.45M","-1.22%" +"10/12/2023","140.29","142.16","142.38","139.45","18.17M","-1.00%" +"10/11/2023","141.70","139.85","142.22","139.84","20.15M","1.80%" +"10/10/2023","139.20","139.51","140.74","138.43","19.55M","-0.22%" +"10/09/2023","139.50","137.99","139.97","136.70","16.60M","0.56%" +"10/06/2023","138.73","134.94","139.19","134.94","20.83M","2.01%" +"10/05/2023","135.99","136.13","136.50","134.46","15.92M","-0.21%" +"10/04/2023","136.27","133.66","136.57","133.43","22.85M","2.23%" +"10/03/2023","133.30","134.93","135.24","132.82","19.63M","-1.38%" +"10/02/2023","135.17","132.15","135.36","132.07","19.21M","2.52%" +"09/29/2023","131.85","134.08","134.89","131.32","23.24M","-0.96%" +"09/28/2023","133.13","130.69","134.18","130.69","18.20M","1.27%" +"09/27/2023","131.46","129.44","131.72","129.38","18.76M","1.55%" +"09/26/2023","129.45","130.91","131.40","128.19","20.38M","-2.06%" +"09/25/2023","132.17","130.77","132.22","130.03","14.65M","0.70%" +"09/22/2023","131.25","131.68","133.01","130.51","17.36M","-0.08%" +"09/21/2023","131.36","132.39","133.19","131.09","22.06M","-2.40%" +"09/20/2023","134.59","138.83","138.84","134.52","21.47M","-3.05%" +"09/19/2023","138.83","138.25","139.18","137.50","15.48M","-0.09%" +"09/18/2023","138.96","137.63","139.93","137.63","16.23M","0.48%" +"09/15/2023","138.30","138.80","139.36","137.18","48.96M","-0.50%" +"09/14/2023","138.99","138.39","139.55","137.06","19.06M","1.08%" +"09/13/2023","137.50","135.90","137.70","134.93","16.39M","1.05%" +"09/12/2023","136.07","137.13","137.64","135.93","15.21M","-1.21%" +"09/11/2023","137.74","137.38","138.26","136.55","17.18M","0.39%" +"09/08/2023","137.20","135.87","137.51","135.87","17.82M","0.73%" +"09/07/2023","136.20","134.60","136.58","133.96","16.98M","0.61%" +"09/06/2023","135.37","137.01","137.48","134.69","15.81M","-0.98%" +"09/05/2023","136.71","136.44","137.37","135.56","17.73M","-0.07%" +"09/01/2023","136.80","138.43","138.58","135.94","16.67M","-0.40%" +"08/31/2023","137.35","137.05","138.40","136.82","28.15M","0.31%" +"08/30/2023","136.93","135.57","137.25","135.02","21.77M","1.06%" +"08/29/2023","135.49","133.00","137.29","132.98","30.80M","2.81%" +"08/28/2023","131.79","132.08","133.24","130.85","16.72M","0.84%" +"08/25/2023","130.69","130.14","131.40","128.04","20.68M","0.21%" +"08/24/2023","130.42","134.73","134.97","130.30","18.68M","-2.09%" +"08/23/2023","133.21","130.85","134.07","130.51","26.50M","2.71%" +"08/22/2023","129.69","129.13","130.95","128.93","15.57M","0.59%" +"08/21/2023","128.93","127.85","129.26","127.16","21.85M","0.64%" +"08/18/2023","128.11","129.06","129.83","127.00","23.63M","-1.80%" +"08/17/2023","130.46","130.45","132.49","129.85","23.67M","1.05%" +"08/16/2023","129.11","129.28","130.90","128.46","17.55M","-0.89%" +"08/15/2023","130.27","131.59","131.99","129.82","14.77M","-1.18%" +"08/14/2023","131.83","129.85","131.91","129.59","17.53M","1.28%" +"08/11/2023","130.17","129.20","130.44","128.75","15.21M","-0.03%" +"08/10/2023","130.21","131.97","132.65","130.04","17.86M","0.05%" +"08/09/2023","130.15","132.19","132.47","129.51","17.75M","-1.28%" +"08/08/2023","131.84","130.98","131.94","130.13","16.84M","-0.08%" +"08/07/2023","131.94","129.51","132.06","129.43","17.62M","2.65%" +"08/04/2023","128.54","129.60","131.93","128.32","20.52M","-0.18%" +"08/03/2023","128.77","128.37","129.77","127.78","15.09M","0.10%" +"08/02/2023","128.64","129.84","130.42","127.85","22.71M","-2.46%" +"08/01/2023","131.89","130.85","132.92","130.75","22.22M","-0.92%" +"07/31/2023","133.11","133.01","133.83","132.13","18.38M","0.08%" +"07/28/2023","133.01","130.97","134.07","130.92","26.97M","2.42%" +"07/27/2023","129.87","131.80","133.60","129.18","35.93M","0.16%" +"07/26/2023","129.66","130.36","131.37","128.71","46.22M","5.59%" +"07/25/2023","122.79","121.88","123.69","121.53","31.82M","0.75%" +"07/24/2023","121.88","121.93","123.35","121.38","22.31M","1.30%" +"07/21/2023","120.31","120.87","121.30","119.07","56.51M","0.65%" +"07/20/2023","119.53","122.12","124.70","118.68","27.54M","-2.65%" +"07/19/2023","122.78","124.79","125.47","122.47","22.31M","-1.05%" +"07/18/2023","124.08","124.90","124.99","123.30","21.07M","-0.78%" +"07/17/2023","125.06","126.06","127.28","124.50","20.68M","-0.51%" +"07/14/2023","125.70","125.13","127.09","124.90","20.50M","0.70%" +"07/13/2023","124.83","121.54","125.33","121.06","31.54M","4.36%" +"07/12/2023","119.62","119.30","120.96","119.00","22.06M","1.62%" +"07/11/2023","117.71","116.76","118.22","115.83","18.29M","0.72%" +"07/10/2023","116.87","119.07","119.07","116.64","32.96M","-2.72%" +"07/07/2023","120.14","120.89","121.75","120.09","21.00M","-0.65%" +"07/06/2023","120.93","120.64","121.15","119.25","17.75M","-1.39%" +"07/05/2023","122.63","120.06","123.37","120.06","17.83M","1.72%" +"07/03/2023","120.56","120.32","121.02","119.71","13.89M","-0.34%" +"06/30/2023","120.97","121.10","122.03","120.88","23.87M","0.80%" +"06/29/2023","120.01","120.09","120.91","119.21","18.52M","-0.88%" +"06/28/2023","121.08","117.96","121.27","117.60","19.75M","1.74%" +"06/27/2023","119.01","117.84","119.89","116.91","27.22M","-0.07%" +"06/26/2023","119.09","121.47","122.72","118.99","23.18M","-3.19%" +"06/23/2023","123.02","122.04","123.44","121.86","29.57M","-0.69%" +"06/22/2023","123.87","120.66","123.93","119.60","20.78M","2.15%" +"06/21/2023","121.26","123.24","123.41","120.86","22.61M","-2.09%" +"06/20/2023","123.85","123.54","125.18","122.83","22.70M","-0.17%" +"06/16/2023","124.06","126.70","126.70","123.79","56.70M","-1.38%" +"06/15/2023","125.79","123.88","126.16","123.14","24.52M","1.13%" +"06/14/2023","124.38","123.80","124.79","122.16","24.66M","-0.04%" +"06/13/2023","124.43","125.65","125.86","123.85","19.29M","0.06%" +"06/12/2023","124.35","123.39","124.75","122.35","22.29M","1.20%" +"06/09/2023","122.87","122.56","124.29","122.42","20.31M","0.16%" +"06/08/2023","122.67","122.58","123.73","122.01","24.81M","-0.22%" +"06/07/2023","122.94","127.57","129.55","122.63","34.18M","-3.89%" +"06/06/2023","127.91","126.60","128.88","125.97","19.45M","1.01%" +"06/05/2023","126.63","124.61","127.99","124.38","22.67M","1.12%" +"06/02/2023","125.23","124.49","126.75","124.35","19.37M","0.69%" +"06/01/2023","124.37","123.50","125.04","123.30","25.02M","0.81%" +"05/31/2023","123.37","123.70","124.90","123.10","41.55M","-1.02%" +"05/30/2023","124.64","126.29","126.38","122.89","27.23M","-0.63%" +"05/26/2023","125.43","124.07","126.00","123.29","25.17M","0.87%" +"05/25/2023","124.35","125.21","125.98","122.90","33.81M","2.23%" +"05/24/2023","121.64","121.88","122.75","120.75","23.09M","-1.34%" +"05/23/2023","123.29","124.93","125.42","123.05","24.48M","-2.05%" +"05/22/2023","125.87","123.51","127.05","123.45","29.76M","2.13%" +"05/19/2023","123.25","124.20","126.48","122.72","30.27M","-0.22%" +"05/18/2023","123.52","121.56","123.90","121.49","27.01M","1.68%" +"05/17/2023","121.48","120.18","122.28","119.46","26.66M","1.16%" +"05/16/2023","120.09","116.83","121.20","116.83","32.37M","2.68%" +"05/15/2023","116.96","116.49","118.79","116.48","22.11M","-0.81%" +"05/12/2023","117.92","117.00","118.26","116.55","31.29M","0.87%" +"05/11/2023","116.90","115.86","118.44","114.93","57.12M","4.11%" +"05/10/2023","112.28","108.55","113.51","108.48","47.53M","4.02%" +"05/09/2023","107.94","108.78","110.60","107.72","24.78M","-0.28%" +"05/08/2023","108.24","105.79","108.42","105.79","17.27M","1.91%" +"05/05/2023","106.21","105.32","106.44","104.74","20.71M","0.96%" +"05/04/2023","105.21","106.16","106.30","104.70","19.78M","-0.86%" +"05/03/2023","106.12","106.22","108.13","105.62","17.12M","0.13%" +"05/02/2023","105.98","107.66","107.73","104.50","20.34M","-1.61%" +"05/01/2023","107.71","107.72","108.68","107.50","20.93M","-0.47%" +"04/28/2023","108.22","107.80","108.29","106.04","23.96M","-0.14%" +"04/27/2023","108.37","105.23","109.15","104.42","38.24M","3.75%" +"04/26/2023","104.45","105.56","107.02","103.27","37.07M","-0.15%" +"04/25/2023","104.61","106.61","107.44","104.56","31.41M","-2.03%" +"04/24/2023","106.78","106.05","107.32","105.36","21.41M","0.82%" +"04/21/2023","105.91","106.09","106.64","105.49","22.38M","0.01%" +"04/20/2023","105.90","104.65","106.89","104.64","22.52M","0.84%" +"04/19/2023","105.02","104.21","105.72","103.80","16.73M","-0.10%" +"04/18/2023","105.12","107.00","107.05","104.78","17.64M","-1.22%" +"04/17/2023","106.42","105.43","106.71","105.32","29.04M","-2.78%" +"04/14/2023","109.46","107.69","109.58","107.59","20.76M","1.17%" +"04/13/2023","108.19","106.47","108.26","106.44","21.65M","2.82%" +"04/12/2023","105.22","107.39","107.59","104.97","22.76M","-0.85%" +"04/11/2023","106.12","106.92","107.22","105.28","18.72M","-0.78%" +"04/10/2023","106.95","107.39","107.97","105.60","19.74M","-1.79%" +"04/06/2023","108.90","105.77","109.63","104.82","34.68M","3.76%" +"04/05/2023","104.95","106.12","106.54","104.10","21.86M","-0.16%" +"04/04/2023","105.12","104.84","106.10","104.60","20.38M","0.20%" +"04/03/2023","104.91","102.67","104.95","102.38","20.72M","0.88%" +"03/31/2023","104.00","101.71","104.19","101.44","28.11M","2.65%" +"03/30/2023","101.32","101.44","101.61","100.29","25.01M","-0.57%" +"03/29/2023","101.90","102.72","102.82","101.03","26.15M","0.53%" +"03/28/2023","101.36","103.00","103.00","100.28","24.91M","-1.65%" +"03/27/2023","103.06","105.32","105.40","102.63","25.39M","-2.83%" +"03/24/2023","106.06","105.74","106.16","104.74","25.25M","-0.19%" +"03/23/2023","106.26","105.89","107.10","105.41","31.39M","1.96%" +"03/22/2023","104.22","105.14","107.51","104.21","32.34M","-1.53%" +"03/21/2023","105.84","101.98","105.96","101.86","33.12M","3.84%" +"03/20/2023","101.93","101.06","102.58","100.79","26.03M","-0.52%" +"03/17/2023","102.46","100.84","103.49","100.75","76.14M","1.38%" +"03/16/2023","101.07","96.57","101.97","95.87","54.59M","4.68%" +"03/15/2023","96.55","93.54","97.25","93.04","38.37M","2.44%" +"03/14/2023","94.25","93.07","94.83","92.78","32.30M","2.83%" +"03/13/2023","91.66","90.57","93.08","89.94","31.51M","0.71%" +"03/10/2023","91.01","92.50","93.18","90.80","32.85M","-1.78%" +"03/09/2023","92.66","94.49","95.92","92.36","24.44M","-2.10%" +"03/08/2023","94.65","94.40","96.24","94.40","25.40M","0.51%" +"03/07/2023","94.17","95.42","96.09","93.84","24.10M","-1.48%" +"03/06/2023","95.58","94.36","96.30","94.30","28.29M","1.66%" +"03/03/2023","94.02","92.74","94.11","92.66","30.24M","1.85%" +"03/02/2023","92.31","89.86","92.48","89.77","23.34M","1.99%" +"03/01/2023","90.51","90.16","91.20","89.85","26.32M","0.23%" +"02/28/2023","90.30","89.54","91.45","89.52","30.55M","0.22%" +"02/27/2023","90.10","90.09","90.45","89.61","22.72M","0.84%" +"02/24/2023","89.35","89.63","90.13","88.86","31.30M","-1.89%" +"02/23/2023","91.07","92.13","92.13","90.01","32.42M","-0.80%" +"02/22/2023","91.80","91.93","92.36","90.87","29.89M","-0.27%" +"02/21/2023","92.05","93.24","93.41","92.00","28.37M","-2.69%" +"02/17/2023","94.59","95.07","95.75","93.45","31.10M","-1.24%" +"02/16/2023","95.78","95.54","97.88","94.97","35.64M","-1.36%" +"02/15/2023","97.10","94.74","97.34","94.36","37.03M","2.26%" +"02/14/2023","94.95","94.66","95.18","92.65","42.51M","-0.05%" +"02/13/2023","95.00","95.01","95.35","94.05","43.12M","0.15%" +"02/10/2023","94.86","95.74","97.02","94.53","49.33M","-0.63%" +"02/09/2023","95.46","100.54","100.61","93.86","97.80M","-4.54%" +"02/08/2023","100.00","102.69","103.58","98.46","73.55M","-7.44%" +"02/07/2023","108.04","103.63","108.67","103.55","33.74M","4.42%" +"02/06/2023","103.47","102.68","104.70","102.21","25.57M","-1.66%" +"02/03/2023","105.22","103.51","108.02","103.30","36.82M","-3.29%" +"02/02/2023","108.80","106.79","108.82","106.54","46.62M","7.27%" +"02/01/2023","101.43","99.74","102.19","98.42","26.39M","1.56%" +"01/31/2023","99.87","97.86","99.91","97.79","22.31M","1.96%" +"01/30/2023","97.95","98.75","99.41","97.52","24.37M","-2.74%" +"01/27/2023","100.71","99.05","101.58","98.97","29.02M","1.56%" +"01/26/2023","99.16","98.28","99.21","96.82","24.54M","2.51%" +"01/25/2023","96.73","97.20","97.72","95.26","31.00M","-2.50%" +"01/24/2023","99.21","99.55","101.09","98.70","27.39M","-1.98%" +"01/23/2023","101.21","99.13","101.40","98.75","31.79M","1.94%" +"01/20/2023","99.28","95.95","99.42","95.91","53.70M","5.72%" +"01/19/2023","93.91","91.39","94.40","91.38","28.71M","2.32%" +"01/18/2023","91.78","92.94","93.59","91.40","19.64M","-0.41%" +"01/17/2023","92.16","92.78","92.97","90.84","22.94M","-0.69%" +"01/13/2023","92.80","91.53","92.98","90.93","18.63M","0.97%" +"01/12/2023","91.91","92.40","92.62","90.57","22.75M","-0.38%" +"01/11/2023","92.26","90.06","92.45","89.74","26.00M","3.38%" +"01/10/2023","89.24","86.72","89.47","86.70","22.86M","0.50%" +"01/09/2023","88.80","89.19","90.83","88.58","23.00M","0.73%" +"01/06/2023","88.16","87.36","88.47","85.57","26.61M","1.60%" +"01/05/2023","86.77","88.07","88.21","86.56","23.14M","-2.19%" +"01/04/2023","88.71","91.01","91.24","87.80","27.05M","-1.10%" +"01/03/2023","89.70","89.83","91.55","89.02","20.74M","1.09%" +"12/30/2022","88.73","87.36","88.83","87.03","19.19M","-0.25%" +"12/29/2022","88.95","87.03","89.36","86.99","18.28M","2.88%" +"12/28/2022","86.46","87.50","88.52","86.37","17.88M","-1.67%" +"12/27/2022","87.93","89.31","89.50","87.54","15.47M","-2.09%" +"12/23/2022","89.81","87.62","90.10","87.62","17.82M","1.76%" +"12/22/2022","88.26","88.93","89.18","86.94","23.66M","-2.20%" +"12/21/2022","90.25","89.73","90.92","88.91","20.34M","0.69%" +"12/20/2022","89.63","88.73","89.78","88.04","21.98M","0.54%" +"12/19/2022","89.15","90.88","91.20","88.93","23.02M","-1.88%" +"12/16/2022","90.86","91.20","91.75","90.01","48.49M","-0.37%" +"12/15/2022","91.20","93.54","94.03","90.43","28.30M","-4.31%" +"12/14/2022","95.31","95.54","97.22","93.94","26.45M","-0.56%" +"12/13/2022","95.85","98.07","99.80","95.38","34.79M","2.45%" +"12/12/2022","93.56","93.09","93.87","91.90","27.38M","0.53%" +"12/09/2022","93.07","93.90","94.49","93.02","21.89M","-0.94%" +"12/08/2022","93.95","95.69","95.87","93.80","25.59M","-1.26%" +"12/07/2022","95.15","96.77","97.31","95.03","26.65M","-2.22%" +"12/06/2022","97.31","99.67","100.21","96.76","20.88M","-2.56%" +"12/05/2022","99.87","99.82","101.75","99.36","19.96M","-0.95%" +"12/02/2022","100.83","99.37","101.15","99.17","18.82M","-0.44%" +"12/01/2022","101.28","101.40","102.59","100.67","21.77M","-0.17%" +"11/30/2022","101.45","95.12","101.45","94.67","39.89M","6.30%" +"11/29/2022","95.44","96.00","96.39","94.39","20.22M","-0.84%" +"11/28/2022","96.25","97.20","97.83","95.89","19.98M","-1.38%" +"11/25/2022","97.60","98.46","98.94","97.53","8.57M","-1.23%" +"11/23/2022","98.82","97.34","99.07","97.34","17.57M","1.53%" +"11/22/2022","97.33","96.16","97.55","94.41","18.87M","1.57%" +"11/21/2022","95.83","97.56","98.72","95.67","18.70M","-2.01%" +"11/18/2022","97.80","99.01","99.16","96.74","24.97M","-0.71%" +"11/17/2022","98.50","97.18","99.48","97.10","21.82M","-0.49%" +"11/16/2022","98.99","98.02","99.85","97.90","24.66M","0.27%" +"11/15/2022","98.72","98.67","100.42","97.02","31.83M","2.80%" +"11/14/2022","96.03","95.50","97.18","95.11","24.17M","-0.72%" +"11/11/2022","96.73","94.71","97.36","94.16","30.57M","2.72%" +"11/10/2022","94.17","92.34","94.55","91.65","42.37M","7.75%" +"11/09/2022","87.40","88.54","89.49","87.36","26.74M","-1.70%" +"11/08/2022","88.91","89.16","90.40","87.65","30.17M","0.29%" +"11/07/2022","88.65","87.34","88.94","86.96","26.90M","2.25%" +"11/04/2022","86.70","85.51","86.73","83.88","40.17M","3.84%" +"11/03/2022","83.49","86.35","86.55","83.45","48.51M","-4.11%" +"11/02/2022","87.07","90.91","91.30","87.01","43.55M","-3.79%" +"11/01/2022","90.50","95.59","96.17","90.43","43.22M","-4.39%" +"10/31/2022","94.66","95.78","96.35","94.38","29.87M","-1.99%" +"10/28/2022","96.58","92.53","96.86","92.32","35.70M","4.30%" +"10/27/2022","92.60","94.31","95.17","91.90","54.04M","-2.34%" +"10/26/2022","94.82","96.76","98.54","94.57","71.67M","-9.63%" +"10/25/2022","104.93","103.30","105.10","103.02","29.91M","1.90%" +"10/24/2022","102.97","102.09","103.10","100.30","24.68M","1.47%" +"10/21/2022","101.48","98.46","101.62","98.23","28.99M","0.94%" +"10/20/2022","100.53","100.82","103.00","99.97","25.13M","0.24%" +"10/19/2022","100.29","100.70","101.66","99.64","21.57M","-1.08%" +"10/18/2022","101.39","103.94","104.22","100.65","21.61M","0.61%" +"10/17/2022","100.78","99.52","101.77","99.51","23.31M","3.70%" +"10/14/2022","97.18","100.63","101.29","97.03","22.62M","-2.54%" +"10/13/2022","99.71","95.93","100.53","95.27","32.81M","1.43%" +"10/12/2022","98.30","98.27","99.65","97.67","17.34M","0.25%" +"10/11/2022","98.05","98.25","100.12","97.25","21.62M","-0.67%" +"10/10/2022","98.71","99.85","99.99","97.87","16.53M","-0.86%" +"10/07/2022","99.57","100.65","101.42","99.21","24.25M","-2.61%" +"10/06/2022","102.24","101.50","103.73","101.50","17.16M","0.02%" +"10/05/2022","102.22","100.69","102.74","99.74","18.48M","-0.19%" +"10/04/2022","102.41","101.04","102.72","101.04","22.58M","3.13%" +"10/03/2022","99.30","97.22","99.97","97.02","24.84M","3.28%" +"09/30/2022","96.15","97.73","99.49","96.03","26.28M","-1.98%" +"09/29/2022","98.09","99.30","99.30","96.52","21.92M","-2.63%" +"09/28/2022","100.74","98.02","101.40","97.80","24.62M","2.70%" +"09/27/2022","98.09","99.91","100.46","97.34","24.22M","-0.73%" +"09/26/2022","98.81","98.61","100.44","98.38","22.44M","-0.36%" +"09/23/2022","99.17","100.06","100.11","98.01","25.66M","-1.39%" +"09/22/2022","100.57","99.45","101.68","99.41","21.27M","0.56%" +"09/21/2022","100.01","102.24","103.49","99.99","26.60M","-1.79%" +"09/20/2022","101.83","102.88","103.17","101.12","24.00M","-1.95%" +"09/19/2022","103.85","102.54","104.02","102.37","19.74M","0.21%" +"09/16/2022","103.63","102.97","104.03","101.86","64.54M","-0.26%" +"09/15/2022","103.90","105.01","106.21","103.31","26.49M","-1.86%" +"09/14/2022","105.87","105.44","106.10","104.50","22.12M","0.53%" +"09/13/2022","105.31","108.89","109.37","105.00","33.01M","-5.86%" +"09/12/2022","111.87","111.99","112.64","110.93","19.73M","0.08%" +"09/09/2022","111.78","110.05","112.00","110.00","21.75M","2.16%" +"09/08/2022","109.42","109.18","110.58","108.06","21.66M","-0.96%" +"09/07/2022","110.48","107.76","110.99","107.61","22.99M","2.79%" +"09/06/2022","107.48","108.14","108.88","106.51","20.57M","-1.10%" +"09/02/2022","108.68","111.34","111.68","108.13","20.62M","-1.69%" +"09/01/2022","110.55","109.20","111.22","108.19","22.78M","1.28%" +"08/31/2022","109.15","111.63","111.77","109.05","25.90M","-0.69%" +"08/30/2022","109.91","111.03","111.37","108.80","20.55M","-0.39%" +"08/29/2022","110.34","110.78","111.96","109.81","20.39M","-0.86%" +"08/26/2022","111.30","115.81","116.60","111.22","31.70M","-5.44%" +"08/25/2022","117.70","115.15","117.78","115.05","14.87M","2.62%" +"08/24/2022","114.70","114.45","115.72","113.78","16.05M","-0.06%" +"08/23/2022","114.77","114.32","115.93","114.30","14.39M","-0.26%" +"08/22/2022","115.07","116.10","116.50","114.67","19.32M","-2.58%" +"08/19/2022","118.12","119.87","120.00","117.67","20.19M","-2.27%" +"08/18/2022","120.86","120.23","121.69","119.55","15.65M","0.45%" +"08/17/2022","120.32","120.93","122.15","120.20","17.59M","-1.79%" +"08/16/2022","122.51","122.32","123.23","121.54","15.63M","-0.30%" +"08/15/2022","122.88","122.21","123.26","121.57","15.52M","0.19%" +"08/12/2022","122.65","121.16","122.65","120.40","16.12M","2.36%" +"08/11/2022","119.82","122.08","122.34","119.55","16.67M","-0.69%" +"08/10/2022","120.65","119.59","121.78","119.36","20.50M","2.68%" +"08/09/2022","117.50","117.99","118.20","116.56","15.42M","-0.54%" +"08/08/2022","118.14","119.12","120.86","117.83","17.06M","-0.07%" +"08/05/2022","118.22","116.93","118.86","116.71","15.62M","-0.55%" +"08/04/2022","118.87","118.30","119.50","117.71","15.76M","0.08%" +"08/03/2022","118.78","116.34","119.42","116.15","25.30M","2.48%" +"08/02/2022","115.90","114.43","117.08","114.26","17.91M","0.36%" +"08/01/2022","115.48","115.53","117.12","114.69","22.86M","-0.99%" +"07/29/2022","116.64","113.40","116.90","113.23","31.34M","1.79%" +"07/28/2022","114.59","112.80","114.70","111.85","23.30M","0.87%" +"07/27/2022","113.60","109.60","114.40","108.42","41.47M","7.74%" +"07/26/2022","105.44","107.43","107.74","104.76","36.63M","-2.56%" +"07/25/2022","108.21","108.88","110.58","107.01","28.29M","-0.14%" +"07/22/2022","108.36","111.81","113.18","107.60","44.46M","-5.81%" +"07/21/2022","115.04","115.09","115.21","111.91","27.27M","0.30%" +"07/20/2022","114.70","114.06","116.33","113.26","26.78M","0.07%" +"07/19/2022","114.62","111.73","114.81","110.50","30.99M","4.29%" +"07/18/2022","109.91","113.44","114.80","109.30","33.35M","-2.53%" +"07/15/2022","112.77","112.96","114.00","111.82","34.33M","1.19%" +"07/14/2022","111.44","110.83","111.99","109.33","32.37M","-0.67%" +"07/13/2022","112.19","112.64","115.16","111.82","38.96M","-2.32%" +"07/12/2022","114.85","116.84","117.85","114.62","24.97M","-1.44%" +"07/11/2022","116.52","118.65","118.79","116.23","26.83M","-3.03%" +"07/08/2022","120.17","117.55","120.43","117.51","29.08M","0.72%" +"07/07/2022","119.31","116.01","119.86","115.53","32.18M","3.55%" +"07/06/2022","115.21","114.09","116.35","112.25","28.85M","1.16%" +"07/05/2022","113.89","107.51","114.05","106.25","36.43M","4.41%" +"07/01/2022","109.08","108.34","109.81","107.11","31.03M","-0.27%" +"06/30/2022","109.37","110.50","111.33","107.31","38.05M","-2.57%" +"06/29/2022","112.26","112.15","113.66","111.55","18.63M","-0.28%" +"06/28/2022","112.57","116.35","117.86","112.44","28.32M","-3.47%" +"06/27/2022","116.62","118.93","119.25","116.00","32.84M","-1.62%" +"06/24/2022","118.54","113.60","118.64","113.60","39.12M","5.19%" +"06/23/2022","112.68","112.95","113.20","111.03","24.71M","0.58%" +"06/22/2022","112.03","111.16","113.77","110.72","23.92M","0.02%" +"06/21/2022","112.01","109.70","112.67","109.29","39.01M","3.85%" +"06/17/2022","107.87","106.54","109.25","105.63","43.52M","1.15%" +"06/16/2022","106.64","108.15","109.29","105.79","35.31M","-3.40%" +"06/15/2022","110.39","108.90","112.06","108.12","33.19M","2.98%" +"06/14/2022","107.19","106.89","108.46","106.35","25.48M","0.30%" +"06/13/2022","106.88","107.45","109.22","106.59","36.76M","-4.08%" +"06/10/2022","111.43","112.78","113.50","110.86","31.35M","-3.04%" +"06/09/2022","114.92","116.34","118.35","114.87","23.14M","-1.98%" +"06/08/2022","117.24","116.88","118.65","116.70","22.54M","0.01%" +"06/07/2022","117.23","115.65","117.75","115.13","26.41M","0.19%" +"06/06/2022","117.01","116.74","119.40","116.53","23.79M","2.14%" +"06/03/2022","114.56","115.99","116.36","113.67","24.95M","-2.70%" +"06/02/2022","117.75","114.19","117.90","113.31","27.50M","3.16%" +"06/01/2022","114.14","114.93","117.40","113.55","28.63M","0.09%" +"05/31/2022","114.04","113.08","116.43","112.57","51.30M","1.10%" +"05/27/2022","112.80","109.79","112.87","109.55","29.92M","4.16%" +"05/26/2022","108.30","106.05","108.96","105.49","30.29M","2.32%" +"05/25/2022","105.84","105.14","106.54","104.21","37.90M","-0.08%" +"05/24/2022","105.93","106.38","106.39","102.21","60.39M","-5.14%" +"05/23/2022","111.67","110.10","112.01","109.15","31.56M","2.15%" +"05/20/2022","109.31","112.09","112.55","106.37","37.59M","-1.29%" +"05/19/2022","110.75","111.84","113.59","110.47","29.19M","-1.47%" +"05/18/2022","112.40","115.24","115.70","112.14","27.98M","-3.69%" +"05/17/2022","116.70","117.23","117.23","115.34","21.58M","1.66%" +"05/16/2022","114.79","115.38","116.61","114.33","23.28M","-1.48%" +"05/13/2022","116.52","114.85","118.08","114.00","29.74M","2.96%" +"05/12/2022","113.16","111.94","114.86","110.11","41.46M","-0.70%" +"05/11/2022","113.96","113.71","116.67","113.65","36.50M","-0.54%" +"05/10/2022","114.58","116.04","116.69","113.38","31.16M","1.33%" +"05/09/2022","113.08","113.30","115.56","112.55","34.52M","-2.23%" +"05/06/2022","115.66","115.52","117.50","114.14","35.31M","-0.93%" +"05/05/2022","116.75","120.22","121.23","115.18","43.09M","-4.76%" +"05/04/2022","122.57","118.00","123.14","115.74","33.23M","3.76%" +"05/03/2022","118.13","116.76","119.30","116.63","21.22M","0.83%" +"05/02/2022","117.16","113.91","117.34","113.40","30.28M","1.91%" +"04/29/2022","114.97","117.58","118.96","114.69","33.69M","-3.72%" +"04/28/2022","119.41","117.11","120.44","115.14","36.79M","3.82%" +"04/27/2022","115.02","114.37","117.50","113.12","62.24M","-3.75%" +"04/26/2022","119.51","122.75","122.75","119.16","49.39M","-3.04%" +"04/25/2022","123.25","119.43","123.28","118.77","34.52M","3.04%" +"04/22/2022","119.61","125.00","125.45","119.14","46.41M","-4.26%" +"04/21/2022","124.94","129.35","130.31","124.65","30.16M","-2.58%" +"04/20/2022","128.25","131.28","131.92","127.89","22.61M","-1.75%" +"04/19/2022","130.53","128.08","130.90","127.45","22.72M","2.01%" +"04/18/2022","127.96","127.41","128.71","126.58","14.92M","0.56%" +"04/14/2022","127.25","130.65","130.71","127.11","23.48M","-2.33%" +"04/13/2022","130.29","128.63","130.66","128.44","19.54M","1.49%" +"04/12/2022","128.37","132.42","132.42","127.58","23.00M","-1.10%" +"04/11/2022","129.80","132.90","132.94","129.62","24.19M","-3.14%" +"04/08/2022","134.01","136.25","136.25","133.75","16.43M","-1.80%" +"04/07/2022","136.46","136.62","137.70","134.86","19.45M","-0.52%" +"04/06/2022","137.18","139.16","139.85","136.42","23.57M","-2.76%" +"04/05/2022","141.06","143.40","143.59","140.94","19.26M","-1.80%" +"04/04/2022","143.64","140.82","144.04","140.82","19.08M","2.09%" +"04/01/2022","140.70","140.01","140.95","138.80","23.48M","0.75%" +"03/31/2022","139.65","142.45","142.64","139.62","29.52M","-2.10%" +"03/30/2022","142.64","142.87","143.48","142.17","21.05M","-0.42%" +"03/29/2022","143.25","143.16","144.16","142.48","28.68M","0.92%" +"03/28/2022","141.95","140.68","141.98","139.83","23.77M","0.30%" +"03/25/2022","141.52","141.75","141.96","139.70","19.29M","0.15%" +"03/24/2022","141.31","139.27","141.40","138.04","20.54M","2.03%" +"03/23/2022","138.50","139.14","140.02","138.17","25.30M","-1.26%" +"03/22/2022","140.28","136.50","141.50","136.50","29.78M","2.78%" +"03/21/2022","136.48","136.85","137.58","134.61","26.63M","-0.24%" +"03/18/2022","136.80","133.88","136.91","132.93","45.90M","1.64%" +"03/17/2022","134.60","133.32","134.74","132.72","23.99M","0.68%" +"03/16/2022","133.69","131.00","133.77","129.20","32.06M","3.11%" +"03/15/2022","129.66","127.74","130.52","126.57","30.29M","2.30%" +"03/14/2022","126.74","130.57","131.03","126.41","30.25M","-2.86%" +"03/11/2022","130.48","134.00","134.20","130.30","26.60M","-1.66%" +"03/10/2022","132.68","131.46","133.54","131.40","24.27M","-0.88%" +"03/09/2022","133.87","131.40","134.20","130.09","32.26M","5.18%" +"03/08/2022","127.28","126.25","131.25","125.86","35.25M","0.64%" +"03/07/2022","126.46","131.90","131.90","126.41","39.18M","-4.28%" +"03/04/2022","132.12","133.38","134.20","130.41","24.47M","-1.63%" +"03/03/2022","134.31","135.98","136.71","133.43","19.78M","-0.33%" +"03/02/2022","134.75","134.61","135.62","133.43","23.97M","0.43%" +"03/01/2022","134.17","134.48","136.11","133.38","24.64M","-0.54%" +"02/28/2022","134.89","133.28","135.64","132.83","29.68M","0.28%" +"02/25/2022","134.52","133.53","135.39","131.76","26.24M","1.39%" +"02/24/2022","132.67","125.00","133.04","124.76","43.17M","3.99%" +"02/23/2022","127.58","131.08","131.75","127.50","26.43M","-1.41%" +"02/22/2022","129.40","129.99","131.90","127.74","38.91M","-0.82%" +"02/18/2022","130.47","133.04","133.82","130.31","31.86M","-1.39%" +"02/17/2022","132.31","136.15","136.84","132.20","30.97M","-3.77%" +"02/16/2022","137.49","136.43","137.95","134.82","25.61M","0.78%" +"02/15/2022","136.43","137.47","137.90","135.54","26.58M","0.84%" +"02/14/2022","135.30","133.37","136.17","133.30","26.79M","0.87%" +"02/11/2022","134.13","138.75","139.28","133.29","38.81M","-3.23%" +"02/10/2022","138.60","139.50","141.43","138.05","33.02M","-2.01%" +"02/09/2022","141.45","140.85","142.18","140.38","28.63M","1.61%" +"02/08/2022","139.21","138.99","139.84","136.87","34.26M","0.19%" +"02/07/2022","138.94","143.71","143.85","138.70","44.61M","-2.85%" +"02/04/2022","143.02","143.02","144.54","139.82","49.22M","0.26%" +"02/03/2022","142.65","145.29","149.12","142.21","56.93M","-3.64%" +"02/02/2022","148.04","151.86","152.10","145.56","89.75M","7.37%" +"02/01/2022","137.88","137.84","138.20","134.57","51.20M","1.61%" +"01/31/2022","135.70","134.20","135.84","132.27","34.06M","1.81%" +"01/28/2022","133.29","130.00","133.37","128.69","30.52M","3.23%" +"01/27/2022","129.12","131.36","132.61","128.94","30.29M","-0.09%" +"01/26/2022","129.24","130.59","132.81","127.15","39.63M","1.97%" +"01/25/2022","126.74","128.44","129.34","126.38","36.01M","-2.78%" +"01/24/2022","130.37","126.03","130.78","124.64","55.29M","0.22%" +"01/21/2022","130.09","133.01","134.76","130.00","41.92M","-2.56%" +"01/20/2022","133.51","136.51","137.91","133.14","21.93M","-1.58%" +"01/19/2022","135.65","136.94","138.40","135.50","20.80M","-0.47%" +"01/18/2022","136.29","136.60","137.39","135.62","27.40M","-2.50%" +"01/14/2022","139.79","137.50","141.20","137.50","23.83M","0.47%" +"01/13/2022","139.13","141.84","143.19","138.91","26.57M","-1.78%" +"01/12/2022","141.65","141.55","142.81","141.11","23.64M","1.16%" +"01/11/2022","140.02","138.18","140.33","136.81","23.50M","1.05%" +"01/10/2022","138.57","135.10","138.64","133.14","34.10M","1.15%" +"01/07/2022","137.00","137.91","138.25","135.79","19.41M","-0.40%" +"01/06/2022","137.55","137.50","139.69","136.76","29.05M","-0.07%" +"01/05/2022","137.65","144.18","144.30","137.52","49.64M","-4.69%" +"01/04/2022","144.42","145.55","146.61","143.82","22.93M","-0.45%" +"01/03/2022","145.07","144.48","145.55","143.50","25.22M","0.27%" \ No newline at end of file diff --git a/SAMPLE_DATA/NASDAQ Composite Historical Data.csv b/SAMPLE_DATA/NASDAQ Composite Historical Data.csv new file mode 100644 index 0000000..8e52401 --- /dev/null +++ b/SAMPLE_DATA/NASDAQ Composite Historical Data.csv @@ -0,0 +1,640 @@ +"Date","Price","Open","High","Low","Vol.","Change %" +"07/19/2024","17,726.94","17,835.59","17,935.14","17,691.43","1.12B","-0.81%" +"07/18/2024","17,871.22","18,119.15","18,130.87","17,759.54","1.13B","-0.70%" +"07/17/2024","17,996.93","18,188.19","18,223.24","17,972.87","1.26B","-2.77%" +"07/16/2024","18,509.34","18,534.27","18,576.83","18,386.07","1.12B","0.20%" +"07/15/2024","18,472.57","18,485.91","18,641.53","18,397.83","1.08B","0.40%" +"07/12/2024","18,398.45","18,303.64","18,556.73","18,293.60","1.10B","0.63%" +"07/11/2024","18,283.41","18,659.25","18,671.07","18,238.78","1.23B","-1.95%" +"07/10/2024","18,647.45","18,512.09","18,655.19","18,467.58","971.36M","1.18%" +"07/09/2024","18,429.29","18,465.02","18,511.89","18,381.60","914.80M","0.14%" +"07/08/2024","18,403.74","18,371.86","18,416.94","18,342.60","984.76M","0.28%" +"07/05/2024","18,352.76","18,200.60","18,366.31","18,197.13","963.80M","0.90%" +"07/03/2024","18,188.30","18,016.12","18,188.30","18,016.12","692.06M","0.88%" +"07/02/2024","18,028.76","17,808.04","18,031.29","17,802.24","932.12M","0.84%" +"07/01/2024","17,879.30","17,773.90","17,894.28","17,657.64","1.03B","0.83%" +"06/28/2024","17,732.60","17,891.10","18,035.00","17,723.83","3.78B","-0.71%" +"06/27/2024","17,858.68","17,793.95","17,892.78","17,765.42","1.05B","0.30%" +"06/26/2024","17,805.16","17,697.27","17,813.55","17,687.07","1.04B","0.49%" +"06/25/2024","17,717.65","17,572.16","17,734.35","17,546.63","1.08B","1.26%" +"06/24/2024","17,496.82","17,640.26","17,730.12","17,494.02","1.14B","-1.09%" +"06/21/2024","17,689.36","17,681.01","17,787.34","17,620.57","3.54B","-0.18%" +"06/20/2024","17,721.59","17,913.94","17,936.79","17,650.70","1.26B","-0.79%" +"06/18/2024","17,862.23","17,856.76","17,890.52","17,796.88","1.11B","0.03%" +"06/17/2024","17,857.02","17,697.30","17,935.98","17,636.36","1.04B","0.95%" +"06/14/2024","17,688.88","17,621.18","17,693.43","17,590.80","965.43M","0.12%" +"06/13/2024","17,667.56","17,715.27","17,741.80","17,566.32","981.98M","0.34%" +"06/12/2024","17,608.44","17,502.15","17,725.39","17,490.64","1.13B","1.53%" +"06/11/2024","17,343.55","17,160.42","17,345.05","17,107.99","941.87M","0.88%" +"06/10/2024","17,192.53","17,083.45","17,213.45","17,057.34","1.01B","0.35%" +"06/07/2024","17,133.13","17,124.13","17,229.31","17,090.04","897.39M","-0.23%" +"06/06/2024","17,173.12","17,204.87","17,235.73","17,123.59","940.92M","-0.09%" +"06/05/2024","17,187.90","16,974.48","17,187.92","16,955.56","1.01B","1.96%" +"06/04/2024","16,857.05","16,823.88","16,891.87","16,750.39","975.74M","0.17%" +"06/03/2024","16,828.67","16,865.70","16,909.89","16,646.43","1.06B","0.56%" +"05/31/2024","16,735.02","16,771.90","16,789.27","16,445.54","1.81B","-0.01%" +"05/30/2024","16,737.08","16,878.63","16,900.46","16,690.36","1.11B","-1.08%" +"05/29/2024","16,920.58","16,879.35","16,989.60","16,873.97","1.15B","-0.58%" +"05/28/2024","17,019.88","16,988.31","17,032.65","16,917.51","1.10B","0.59%" +"05/24/2024","16,920.79","16,786.79","16,947.79","16,771.58","953.61M","1.10%" +"05/23/2024","16,736.03","16,996.38","16,996.38","16,678.37","1.21B","-0.39%" +"05/22/2024","16,801.54","16,839.02","16,855.27","16,712.09","1.15B","-0.18%" +"05/21/2024","16,832.62","16,736.10","16,839.02","16,719.97","1.02B","0.22%" +"05/20/2024","16,794.87","16,702.02","16,823.83","16,695.69","1.12B","0.65%" +"05/17/2024","16,685.97","16,708.49","16,726.41","16,613.84","1.43B","-0.07%" +"05/16/2024","16,698.32","16,738.11","16,797.83","16,693.45","1.47B","-0.26%" +"05/15/2024","16,742.39","16,601.14","16,749.74","16,544.09","1.32B","1.40%" +"05/14/2024","16,511.18","16,391.16","16,526.27","16,386.44","1.24B","0.75%" +"05/13/2024","16,388.24","16,400.31","16,407.05","16,334.86","953.22M","0.29%" +"05/10/2024","16,340.87","16,389.02","16,437.39","16,293.52","940.76M","-0.03%" +"05/09/2024","16,346.26","16,323.74","16,362.79","16,241.98","945.46M","0.27%" +"05/08/2024","16,302.76","16,226.07","16,341.65","16,226.07","976.92M","-0.18%" +"05/07/2024","16,332.55","16,358.34","16,397.39","16,303.84","1.02B","-0.10%" +"05/06/2024","16,349.25","16,208.54","16,350.08","16,197.86","919.31M","1.19%" +"05/03/2024","16,156.33","16,147.48","16,204.71","16,068.34","1.03B","1.99%" +"05/02/2024","15,840.96","15,758.11","15,862.79","15,604.73","1.05B","1.51%" +"05/01/2024","15,605.48","15,646.09","15,926.22","15,557.64","1.12B","-0.33%" +"04/30/2024","15,657.82","15,920.89","15,979.36","15,655.67","1.15B","-2.04%" +"04/29/2024","15,983.08","16,007.00","16,021.50","15,885.89","953.16M","0.35%" +"04/26/2024","15,927.90","15,821.33","15,981.00","15,770.72","939.96M","2.03%" +"04/25/2024","15,611.76","15,375.26","15,644.51","15,343.91","990.23M","-0.64%" +"04/24/2024","15,712.75","15,805.60","15,839.00","15,634.44","955.27M","0.10%" +"04/23/2024","15,696.64","15,525.55","15,730.35","15,510.58","981.75M","1.59%" +"04/22/2024","15,451.30","15,396.13","15,539.00","15,265.66","930.20M","1.11%" +"04/19/2024","15,282.01","15,547.10","15,576.70","15,222.78","1.11B","-2.05%" +"04/18/2024","15,601.50","15,705.70","15,786.12","15,587.50","936.42M","-0.52%" +"04/17/2024","15,683.37","15,942.29","15,957.03","15,654.51","896.71M","-1.15%" +"04/16/2024","15,865.25","15,856.38","15,965.79","15,822.02","912.04M","-0.12%" +"04/15/2024","15,885.02","16,276.47","16,295.27","15,863.88","980.76M","-1.79%" +"04/12/2024","16,175.09","16,293.03","16,341.46","16,125.33","906.05M","-1.62%" +"04/11/2024","16,442.20","16,236.20","16,464.60","16,154.65","888.86M","1.68%" +"04/10/2024","16,170.36","16,104.01","16,200.10","16,092.02","992.41M","-0.84%" +"04/09/2024","16,306.64","16,328.76","16,348.18","16,141.15","888.26M","0.32%" +"04/08/2024","16,253.96","16,285.18","16,323.60","16,220.72","852.61M","0.03%" +"04/05/2024","16,248.52","16,095.40","16,326.50","16,080.49","903.32M","1.24%" +"04/04/2024","16,049.08","16,418.57","16,468.04","16,046.56","1.07B","-1.40%" +"04/03/2024","16,277.46","16,178.79","16,340.74","16,169.31","1.01B","0.23%" +"04/02/2024","16,240.45","16,199.24","16,251.41","16,137.24","1.03B","-0.95%" +"04/01/2024","16,396.83","16,397.05","16,490.65","16,327.89","930.02M","0.11%" +"03/28/2024","16,379.46","16,377.23","16,420.92","16,347.38","1.22B","-0.12%" +"03/27/2024","16,399.52","16,424.76","16,431.82","16,279.17","986.80M","0.51%" +"03/26/2024","16,315.70","16,446.85","16,476.38","16,312.95","1.00B","-0.42%" +"03/25/2024","16,384.47","16,335.30","16,441.17","16,315.72","896.53M","-0.27%" +"03/22/2024","16,428.82","16,387.83","16,467.62","16,361.00","880.01M","0.16%" +"03/21/2024","16,401.84","16,517.24","16,538.86","16,393.90","1.06B","0.20%" +"03/20/2024","16,369.41","16,185.76","16,377.44","16,127.48","1.03B","1.25%" +"03/19/2024","16,166.79","16,031.93","16,175.59","15,951.86","1.04B","0.39%" +"03/18/2024","16,103.45","16,154.92","16,247.59","16,094.17","1.04B","0.82%" +"03/15/2024","15,973.17","16,043.58","16,055.33","15,925.91","3.07B","-0.96%" +"03/14/2024","16,128.53","16,209.19","16,245.32","16,039.68","1.18B","-0.30%" +"03/13/2024","16,177.77","16,220.11","16,233.29","16,143.34","1.09B","-0.54%" +"03/12/2024","16,265.64","16,116.98","16,275.45","15,992.98","1.02B","1.54%" +"03/11/2024","16,019.27","16,052.63","16,085.95","15,978.04","970.77M","-0.41%" +"03/08/2024","16,085.11","16,322.10","16,449.70","16,059.50","1.09B","-1.16%" +"03/07/2024","16,273.38","16,147.32","16,309.02","16,096.01","1.03B","1.51%" +"03/06/2024","16,031.54","16,092.00","16,128.56","15,956.66","1.11B","0.58%" +"03/05/2024","15,939.59","16,077.74","16,087.57","15,862.63","1.16B","-1.65%" +"03/04/2024","16,207.51","16,264.21","16,289.06","16,199.06","1.17B","-0.41%" +"03/01/2024","16,274.94","16,109.83","16,302.24","16,096.60","1.10B","1.14%" +"02/29/2024","16,091.92","16,059.34","16,115.96","15,931.70","1.65B","0.90%" +"02/28/2024","15,947.74","15,969.14","16,003.56","15,924.72","1.10B","-0.55%" +"02/27/2024","16,035.30","16,013.98","16,046.10","15,940.51","1.10B","0.37%" +"02/26/2024","15,976.25","16,014.45","16,054.90","15,973.90","1.06B","-0.13%" +"02/23/2024","15,996.82","16,094.80","16,134.22","15,954.50","1.00B","-0.28%" +"02/22/2024","16,041.62","15,904.48","16,061.82","15,869.24","1.14B","2.96%" +"02/21/2024","15,580.87","15,532.12","15,583.68","15,451.65","984.02M","-0.32%" +"02/20/2024","15,630.78","15,679.84","15,730.47","15,508.50","1.10B","-0.92%" +"02/16/2024","15,775.65","15,910.43","15,917.41","15,752.02","1.12B","-0.82%" +"02/15/2024","15,906.17","15,865.30","15,911.22","15,779.71","1.22B","0.30%" +"02/14/2024","15,859.15","15,781.71","15,865.51","15,683.94","1.08B","1.30%" +"02/13/2024","15,655.60","15,598.88","15,770.42","15,551.44","1.21B","-1.80%" +"02/12/2024","15,942.54","15,980.62","16,080.07","15,917.87","1.09B","-0.30%" +"02/09/2024","15,990.66","15,842.38","16,007.29","15,831.76","1.08B","1.25%" +"02/08/2024","15,793.71","15,762.23","15,813.27","15,739.18","1.02B","0.24%" +"02/07/2024","15,756.64","15,690.35","15,770.67","15,645.80","943.13M","0.95%" +"02/06/2024","15,609.00","15,638.19","15,652.75","15,515.25","931.55M","0.07%" +"02/05/2024","15,597.68","15,613.99","15,637.88","15,471.68","923.28M","-0.20%" +"02/02/2024","15,628.95","15,403.16","15,664.21","15,366.78","956.87M","1.74%" +"02/01/2024","15,361.64","15,254.02","15,372.13","15,208.88","1.01B","1.30%" +"01/31/2024","15,164.01","15,324.19","15,405.55","15,158.49","1.29B","-2.23%" +"01/30/2024","15,509.90","15,604.08","15,619.23","15,484.67","915.72M","-0.76%" +"01/29/2024","15,628.04","15,470.66","15,630.58","15,449.87","959.39M","1.12%" +"01/26/2024","15,455.36","15,474.85","15,538.84","15,433.04","857.50M","-0.36%" +"01/25/2024","15,510.50","15,555.62","15,597.25","15,430.68","998.98M","0.18%" +"01/24/2024","15,481.92","15,560.61","15,629.07","15,468.91","932.89M","0.36%" +"01/23/2024","15,425.94","15,391.41","15,432.35","15,337.23","959.54M","0.43%" +"01/22/2024","15,360.29","15,393.05","15,438.85","15,333.63","1.04B","0.32%" +"01/19/2024","15,310.97","15,122.38","15,310.97","15,087.20","1.14B","1.70%" +"01/18/2024","15,055.65","14,994.52","15,066.81","14,911.11","1.04B","1.35%" +"01/17/2024","14,855.62","14,814.77","14,865.76","14,706.23","944.50M","-0.59%" +"01/16/2024","14,944.35","14,908.26","15,004.35","14,863.81","1.10B","-0.19%" +"01/12/2024","14,972.76","15,001.01","15,047.25","14,931.88","865.51M","0.02%" +"01/11/2024","14,970.18","15,020.95","15,063.61","14,800.38","1.00B","0.00%" +"01/10/2024","14,969.65","14,877.70","14,998.20","14,842.70","904.43M","0.75%" +"01/09/2024","14,857.71","14,744.13","14,894.32","14,716.71","959.65M","0.09%" +"01/08/2024","14,843.77","14,564.47","14,846.90","14,560.20","1.14B","2.20%" +"01/05/2024","14,524.07","14,500.11","14,625.19","14,477.57","1.01B","0.09%" +"01/04/2024","14,510.30","14,532.23","14,632.77","14,504.78","1.04B","-0.56%" +"01/03/2024","14,592.21","14,641.47","14,694.58","14,577.44","1.06B","-1.18%" +"01/02/2024","14,765.94","14,873.70","14,887.80","14,682.38","1.08B","-1.63%" +"12/29/2023","15,011.35","15,099.20","15,111.41","14,955.37","1.04B","-0.56%" +"12/28/2023","15,095.14","15,142.09","15,150.07","15,087.22","907.14M","-0.03%" +"12/27/2023","15,099.18","15,089.66","15,114.08","15,051.67","1.07B","0.16%" +"12/26/2023","15,074.57","15,028.69","15,101.18","15,024.06","871.34M","0.54%" +"12/22/2023","14,992.97","15,006.18","15,047.19","14,927.12","880.44M","0.19%" +"12/21/2023","14,963.87","14,923.14","14,970.81","14,837.47","945.08M","1.26%" +"12/20/2023","14,777.94","14,973.36","15,069.29","14,776.29","1.20B","-1.50%" +"12/19/2023","15,003.22","14,923.02","15,003.80","14,921.60","1.13B","0.66%" +"12/18/2023","14,905.19","14,814.02","14,938.04","14,811.82","1.15B","0.62%" +"12/15/2023","14,813.92","14,797.46","14,848.41","14,753.16","3.35B","0.35%" +"12/14/2023","14,761.56","14,798.72","14,855.62","14,642.23","1.58B","0.19%" +"12/13/2023","14,733.96","14,555.68","14,743.55","14,517.53","1.13B","1.38%" +"12/12/2023","14,533.40","14,423.01","14,533.40","14,385.39","939.56M","0.70%" +"12/11/2023","14,432.49","14,340.13","14,436.08","14,324.57","1.05B","0.20%" +"12/08/2023","14,403.97","14,279.46","14,416.92","14,264.96","997.65M","0.45%" +"12/07/2023","14,339.99","14,230.43","14,353.11","14,220.87","1.05B","1.37%" +"12/06/2023","14,146.71","14,325.62","14,327.63","14,138.51","1.02B","-0.58%" +"12/05/2023","14,229.91","14,126.40","14,285.66","14,121.76","1.11B","0.31%" +"12/04/2023","14,185.49","14,168.66","14,197.52","14,058.52","1.18B","-0.84%" +"12/01/2023","14,305.03","14,181.35","14,311.95","14,135.00","1.09B","0.55%" +"11/30/2023","14,226.22","14,265.05","14,289.20","14,127.05","1.53B","-0.23%" +"11/29/2023","14,258.49","14,367.11","14,423.22","14,247.89","979.43M","-0.16%" +"11/28/2023","14,281.76","14,224.63","14,303.66","14,195.72","870.61M","0.29%" +"11/27/2023","14,241.02","14,239.31","14,305.71","14,205.24","839.28M","-0.07%" +"11/24/2023","14,250.86","14,238.04","14,270.28","14,214.13","441.68M","-0.11%" +"11/22/2023","14,265.86","14,283.82","14,359.61","14,226.63","717.39M","0.46%" +"11/21/2023","14,199.98","14,217.23","14,237.50","14,146.30","815.36M","-0.59%" +"11/20/2023","14,284.53","14,134.75","14,309.80","14,134.20","902.05M","1.13%" +"11/17/2023","14,125.48","14,101.43","14,154.32","14,063.93","946.65M","0.08%" +"11/16/2023","14,113.67","14,066.88","14,130.45","14,033.79","925.11M","0.07%" +"11/15/2023","14,103.84","14,147.27","14,194.36","14,060.70","1.06B","0.07%" +"11/14/2023","14,094.38","14,015.37","14,124.06","14,003.14","1.11B","2.37%" +"11/13/2023","13,767.74","13,745.96","13,805.11","13,687.78","837.61M","-0.22%" +"11/10/2023","13,798.11","13,571.19","13,802.53","13,556.35","998.71M","2.05%" +"11/09/2023","13,521.45","13,693.70","13,697.82","13,506.02","1.04B","-0.94%" +"11/08/2023","13,650.41","13,660.22","13,684.87","13,573.58","956.59M","0.08%" +"11/07/2023","13,639.86","13,555.79","13,675.46","13,516.56","896.95M","0.90%" +"11/06/2023","13,518.78","13,514.08","13,551.62","13,435.99","912.89M","0.30%" +"11/03/2023","13,478.28","13,362.85","13,520.28","13,344.73","1.02B","1.38%" +"11/02/2023","13,294.19","13,230.49","13,302.18","13,177.64","1.03B","1.78%" +"11/01/2023","13,061.47","12,887.06","13,072.42","12,875.20","937.65M","1.64%" +"10/31/2023","12,851.24","12,786.62","12,859.40","12,697.04","914.04M","0.48%" +"10/30/2023","12,789.48","12,750.46","12,842.96","12,691.56","801.65M","1.16%" +"10/27/2023","12,643.01","12,718.69","12,772.43","12,600.57","856.38M","0.38%" +"10/26/2023","12,595.61","12,768.97","12,818.14","12,543.86","941.24M","-1.76%" +"10/25/2023","12,821.22","13,039.86","13,042.52","12,804.30","950.80M","-2.43%" +"10/24/2023","13,139.88","13,084.99","13,170.39","13,022.85","878.12M","0.93%" +"10/23/2023","13,018.33","12,930.85","13,143.22","12,848.83","859.07M","0.27%" +"10/20/2023","12,983.81","13,157.77","13,177.35","12,977.43","1.03B","-1.53%" +"10/19/2023","13,186.17","13,354.80","13,404.73","13,157.33","920.00M","-0.96%" +"10/18/2023","13,314.30","13,439.68","13,499.74","13,275.30","843.06M","-1.62%" +"10/17/2023","13,533.75","13,419.87","13,602.25","13,364.74","906.42M","-0.25%" +"10/16/2023","13,567.98","13,453.81","13,598.05","13,447.17","832.45M","1.20%" +"10/13/2023","13,407.23","13,613.59","13,619.54","13,361.85","843.48M","-1.23%" +"10/12/2023","13,574.22","13,672.47","13,714.14","13,491.56","921.27M","-0.63%" +"10/11/2023","13,659.68","13,619.21","13,671.11","13,549.29","797.05M","0.71%" +"10/10/2023","13,562.84","13,505.81","13,659.63","13,491.81","823.87M","0.58%" +"10/09/2023","13,484.24","13,326.22","13,509.30","13,277.48","723.95M","0.39%" +"10/06/2023","13,431.34","13,127.68","13,472.27","13,099.03","860.52M","1.60%" +"10/05/2023","13,219.83","13,228.12","13,251.18","13,087.57","870.00M","-0.12%" +"10/04/2023","13,236.01","13,092.92","13,258.76","13,072.51","854.22M","1.35%" +"10/03/2023","13,059.47","13,229.68","13,280.04","13,008.60","889.31M","-1.87%" +"10/02/2023","13,307.77","13,217.99","13,364.03","13,204.08","877.57M","0.67%" +"09/29/2023","13,219.32","13,337.71","13,382.98","13,177.09","1.02B","0.14%" +"09/28/2023","13,201.28","13,043.37","13,270.97","13,025.11","884.75M","0.83%" +"09/27/2023","13,092.85","13,115.36","13,156.37","12,963.16","894.11M","0.22%" +"09/26/2023","13,063.61","13,180.96","13,199.13","13,033.40","891.04M","-1.57%" +"09/25/2023","13,271.32","13,172.54","13,277.83","13,132.00","769.22M","0.45%" +"09/22/2023","13,211.81","13,287.17","13,353.22","13,200.64","831.54M","-0.09%" +"09/21/2023","13,223.99","13,328.06","13,362.23","13,222.56","928.74M","-1.82%" +"09/20/2023","13,469.13","13,710.26","13,727.81","13,467.28","835.28M","-1.53%" +"09/19/2023","13,678.19","13,649.44","13,705.15","13,578.87","881.73M","-0.23%" +"09/18/2023","13,710.24","13,669.96","13,751.28","13,663.46","962.57M","0.01%" +"09/15/2023","13,708.33","13,889.20","13,895.75","13,684.24","3.05B","-1.56%" +"09/14/2023","13,926.05","13,889.76","13,957.57","13,810.66","930.53M","0.81%" +"09/13/2023","13,813.58","13,773.67","13,868.57","13,733.82","929.03M","0.29%" +"09/12/2023","13,773.62","13,858.94","13,913.60","13,763.69","853.61M","-1.04%" +"09/11/2023","13,917.89","13,884.03","13,937.46","13,805.13","853.34M","1.14%" +"09/08/2023","13,761.53","13,754.71","13,843.37","13,733.18","781.91M","0.09%" +"09/07/2023","13,748.83","13,675.11","13,774.63","13,642.47","920.58M","-0.89%" +"09/06/2023","13,872.47","13,988.81","14,001.95","13,802.42","826.45M","-1.06%" +"09/05/2023","14,020.95","13,994.54","14,060.85","13,945.65","882.28M","-0.08%" +"09/01/2023","14,031.82","14,129.96","14,149.62","13,982.42","820.13M","-0.02%" +"08/31/2023","14,034.97","14,041.54","14,114.67","14,010.48","1.13B","0.11%" +"08/30/2023","14,019.31","13,961.77","14,050.82","13,924.20","829.23M","0.54%" +"08/29/2023","13,943.76","13,687.23","13,959.81","13,677.06","865.54M","1.74%" +"08/28/2023","13,705.13","13,695.36","13,735.98","13,626.64","674.53M","0.84%" +"08/25/2023","13,590.65","13,514.37","13,633.42","13,376.34","782.12M","0.94%" +"08/24/2023","13,463.97","13,834.31","13,834.68","13,462.84","891.76M","-1.87%" +"08/23/2023","13,721.03","13,532.43","13,757.00","13,532.43","811.82M","1.59%" +"08/22/2023","13,505.87","13,593.95","13,598.76","13,484.38","780.24M","0.06%" +"08/21/2023","13,497.59","13,347.26","13,516.86","13,325.59","828.82M","1.56%" +"08/18/2023","13,290.78","13,190.02","13,335.87","13,161.76","980.92M","-0.20%" +"08/17/2023","13,316.93","13,527.30","13,535.09","13,303.45","956.29M","-1.17%" +"08/16/2023","13,474.63","13,593.17","13,644.32","13,473.03","993.03M","-1.15%" +"08/15/2023","13,631.05","13,760.48","13,774.98","13,611.93","816.65M","-1.14%" +"08/14/2023","13,788.33","13,599.00","13,789.16","13,582.49","836.91M","1.05%" +"08/11/2023","13,644.85","13,633.65","13,720.33","13,609.98","842.28M","-0.56%" +"08/10/2023","13,721.03","13,818.25","13,947.16","13,686.51","979.72M","0.12%" +"08/09/2023","13,705.08","13,897.61","13,898.54","13,698.39","1.06B","-1.17%" +"08/08/2023","13,867.19","13,875.45","13,899.74","13,769.34","1.04B","-0.79%" +"08/07/2023","13,977.13","13,972.45","13,997.15","13,864.92","957.81M","0.61%" +"08/04/2023","13,892.07","14,025.96","14,119.22","13,897.93","1.00B","-0.48%" +"08/03/2023","13,959.71","13,899.76","14,032.28","13,881.35","1.03B","-0.10%" +"08/02/2023","13,973.45","14,132.73","14,133.85","13,914.81","1.06B","-2.17%" +"08/01/2023","14,283.91","14,274.93","14,309.21","14,215.64","909.92M","-0.43%" +"07/31/2023","14,346.02","14,337.90","14,370.91","14,292.75","1.08B","0.21%" +"07/28/2023","14,316.66","14,199.83","14,344.35","14,188.10","937.55M","1.90%" +"07/27/2023","14,050.11","14,319.16","14,360.20","14,006.92","1.00B","-0.55%" +"07/26/2023","14,127.28","14,123.52","14,187.35","14,041.95","883.42M","-0.12%" +"07/25/2023","14,144.55","14,093.24","14,201.91","14,092.52","864.05M","0.61%" +"07/24/2023","14,058.87","14,081.63","14,110.15","13,997.13","812.22M","0.19%" +"07/21/2023","14,032.80","14,148.17","14,179.01","14,020.45","1.45B","-0.22%" +"07/20/2023","14,063.31","14,273.29","14,309.92","14,030.63","996.24M","-2.05%" +"07/19/2023","14,358.02","14,398.53","14,446.55","14,317.09","978.63M","0.03%" +"07/18/2023","14,353.64","14,212.25","14,396.69","14,176.11","930.20M","0.76%" +"07/17/2023","14,244.95","14,149.92","14,274.41","14,138.00","914.53M","0.93%" +"07/14/2023","14,113.70","14,166.66","14,232.11","14,081.96","996.35M","-0.18%" +"07/13/2023","14,138.57","14,021.15","14,163.80","14,012.24","962.46M","1.58%" +"07/12/2023","13,918.96","13,915.64","13,963.45","13,842.13","1.01B","1.15%" +"07/11/2023","13,760.70","13,709.82","13,774.83","13,643.32","913.10M","0.55%" +"07/10/2023","13,685.48","13,645.37","13,692.41","13,584.87","1.00B","0.18%" +"07/07/2023","13,660.72","13,668.07","13,804.51","13,656.74","949.89M","-0.13%" +"07/06/2023","13,679.04","13,653.17","13,689.52","13,567.25","1.04B","-0.82%" +"07/05/2023","13,791.65","13,772.10","13,844.50","13,764.25","937.60M","-0.18%" +"07/03/2023","13,816.77","13,798.70","13,839.09","13,773.41","583.70M","0.21%" +"06/30/2023","13,787.92","13,719.98","13,816.67","13,716.16","1.07B","1.45%" +"06/29/2023","13,591.33","13,592.36","13,618.53","13,540.26","871.64M","0.00%" +"06/28/2023","13,591.75","13,506.02","13,654.14","13,495.73","890.52M","0.27%" +"06/27/2023","13,555.67","13,389.25","13,578.80","13,366.97","966.18M","1.65%" +"06/26/2023","13,335.78","13,468.75","13,573.57","13,334.42","936.28M","-1.16%" +"06/23/2023","13,492.52","13,484.10","13,572.18","13,442.65","3.36B","-1.01%" +"06/22/2023","13,630.61","13,443.41","13,631.85","13,441.56","898.27M","0.95%" +"06/21/2023","13,502.20","13,620.87","13,638.57","13,460.94","1.06B","-1.21%" +"06/20/2023","13,667.29","13,642.29","13,711.18","13,561.84","1.13B","-0.16%" +"06/16/2023","13,689.57","13,859.07","13,864.06","13,680.96","2.92B","-0.68%" +"06/15/2023","13,782.82","13,572.88","13,828.17","13,561.37","1.13B","1.15%" +"06/14/2023","13,626.48","13,570.56","13,661.74","13,455.99","1.16B","0.39%" +"06/13/2023","13,573.32","13,566.53","13,594.40","13,473.19","1.04B","0.83%" +"06/12/2023","13,461.92","13,326.37","13,465.91","13,302.58","974.53M","1.53%" +"06/09/2023","13,259.14","13,312.39","13,385.95","13,229.33","899.24M","0.16%" +"06/08/2023","13,238.52","13,113.27","13,248.60","13,101.18","873.24M","1.02%" +"06/07/2023","13,104.89","13,295.26","13,361.90","13,089.48","1.11B","-1.29%" +"06/06/2023","13,276.42","13,199.59","13,306.21","13,165.65","978.70M","0.36%" +"06/05/2023","13,229.43","13,238.48","13,330.65","13,194.95","887.68M","-0.09%" +"06/02/2023","13,240.77","13,190.48","13,256.21","13,125.86","941.89M","1.07%" +"06/01/2023","13,100.98","12,944.46","13,141.83","12,903.63","957.13M","1.28%" +"05/31/2023","12,935.29","12,968.38","13,029.08","12,889.37","1.94B","-0.63%" +"05/30/2023","13,017.43","13,109.10","13,154.29","12,968.12","969.21M","0.32%" +"05/26/2023","12,975.69","12,736.42","13,001.91","12,729.74","914.77M","2.19%" +"05/25/2023","12,698.09","12,706.44","12,736.92","12,604.89","970.49M","1.71%" +"05/24/2023","12,484.16","12,481.89","12,529.63","12,415.85","842.72M","-0.61%" +"05/23/2023","12,560.25","12,652.88","12,709.74","12,554.43","899.73M","-1.26%" +"05/22/2023","12,720.78","12,664.44","12,756.22","12,655.26","886.96M","0.50%" +"05/19/2023","12,657.90","12,709.46","12,731.73","12,624.06","899.33M","-0.24%" +"05/18/2023","12,688.84","12,513.87","12,698.50","12,512.26","932.20M","1.51%" +"05/17/2023","12,500.57","12,388.58","12,514.07","12,335.02","936.60M","1.28%" +"05/16/2023","12,343.05","12,327.05","12,403.81","12,324.52","857.54M","-0.18%" +"05/15/2023","12,365.21","12,301.17","12,376.40","12,263.35","857.25M","0.66%" +"05/12/2023","12,284.74","12,350.52","12,364.65","12,209.58","865.59M","-0.35%" +"05/11/2023","12,328.51","12,321.26","12,347.38","12,255.44","934.31M","0.18%" +"05/10/2023","12,306.44","12,286.66","12,337.69","12,180.86","1.04B","1.04%" +"05/09/2023","12,179.55","12,195.78","12,216.13","12,174.06","899.76M","-0.63%" +"05/08/2023","12,256.92","12,231.68","12,264.99","12,178.26","882.60M","0.18%" +"05/05/2023","12,235.41","12,073.03","12,264.83","12,065.72","1.01B","2.25%" +"05/04/2023","11,966.40","11,997.34","12,033.15","11,925.37","1.01B","-0.49%" +"05/03/2023","12,025.33","12,097.04","12,212.55","12,022.46","1.09B","-0.46%" +"05/02/2023","12,080.51","12,198.02","12,206.58","12,015.22","1.05B","-1.08%" +"05/01/2023","12,212.60","12,210.05","12,261.32","12,181.08","926.58M","-0.11%" +"04/28/2023","12,226.58","12,117.54","12,227.72","12,082.57","1.07B","0.69%" +"04/27/2023","12,142.24","11,972.15","12,154.01","11,950.92","986.43M","2.43%" +"04/26/2023","11,854.35","11,913.23","11,967.99","11,833.07","973.40M","0.47%" +"04/25/2023","11,799.16","11,968.81","11,990.46","11,798.77","921.37M","-1.98%" +"04/24/2023","12,037.20","12,053.47","12,103.58","11,960.30","853.57M","-0.29%" +"04/21/2023","12,072.46","12,046.03","12,097.15","11,986.82","944.77M","0.11%" +"04/20/2023","12,059.56","12,039.08","12,155.96","12,011.95","899.17M","-0.80%" +"04/19/2023","12,157.23","12,063.68","12,191.10","12,060.17","879.49M","0.03%" +"04/18/2023","12,153.41","12,234.56","12,245.43","12,110.23","883.01M","-0.04%" +"04/17/2023","12,157.72","12,108.23","12,159.02","12,064.10","904.58M","0.28%" +"04/14/2023","12,123.46","12,117.91","12,205.72","12,026.55","874.14M","-0.35%" +"04/13/2023","12,166.27","11,997.42","12,178.80","11,995.94","921.41M","1.99%" +"04/12/2023","11,929.34","12,110.87","12,134.50","11,916.54","916.01M","-0.85%" +"04/11/2023","12,031.88","12,080.24","12,091.27","12,011.40","883.24M","-0.43%" +"04/10/2023","12,084.36","11,975.13","12,084.95","11,924.20","862.62M","-0.03%" +"04/06/2023","12,087.96","11,939.08","12,098.50","11,898.36","785.43M","0.76%" +"04/05/2023","11,996.86","12,081.76","12,086.75","11,931.84","894.37M","-1.07%" +"04/04/2023","12,126.33","12,208.49","12,224.68","12,081.81","877.51M","-0.52%" +"04/03/2023","12,189.45","12,146.09","12,196.34","12,086.52","950.52M","-0.27%" +"03/31/2023","12,221.91","12,031.54","12,227.93","12,030.44","1.16B","1.74%" +"03/30/2023","12,013.47","12,010.45","12,044.79","11,953.37","923.96M","0.73%" +"03/29/2023","11,926.24","11,855.59","11,941.59","11,823.35","915.05M","1.79%" +"03/28/2023","11,716.08","11,752.76","11,752.76","11,635.03","773.10M","-0.45%" +"03/27/2023","11,768.84","11,868.54","11,903.21","11,739.05","844.71M","-0.47%" +"03/24/2023","11,823.96","11,747.62","11,826.23","11,670.67","897.32M","0.31%" +"03/23/2023","11,787.40","11,811.32","11,962.69","11,684.52","1.00B","1.01%" +"03/22/2023","11,669.96","11,857.50","12,013.99","11,666.85","963.97M","-1.60%" +"03/21/2023","11,860.11","11,764.79","11,879.16","11,724.91","1.04B","1.58%" +"03/20/2023","11,675.54","11,614.39","11,695.55","11,550.69","1.08B","0.39%" +"03/17/2023","11,630.51","11,696.34","11,773.11","11,562.63","2.94B","-0.74%" +"03/16/2023","11,717.28","11,384.87","11,733.80","11,365.49","1.13B","2.48%" +"03/15/2023","11,434.05","11,291.17","11,447.90","11,238.44","1.22B","0.05%" +"03/14/2023","11,428.15","11,357.74","11,467.01","11,284.93","1.18B","2.14%" +"03/13/2023","11,188.84","11,041.46","11,326.73","10,982.80","1.31B","0.45%" +"03/10/2023","11,138.89","11,325.36","11,373.81","11,093.86","1.23B","-1.76%" +"03/09/2023","11,338.36","11,578.31","11,667.12","11,319.98","994.86M","-2.05%" +"03/08/2023","11,576.00","11,553.09","11,601.23","11,487.75","923.10M","0.40%" +"03/07/2023","11,530.33","11,670.98","11,705.96","11,512.03","973.96M","-1.25%" +"03/06/2023","11,675.74","11,736.87","11,827.92","11,667.48","977.57M","-0.11%" +"03/03/2023","11,689.01","11,524.65","11,699.63","11,514.74","965.05M","1.97%" +"03/02/2023","11,462.98","11,273.77","11,487.59","11,273.61","950.09M","0.73%" +"03/01/2023","11,379.48","11,447.58","11,479.00","11,349.87","964.54M","-0.66%" +"02/28/2023","11,455.54","11,451.05","11,548.22","11,435.39","1.26B","-0.10%" +"02/27/2023","11,466.98","11,517.19","11,565.23","11,444.60","874.29M","0.63%" +"02/24/2023","11,394.94","11,404.18","11,434.36","11,334.46","900.84M","-1.69%" +"02/23/2023","11,590.40","11,636.93","11,638.97","11,432.58","903.17M","0.72%" +"02/22/2023","11,507.07","11,517.20","11,582.52","11,445.17","942.98M","0.13%" +"02/21/2023","11,492.30","11,640.37","11,684.14","11,491.18","1.02B","-2.50%" +"02/17/2023","11,787.27","11,777.50","11,803.22","11,673.21","966.30M","-0.58%" +"02/16/2023","11,855.83","11,896.31","12,040.34","11,853.36","986.41M","-1.78%" +"02/15/2023","12,070.59","11,905.12","12,071.29","11,876.82","951.90M","0.92%" +"02/14/2023","11,960.14","11,808.20","11,999.85","11,760.57","929.01M","0.57%" +"02/13/2023","11,891.79","11,759.09","11,910.92","11,719.73","937.01M","1.48%" +"02/10/2023","11,718.12","11,714.60","11,775.80","11,630.54","934.05M","-0.61%" +"02/09/2023","11,789.58","12,069.10","12,070.96","11,745.11","1.03B","-1.02%" +"02/08/2023","11,910.52","12,069.12","12,096.39","11,890.09","953.41M","-1.68%" +"02/07/2023","12,113.79","11,891.25","12,150.22","11,836.78","1.07B","1.90%" +"02/06/2023","11,887.45","11,904.41","11,973.41","11,843.49","1.01B","-1.00%" +"02/03/2023","12,006.96","11,946.86","12,231.31","11,946.86","1.11B","-1.59%" +"02/02/2023","12,200.82","12,065.15","12,269.55","12,024.14","1.33B","3.25%" +"02/01/2023","11,816.32","11,573.14","11,904.02","11,500.33","1.21B","2.00%" +"01/31/2023","11,584.55","11,398.58","11,586.01","11,398.37","1.15B","1.67%" +"01/30/2023","11,393.81","11,512.34","11,553.31","11,388.54","954.43M","-1.96%" +"01/27/2023","11,621.71","11,470.47","11,691.89","11,470.27","1.05B","0.95%" +"01/26/2023","11,512.41","11,458.41","11,516.05","11,341.19","992.60M","1.76%" +"01/25/2023","11,313.36","11,146.53","11,334.22","11,069.17","924.72M","-0.18%" +"01/24/2023","11,334.27","11,302.93","11,378.15","11,282.65","914.95M","-0.27%" +"01/23/2023","11,364.41","11,171.94","11,405.50","11,144.03","1.05B","2.01%" +"01/20/2023","11,140.43","10,924.66","11,143.17","10,885.64","1.16B","2.66%" +"01/19/2023","10,852.27","10,890.40","10,932.52","10,804.57","905.21M","-0.96%" +"01/18/2023","10,957.01","11,170.95","11,223.41","10,952.05","986.97M","-1.24%" +"01/17/2023","11,095.11","11,070.00","11,145.44","11,024.72","990.06M","0.14%" +"01/13/2023","11,079.16","10,906.37","11,084.01","10,900.16","919.66M","0.71%" +"01/12/2023","11,001.11","10,969.26","11,027.75","10,797.12","1.03B","0.64%" +"01/11/2023","10,931.67","10,794.99","10,932.44","10,762.73","1.01B","1.76%" +"01/10/2023","10,742.63","10,607.72","10,743.67","10,589.59","888.70M","1.01%" +"01/09/2023","10,635.65","10,662.11","10,807.26","10,619.12","1.04B","0.63%" +"01/06/2023","10,569.29","10,363.96","10,604.14","10,265.04","970.67M","2.56%" +"01/05/2023","10,305.24","10,390.31","10,393.22","10,295.25","957.48M","-1.47%" +"01/04/2023","10,458.76","10,467.82","10,515.22","10,337.64","1.04B","0.69%" +"01/03/2023","10,386.99","10,562.06","10,613.06","10,309.16","983.36M","-0.76%" +"12/30/2022","10,466.48","10,368.37","10,468.31","10,324.70","850.56M","-0.11%" +"12/29/2022","10,478.09","10,321.46","10,502.08","10,301.06","894.54M","2.59%" +"12/28/2022","10,213.29","10,339.20","10,414.82","10,207.47","751.52M","-1.35%" +"12/27/2022","10,353.23","10,462.19","10,472.32","10,340.73","753.05M","-1.38%" +"12/23/2022","10,497.86","10,437.75","10,514.76","10,361.82","678.03M","0.21%" +"12/22/2022","10,476.12","10,586.46","10,599.34","10,313.32","974.20M","-2.18%" +"12/21/2022","10,709.37","10,592.00","10,753.57","10,569.20","937.40M","1.54%" +"12/20/2022","10,547.11","10,490.89","10,609.46","10,446.82","972.31M","0.01%" +"12/19/2022","10,546.03","10,707.44","10,713.97","10,497.55","1.04B","-1.49%" +"12/16/2022","10,705.41","10,767.63","10,833.24","10,642.10","3.28B","-0.97%" +"12/15/2022","10,810.53","11,012.62","11,029.57","10,775.61","1.16B","-3.23%" +"12/14/2022","11,170.89","11,248.09","11,352.09","11,065.24","1.12B","-0.76%" +"12/13/2022","11,256.81","11,542.84","11,571.64","11,160.54","1.24B","1.01%" +"12/12/2022","11,143.74","11,015.48","11,144.67","10,984.82","955.14M","1.26%" +"12/09/2022","11,004.62","11,038.17","11,138.70","10,999.26","867.24M","-0.70%" +"12/08/2022","11,082.00","11,011.33","11,119.16","10,939.47","832.95M","1.13%" +"12/07/2022","10,958.55","10,963.95","11,039.81","10,910.62","828.48M","-0.51%" +"12/06/2022","11,014.89","11,228.42","11,241.42","10,956.20","888.70M","-2.00%" +"12/05/2022","11,239.94","11,380.99","11,425.51","11,193.03","885.18M","-1.93%" +"12/02/2022","11,461.50","11,308.38","11,492.32","11,296.72","859.61M","-0.18%" +"12/01/2022","11,482.45","11,475.17","11,546.77","11,378.75","912.53M","0.13%" +"11/30/2022","11,468.00","10,995.20","11,468.47","10,966.53","1.62B","4.41%" +"11/29/2022","10,983.78","11,060.02","11,086.02","10,944.37","783.46M","-0.59%" +"11/28/2022","11,049.50","11,147.57","11,217.75","11,020.69","811.96M","-1.58%" +"11/25/2022","11,226.36","11,231.00","11,261.57","11,206.38","377.17M","-0.52%" +"11/23/2022","11,285.32","11,174.61","11,310.82","11,174.61","695.12M","0.99%" +"11/22/2022","11,174.41","11,058.56","11,179.87","10,975.66","758.80M","1.36%" +"11/21/2022","11,024.51","11,091.01","11,128.78","10,999.75","765.20M","-1.09%" +"11/18/2022","11,146.06","11,257.01","11,259.44","11,059.16","846.40M","0.01%" +"11/17/2022","11,144.96","11,008.67","11,198.84","11,006.21","837.39M","-0.35%" +"11/16/2022","11,183.66","11,260.09","11,286.10","11,162.92","887.82M","-1.54%" +"11/15/2022","11,358.41","11,474.82","11,492.62","11,241.15","1.04B","1.45%" +"11/14/2022","11,196.22","11,233.90","11,350.13","11,167.17","983.40M","-1.12%" +"11/11/2022","11,323.33","11,124.75","11,352.43","11,069.83","1.21B","1.88%" +"11/10/2022","11,114.15","10,869.17","11,119.12","10,779.95","1.40B","7.35%" +"11/09/2022","10,353.17","10,528.45","10,564.97","10,344.01","1.04B","-2.48%" +"11/08/2022","10,616.20","10,611.53","10,745.64","10,472.73","994.35M","0.49%" +"11/07/2022","10,564.52","10,516.94","10,587.96","10,428.91","930.25M","0.85%" +"11/04/2022","10,475.25","10,548.14","10,553.63","10,262.93","1.09B","1.28%" +"11/03/2022","10,342.94","10,399.45","10,486.01","10,319.54","1.01B","-1.73%" +"11/02/2022","10,524.80","10,885.01","10,993.24","10,522.90","1.10B","-3.36%" +"11/01/2022","10,890.84","11,154.74","11,156.35","10,881.19","903.26M","-0.89%" +"10/31/2022","10,988.15","11,028.43","11,047.94","10,914.00","1.08B","-1.03%" +"10/28/2022","11,102.45","10,766.20","11,117.04","10,766.20","977.64M","2.87%" +"10/27/2022","10,792.67","10,971.95","10,998.73","10,780.50","973.52M","-1.63%" +"10/26/2022","10,970.99","10,969.02","11,205.84","10,948.38","1.00B","-2.04%" +"10/25/2022","11,199.12","10,996.97","11,210.38","10,996.97","991.08M","2.25%" +"10/24/2022","10,952.61","10,867.07","10,983.52","10,713.33","921.20M","0.86%" +"10/21/2022","10,859.72","10,576.04","10,875.72","10,542.43","1.02B","2.31%" +"10/20/2022","10,614.84","10,657.41","10,837.30","10,574.55","866.25M","-0.61%" +"10/19/2022","10,680.51","10,689.31","10,808.04","10,592.88","921.13M","-0.85%" +"10/18/2022","10,772.40","10,963.99","10,972.97","10,670.12","929.62M","0.90%" +"10/17/2022","10,675.80","10,575.65","10,696.59","10,569.69","944.31M","3.43%" +"10/14/2022","10,321.39","10,742.81","10,766.68","10,308.81","918.04M","-3.08%" +"10/13/2022","10,649.15","10,131.82","10,697.71","10,088.83","1.05B","2.23%" +"10/12/2022","10,417.10","10,437.00","10,494.53","10,372.21","823.61M","-0.09%" +"10/11/2022","10,426.19","10,484.37","10,608.84","10,351.98","990.74M","-1.10%" +"10/10/2022","10,542.10","10,659.95","10,669.93","10,449.04","812.52M","-1.04%" +"10/07/2022","10,652.41","10,877.28","10,891.93","10,608.52","1.03B","-3.80%" +"10/06/2022","11,073.31","11,129.04","11,230.44","11,051.27","873.35M","-0.68%" +"10/05/2022","11,148.64","11,022.67","11,210.32","10,910.76","830.23M","-0.25%" +"10/04/2022","11,176.41","11,054.72","11,189.96","11,044.04","1.02B","3.34%" +"10/03/2022","10,815.43","10,659.01","10,875.46","10,577.89","943.34M","2.27%" +"09/30/2022","10,575.62","10,697.71","10,883.04","10,572.33","1.10B","-1.51%" +"09/29/2022","10,737.51","10,894.44","10,899.47","10,623.22","971.92M","-2.84%" +"09/28/2022","11,051.64","10,817.53","11,101.50","10,776.34","953.34M","2.05%" +"09/27/2022","10,829.50","10,955.29","11,040.99","10,741.02","903.37M","0.25%" +"09/26/2022","10,802.92","10,833.38","11,024.00","10,789.05","949.64M","-0.60%" +"09/23/2022","10,867.93","10,952.69","10,958.29","10,732.72","1.00B","-1.80%" +"09/22/2022","11,066.80","11,167.38","11,203.77","11,024.64","934.35M","-1.37%" +"09/21/2022","11,220.19","11,466.21","11,613.57","11,219.00","909.35M","-1.79%" +"09/20/2022","11,425.05","11,440.14","11,520.99","11,343.72","861.66M","-0.95%" +"09/19/2022","11,535.02","11,338.57","11,538.13","11,337.83","932.68M","0.76%" +"09/16/2022","11,448.40","11,401.21","11,460.43","11,316.92","3.05B","-0.90%" +"09/15/2022","11,552.36","11,633.24","11,760.73","11,497.11","1.03B","-1.43%" +"09/14/2022","11,719.68","11,680.41","11,746.83","11,602.76","1.05B","0.74%" +"09/13/2022","11,633.57","11,908.81","11,957.97","11,604.43","1.10B","-5.16%" +"09/12/2022","12,266.41","12,174.94","12,270.19","12,169.28","845.28M","1.27%" +"09/09/2022","12,112.31","11,958.61","12,132.67","11,958.61","881.47M","2.11%" +"09/08/2022","11,862.13","11,679.86","11,896.73","11,660.53","875.83M","0.60%" +"09/07/2022","11,791.90","11,559.38","11,819.07","11,555.08","897.12M","2.14%" +"09/06/2022","11,544.91","11,643.03","11,679.43","11,471.50","945.53M","-0.74%" +"09/02/2022","11,630.86","11,899.14","11,945.91","11,573.51","868.07M","-1.31%" +"09/01/2022","11,785.13","11,707.44","11,798.37","11,546.52","974.17M","-0.26%" +"08/31/2022","11,816.20","11,972.56","12,027.43","11,814.17","1.16B","-0.56%" +"08/30/2022","11,883.14","12,093.06","12,101.85","11,790.03","896.27M","-1.12%" +"08/29/2022","12,017.67","12,021.05","12,124.87","11,981.42","798.39M","-1.02%" +"08/26/2022","12,141.71","12,630.58","12,655.84","12,141.52","960.49M","-3.94%" +"08/25/2022","12,639.26","12,506.37","12,641.26","12,471.98","797.23M","1.67%" +"08/24/2022","12,431.53","12,375.15","12,504.33","12,350.16","770.64M","0.41%" +"08/23/2022","12,381.30","12,380.37","12,490.86","12,352.03","763.64M","0.00%" +"08/22/2022","12,381.57","12,523.16","12,538.55","12,353.73","857.72M","-2.55%" +"08/19/2022","12,705.21","12,832.27","12,859.01","12,674.87","998.67M","-2.01%" +"08/18/2022","12,965.34","12,937.79","13,002.66","12,873.49","865.17M","0.21%" +"08/17/2022","12,938.12","12,968.63","13,053.51","12,863.01","977.81M","-1.25%" +"08/16/2022","13,102.55","13,082.64","13,181.09","12,979.24","952.79M","-0.19%" +"08/15/2022","13,128.05","12,996.63","13,146.06","12,993.78","862.20M","0.62%" +"08/12/2022","13,047.19","12,866.31","13,047.19","12,821.22","936.39M","2.09%" +"08/11/2022","12,779.91","12,944.82","13,026.24","12,760.09","1.08B","-0.58%" +"08/10/2022","12,854.80","12,793.44","12,861.44","12,698.61","1.05B","2.89%" +"08/09/2022","12,493.93","12,557.49","12,582.91","12,438.86","1.02B","-1.19%" +"08/08/2022","12,644.46","12,703.72","12,855.16","12,597.75","1.00B","-0.10%" +"08/05/2022","12,657.55","12,538.80","12,720.44","12,525.77","991.77M","-0.50%" +"08/04/2022","12,720.58","12,675.04","12,736.19","12,600.78","1.05B","0.41%" +"08/03/2022","12,668.16","12,433.87","12,699.64","12,425.21","1.10B","2.59%" +"08/02/2022","12,348.76","12,287.67","12,503.34","12,260.48","902.82M","-0.16%" +"08/01/2022","12,368.98","12,317.96","12,499.72","12,271.98","891.53M","-0.18%" +"07/29/2022","12,390.69","12,239.69","12,426.26","12,181.13","1.10B","1.88%" +"07/28/2022","12,162.59","12,036.48","12,179.09","11,886.67","958.80M","1.08%" +"07/27/2022","12,032.42","11,756.19","12,081.73","11,718.38","939.31M","4.06%" +"07/26/2022","11,562.58","11,701.53","11,711.31","11,533.37","834.49M","-1.87%" +"07/25/2022","11,782.67","11,837.96","11,855.11","11,707.53","783.12M","-0.43%" +"07/22/2022","11,834.11","12,025.37","12,093.02","11,767.19","884.72M","-1.87%" +"07/21/2022","12,059.61","11,914.15","12,060.59","11,812.72","840.81M","1.36%" +"07/20/2022","11,897.65","11,726.09","11,939.96","11,703.36","1.01B","1.58%" +"07/19/2022","11,713.15","11,515.00","11,721.22","11,448.97","974.15M","3.11%" +"07/18/2022","11,360.05","11,561.64","11,629.03","11,322.84","922.80M","-0.81%" +"07/15/2022","11,452.42","11,379.36","11,454.69","11,295.33","947.43M","1.79%" +"07/14/2022","11,251.18","11,151.21","11,279.97","11,005.93","817.49M","0.03%" +"07/13/2022","11,247.58","11,056.55","11,325.67","11,031.27","812.60M","-0.15%" +"07/12/2022","11,264.73","11,420.89","11,483.17","11,207.08","836.73M","-0.95%" +"07/11/2022","11,372.60","11,524.49","11,541.10","11,348.06","844.13M","-2.26%" +"07/08/2022","11,635.31","11,503.61","11,689.70","11,479.77","820.69M","0.12%" +"07/07/2022","11,621.35","11,422.60","11,644.47","11,412.88","916.26M","2.28%" +"07/06/2022","11,361.85","11,337.90","11,443.14","11,250.32","933.39M","0.35%" +"07/05/2022","11,322.24","10,964.18","11,323.89","10,911.45","1.07B","1.75%" +"07/01/2022","11,127.84","11,006.83","11,132.55","10,922.71","930.71M","0.90%" +"06/30/2022","11,028.74","11,048.25","11,160.92","10,850.01","1.16B","-1.33%" +"06/29/2022","11,177.89","11,160.22","11,226.33","11,072.19","1.02B","-0.03%" +"06/28/2022","11,181.54","11,542.24","11,635.86","11,177.68","1.02B","-2.98%" +"06/27/2022","11,524.55","11,661.02","11,677.49","11,487.07","991.61M","-0.72%" +"06/24/2022","11,607.62","11,351.31","11,613.23","11,337.78","4.31B","3.34%" +"06/23/2022","11,232.19","11,137.68","11,260.27","11,046.29","1.03B","1.62%" +"06/22/2022","11,053.08","10,941.95","11,216.77","10,938.06","1.11B","-0.15%" +"06/21/2022","11,069.30","10,974.05","11,164.99","10,974.05","1.19B","2.51%" +"06/17/2022","10,798.35","10,697.55","10,884.71","10,638.72","2.80B","1.43%" +"06/16/2022","10,646.10","10,806.02","10,831.07","10,565.13","1.25B","-4.08%" +"06/15/2022","11,099.16","10,968.40","11,244.26","10,866.39","1.22B","2.50%" +"06/14/2022","10,828.34","10,897.43","10,926.81","10,733.04","953.68M","0.18%" +"06/13/2022","10,809.22","10,986.84","11,071.48","10,775.14","1.21B","-4.68%" +"06/10/2022","11,340.02","11,543.88","11,569.15","11,328.27","1.06B","-3.52%" +"06/09/2022","11,754.23","12,016.47","12,115.07","11,751.98","998.87M","-2.75%" +"06/08/2022","12,086.27","12,147.28","12,235.78","12,052.70","911.77M","-0.73%" +"06/07/2022","12,175.23","11,925.81","12,194.86","11,888.62","900.55M","0.94%" +"06/06/2022","12,061.37","12,200.33","12,245.40","12,004.20","911.01M","0.40%" +"06/03/2022","12,012.73","12,097.12","12,167.44","11,966.62","837.59M","-2.47%" +"06/02/2022","12,316.90","11,945.57","12,320.12","11,901.45","916.66M","2.69%" +"06/01/2022","11,994.46","12,176.89","12,237.93","11,901.43","940.60M","-0.72%" +"05/31/2022","12,081.39","12,137.54","12,190.08","11,942.50","1.77B","-0.41%" +"05/27/2022","12,131.13","11,869.69","12,131.66","11,856.82","942.22M","3.33%" +"05/26/2022","11,740.65","11,409.84","11,796.97","11,406.16","930.42M","2.68%" +"05/25/2022","11,434.74","11,225.03","11,511.90","11,211.85","907.18M","1.51%" +"05/24/2022","11,264.45","11,326.44","11,351.61","11,092.48","924.23M","-2.35%" +"05/23/2022","11,535.28","11,396.28","11,552.07","11,304.56","889.21M","1.59%" +"05/20/2022","11,354.62","11,542.67","11,552.21","11,035.69","1.20B","-0.30%" +"05/19/2022","11,388.50","11,364.40","11,562.82","11,313.31","1.05B","-0.26%" +"05/18/2022","11,418.15","11,790.68","11,826.22","11,381.69","1.03B","-4.73%" +"05/17/2022","11,984.52","11,905.57","11,988.43","11,754.28","1.02B","2.76%" +"05/16/2022","11,662.79","11,727.14","11,804.59","11,627.53","978.06M","-1.20%" +"05/13/2022","11,805.00","11,555.97","11,856.71","11,510.25","1.23B","3.82%" +"05/12/2022","11,370.96","11,199.25","11,547.33","11,108.76","1.40B","0.06%" +"05/11/2022","11,364.24","11,645.57","11,844.50","11,339.18","1.27B","-3.18%" +"05/10/2022","11,737.67","11,900.34","11,944.94","11,566.28","1.28B","0.98%" +"05/09/2022","11,623.25","11,923.03","11,990.61","11,574.94","1.24B","-4.29%" +"05/06/2022","12,144.66","12,246.83","12,358.42","11,990.15","1.09B","-1.40%" +"05/05/2022","12,317.69","12,787.52","12,787.52","12,183.56","1.10B","-4.99%" +"05/04/2022","12,964.86","12,574.73","12,985.01","12,367.02","1.11B","3.19%" +"05/03/2022","12,563.76","12,511.46","12,645.83","12,460.99","897.84M","0.22%" +"05/02/2022","12,536.02","12,331.69","12,542.54","12,202.41","1.04B","1.63%" +"04/29/2022","12,334.64","12,710.42","12,861.83","12,315.74","1.09B","-4.17%" +"04/28/2022","12,871.53","12,712.86","12,948.52","12,487.86","1.01B","3.06%" +"04/27/2022","12,488.93","12,500.88","12,703.79","12,430.90","942.84M","-0.01%" +"04/26/2022","12,490.74","12,918.04","12,918.04","12,490.74","1.02B","-3.95%" +"04/25/2022","13,004.85","12,749.17","13,011.45","12,722.59","988.04M","1.29%" +"04/22/2022","12,839.29","13,168.80","13,212.61","12,828.02","950.70M","-2.55%" +"04/21/2022","13,174.65","13,623.70","13,710.70","13,140.83","993.83M","-2.07%" +"04/20/2022","13,453.07","13,665.38","13,678.55","13,426.13","871.26M","-1.22%" +"04/19/2022","13,619.66","13,312.44","13,643.97","13,281.22","855.29M","2.15%" +"04/18/2022","13,332.36","13,319.39","13,414.27","13,222.03","832.41M","-0.14%" +"04/14/2022","13,351.08","13,647.42","13,662.93","13,345.22","927.38M","-2.14%" +"04/13/2022","13,643.59","13,373.12","13,679.43","13,353.66","910.79M","2.03%" +"04/12/2022","13,371.57","13,584.69","13,685.95","13,317.74","902.42M","-0.30%" +"04/11/2022","13,411.96","13,547.29","13,585.08","13,401.39","991.30M","-2.18%" +"04/08/2022","13,711.00","13,830.47","13,866.06","13,693.69","858.45M","-1.34%" +"04/07/2022","13,897.30","13,861.49","13,978.25","13,689.23","931.35M","0.06%" +"04/06/2022","13,888.82","14,002.58","14,032.84","13,788.90","1.09B","-2.22%" +"04/05/2022","14,204.17","14,490.26","14,500.29","14,169.12","930.40M","-2.26%" +"04/04/2022","14,532.55","14,304.35","14,534.38","14,286.45","915.41M","1.90%" +"04/01/2022","14,261.50","14,269.53","14,306.94","14,131.81","1.02B","0.29%" +"03/31/2022","14,220.52","14,444.78","14,456.74","14,217.72","1.10B","-1.54%" +"03/30/2022","14,442.28","14,558.59","14,609.25","14,383.45","1.01B","-1.21%" +"03/29/2022","14,619.64","14,500.39","14,646.90","14,419.40","1.09B","1.84%" +"03/28/2022","14,354.90","14,177.21","14,356.00","14,101.34","892.94M","1.31%" +"03/25/2022","14,169.30","14,194.72","14,218.76","14,010.79","941.78M","-0.16%" +"03/24/2022","14,191.84","14,001.32","14,193.55","13,897.20","916.74M","1.93%" +"03/23/2022","13,922.60","13,990.35","14,152.14","13,921.65","961.73M","-1.32%" +"03/22/2022","14,108.82","13,866.43","14,141.07","13,857.29","1.10B","1.95%" +"03/21/2022","13,838.46","13,860.39","13,945.80","13,682.55","1.14B","-0.40%" +"03/18/2022","13,893.84","13,564.63","13,899.28","13,528.06","2.85B","2.05%" +"03/17/2022","13,614.78","13,360.72","13,620.80","13,317.14","1.14B","1.33%" +"03/16/2022","13,436.55","13,119.37","13,440.12","12,992.20","1.41B","3.77%" +"03/15/2022","12,948.62","12,685.23","12,973.88","12,616.59","1.13B","2.92%" +"03/14/2022","12,581.22","12,795.12","12,918.01","12,555.35","1.21B","-2.04%" +"03/11/2022","12,843.81","13,229.77","13,239.35","12,830.37","1.02B","-2.18%" +"03/10/2022","13,129.96","13,098.35","13,163.50","12,946.28","961.59M","-0.95%" +"03/09/2022","13,255.55","13,113.70","13,301.16","13,039.79","1.12B","3.59%" +"03/08/2022","12,795.55","12,800.04","13,159.44","12,670.08","1.34B","-0.28%" +"03/07/2022","12,830.96","13,328.36","13,353.28","12,828.02","1.29B","-3.62%" +"03/04/2022","13,313.44","13,455.23","13,486.71","13,224.98","1.04B","-1.66%" +"03/03/2022","13,537.94","13,837.59","13,837.59","13,472.64","1.03B","-1.56%" +"03/02/2022","13,752.02","13,597.53","13,796.55","13,493.91","1.03B","1.62%" +"03/01/2022","13,532.46","13,716.70","13,777.04","13,441.32","1.24B","-1.59%" +"02/28/2022","13,751.40","13,570.83","13,810.64","13,549.90","1.39B","0.41%" +"02/25/2022","13,694.62","13,485.26","13,696.86","13,358.29","978.45M","1.64%" +"02/24/2022","13,473.58","12,587.88","13,486.11","12,587.88","1.38B","3.34%" +"02/23/2022","13,037.49","13,511.75","13,533.78","13,032.17","944.40M","-2.57%" +"02/22/2022","13,381.52","13,424.36","13,618.71","13,249.65","1.02B","-1.23%" +"02/18/2022","13,548.07","13,735.40","13,762.40","13,465.56","1.02B","-1.23%" +"02/17/2022","13,716.72","14,004.19","14,020.82","13,704.70","922.82M","-2.88%" +"02/16/2022","14,124.09","14,038.92","14,163.73","13,931.99","838.99M","-0.11%" +"02/15/2022","14,139.76","13,997.18","14,142.49","13,976.29","903.09M","2.53%" +"02/14/2022","13,790.92","13,768.97","13,921.71","13,664.76","936.80M","0.00%" +"02/11/2022","13,791.15","14,213.62","14,246.70","13,733.16","1.08B","-2.78%" +"02/10/2022","14,185.64","14,228.68","14,509.56","14,118.20","1.06B","-2.10%" +"02/09/2022","14,490.37","14,368.16","14,490.72","14,330.87","935.01M","2.08%" +"02/08/2022","14,194.46","13,984.43","14,226.48","13,934.78","865.49M","1.28%" +"02/07/2022","14,015.67","14,118.79","14,236.31","13,974.10","858.02M","-0.58%" +"02/04/2022","14,098.01","13,958.48","14,222.76","13,850.39","862.97M","1.58%" +"02/03/2022","13,878.82","14,045.83","14,207.89","13,851.75","945.51M","-3.74%" +"02/02/2022","14,417.55","14,494.47","14,504.82","14,264.65","1.00B","0.50%" +"02/01/2022","14,346.00","14,277.43","14,358.69","14,070.77","962.00M","0.75%" +"01/31/2022","14,239.88","13,812.19","14,242.90","13,767.71","1.24B","3.41%" +"01/28/2022","13,770.57","13,436.71","13,771.91","13,236.56","1.06B","3.13%" +"01/27/2022","13,352.78","13,710.99","13,765.91","13,322.66","1.07B","-1.40%" +"01/26/2022","13,542.12","13,871.77","14,002.65","13,392.19","1.18B","0.02%" +"01/25/2022","13,539.30","13,610.87","13,781.62","13,414.14","1.04B","-2.28%" +"01/24/2022","13,855.13","13,481.50","13,876.61","13,094.65","1.55B","0.63%" +"01/21/2022","13,768.92","14,046.22","14,171.72","13,764.24","1.32B","-2.72%" +"01/20/2022","14,154.02","14,462.85","14,642.03","14,140.78","1.02B","-1.30%" +"01/19/2022","14,340.25","14,582.22","14,658.89","14,331.65","935.06M","-1.15%" +"01/18/2022","14,506.90","14,681.83","14,740.54","14,482.94","1.06B","-2.60%" +"01/14/2022","14,893.75","14,708.02","14,897.67","14,689.43","872.56M","0.59%" +"01/13/2022","14,806.81","15,245.04","15,259.71","14,782.24","852.15M","-2.51%" +"01/12/2022","15,188.39","15,263.10","15,319.03","15,117.29","840.02M","0.23%" +"01/11/2022","15,153.45","14,919.26","15,158.71","14,837.64","863.02M","1.41%" +"01/10/2022","14,942.83","14,751.78","14,953.85","14,530.23","1.09B","0.05%" +"01/07/2022","14,935.90","15,095.72","15,171.02","14,877.63","852.53M","-0.96%" +"01/06/2022","15,080.86","15,024.15","15,198.45","14,914.87","951.12M","-0.13%" +"01/05/2022","15,100.17","15,547.16","15,586.30","15,095.18","1.01B","-3.34%" +"01/04/2022","15,622.72","15,852.14","15,852.14","15,512.41","970.70M","-1.33%" +"01/03/2022","15,832.80","15,732.50","15,832.80","15,644.09","871.65M","1.20%" \ No newline at end of file diff --git a/SAMPLE_DATA/NVDA Historical Data.csv b/SAMPLE_DATA/NVDA Historical Data.csv new file mode 100644 index 0000000..a4a7156 --- /dev/null +++ b/SAMPLE_DATA/NVDA Historical Data.csv @@ -0,0 +1,640 @@ +"Date","Price","Open","High","Low","Vol.","Change %" +"07/19/2024","117.93","120.35","121.60","117.37","217.22M","-2.61%" +"07/18/2024","121.09","121.85","122.40","116.56","320.98M","2.63%" +"07/17/2024","117.99","121.35","121.85","116.72","390.09M","-6.62%" +"07/16/2024","126.36","128.44","129.04","124.58","214.77M","-1.62%" +"07/15/2024","128.44","130.56","131.39","127.18","208.33M","-0.62%" +"07/12/2024","129.24","128.26","131.92","127.22","252.68M","1.44%" +"07/11/2024","127.40","135.75","136.15","127.05","374.78M","-5.57%" +"07/10/2024","134.91","134.03","135.10","132.42","248.98M","2.69%" +"07/09/2024","131.38","130.35","133.82","128.65","287.02M","2.48%" +"07/08/2024","128.20","127.49","130.77","127.04","237.68M","1.88%" +"07/05/2024","125.83","127.38","128.85","125.68","214.18M","-1.91%" +"07/03/2024","128.28","121.66","128.28","121.36","215.75M","4.57%" +"07/02/2024","122.67","121.13","123.41","121.03","218.37M","-1.31%" +"07/01/2024","124.30","123.47","124.84","118.83","284.89M","0.62%" +"06/28/2024","123.54","124.58","127.71","122.75","315.52M","-0.36%" +"06/27/2024","123.99","124.10","126.41","122.92","252.57M","-1.91%" +"06/26/2024","126.40","126.13","128.12","122.60","362.98M","0.25%" +"06/25/2024","126.09","121.20","126.50","119.32","425.79M","6.76%" +"06/24/2024","118.11","123.24","124.46","118.04","476.06M","-6.68%" +"06/21/2024","126.57","127.12","130.63","124.30","655.48M","-3.22%" +"06/20/2024","130.78","139.80","140.76","129.52","517.77M","-3.54%" +"06/18/2024","135.58","131.14","136.33","130.69","294.34M","3.51%" +"06/17/2024","130.98","132.99","133.73","129.58","288.50M","-0.68%" +"06/14/2024","131.88","129.96","132.84","128.32","309.32M","1.75%" +"06/13/2024","129.61","129.39","129.80","127.16","260.70M","3.52%" +"06/12/2024","125.20","123.06","126.88","122.57","299.60M","3.55%" +"06/11/2024","120.91","121.77","122.87","118.74","222.55M","-0.72%" +"06/10/2024","121.79","120.37","123.10","117.01","314.16M","0.74%" +"06/07/2024","120.89","119.77","121.69","118.02","412.39M","-0.09%" +"06/06/2024","121.00","124.05","125.59","118.32","664.70M","-1.18%" +"06/05/2024","122.44","118.37","122.45","117.47","528.40M","5.15%" +"06/04/2024","116.44","115.72","116.60","114.05","403.32M","1.25%" +"06/03/2024","115.00","113.62","115.00","112.00","438.39M","4.90%" +"05/31/2024","109.63","112.52","112.72","106.94","613.26M","-0.79%" +"05/30/2024","110.50","114.65","115.82","109.66","487.35M","-3.77%" +"05/29/2024","114.83","113.05","115.49","110.90","557.44M","0.82%" +"05/28/2024","113.90","110.24","114.94","109.88","652.73M","6.98%" +"05/24/2024","106.47","104.45","106.47","103.00","429.49M","2.57%" +"05/23/2024","103.80","102.03","106.32","101.52","835.07M","9.32%" +"05/22/2024","94.95","95.46","96.02","93.25","548.65M","-0.46%" +"05/21/2024","95.39","93.60","95.40","93.18","328.95M","0.64%" +"05/20/2024","94.78","93.75","95.20","93.44","318.76M","2.49%" +"05/17/2024","92.48","94.37","94.74","91.81","359.69M","-1.99%" +"05/16/2024","94.36","94.91","95.82","94.10","323.95M","-0.29%" +"05/15/2024","94.63","92.47","94.86","91.60","417.74M","3.58%" +"05/14/2024","91.36","89.60","91.65","88.93","296.51M","1.06%" +"05/13/2024","90.40","90.48","91.00","88.53","289.68M","0.58%" +"05/10/2024","89.88","90.30","91.40","89.23","335.33M","1.27%" +"05/09/2024","88.75","90.53","91.07","88.23","378.01M","-1.84%" +"05/08/2024","90.41","89.48","91.19","89.42","325.72M","-0.15%" +"05/07/2024","90.55","91.10","91.78","89.01","437.34M","-1.73%" +"05/06/2024","92.14","89.39","92.22","89.06","376.20M","3.77%" +"05/03/2024","88.79","87.79","89.28","87.04","398.34M","3.46%" +"05/02/2024","85.82","84.45","86.24","83.20","377.90M","3.35%" +"05/01/2024","83.04","85.08","86.00","81.25","559.86M","-3.89%" +"04/30/2024","86.40","87.24","88.82","86.30","363.71M","-1.55%" +"04/29/2024","87.76","87.59","87.99","85.27","388.97M","0.03%" +"04/26/2024","87.73","83.82","88.33","83.39","551.01M","6.17%" +"04/25/2024","82.63","78.87","83.32","78.22","424.64M","3.70%" +"04/24/2024","79.68","83.95","84.08","79.18","512.21M","-3.32%" +"04/23/2024","82.42","80.77","82.77","80.26","438.56M","3.65%" +"04/22/2024","79.52","78.10","80.07","76.40","596.34M","4.36%" +"04/19/2024","76.20","83.15","84.32","75.61","875.20M","-10.00%" +"04/18/2024","84.67","84.97","86.19","82.40","447.26M","0.76%" +"04/17/2024","84.03","88.34","88.78","83.95","495.40M","-3.88%" +"04/16/2024","87.42","86.43","88.12","86.06","370.45M","1.65%" +"04/15/2024","86.00","89.10","90.61","85.93","443.08M","-2.48%" +"04/12/2024","88.19","89.70","90.17","87.53","426.80M","-2.68%" +"04/11/2024","90.62","87.42","90.74","86.93","431.64M","4.11%" +"04/10/2024","87.04","83.93","87.40","83.71","431.93M","1.98%" +"04/09/2024","85.35","87.44","87.64","83.02","503.55M","-2.04%" +"04/08/2024","87.13","88.70","88.83","86.73","283.22M","-1.00%" +"04/05/2024","88.01","86.87","88.48","85.93","399.68M","2.44%" +"04/04/2024","85.91","90.41","90.63","85.88","434.96M","-3.43%" +"04/03/2024","88.96","88.48","90.37","88.40","370.07M","-0.55%" +"04/02/2024","89.45","88.45","90.09","87.62","433.06M","-1.01%" +"04/01/2024","90.36","90.30","92.22","89.20","452.44M","0.00%" +"03/28/2024","90.36","90.00","91.30","89.19","435.21M","0.12%" +"03/27/2024","90.25","93.11","93.24","89.12","586.07M","-2.50%" +"03/26/2024","92.56","95.85","96.38","92.50","513.65M","-2.57%" +"03/25/2024","95.00","93.94","96.77","93.51","552.14M","0.75%" +"03/22/2024","94.29","91.14","94.78","90.83","586.72M","3.12%" +"03/21/2024","91.44","92.30","92.65","90.41","480.37M","1.18%" +"03/20/2024","90.37","89.80","90.41","88.22","479.06M","1.09%" +"03/19/2024","89.40","86.70","90.54","85.01","672.17M","1.07%" +"03/18/2024","88.45","90.39","92.41","87.08","668.98M","0.69%" +"03/15/2024","87.84","86.93","89.55","86.26","642.09M","-0.11%" +"03/14/2024","87.94","89.58","90.65","86.60","602.32M","-3.25%" +"03/13/2024","90.89","91.06","91.50","88.44","635.71M","-1.11%" +"03/12/2024","91.91","88.05","91.96","86.15","668.08M","7.16%" +"03/11/2024","85.77","86.43","88.80","84.17","678.36M","-2.01%" +"03/08/2024","87.53","95.14","97.40","86.51","1.14B","-5.55%" +"03/07/2024","92.67","90.16","92.77","89.60","608.12M","4.48%" +"03/06/2024","88.70","88.02","89.72","87.03","582.52M","3.19%" +"03/05/2024","85.96","85.27","86.10","83.42","520.64M","0.84%" +"03/04/2024","85.24","84.13","87.69","83.72","615.62M","3.60%" +"03/01/2024","82.28","80.00","82.30","79.44","479.14M","4.01%" +"02/29/2024","79.11","79.09","79.99","78.35","507.29M","1.87%" +"02/28/2024","77.66","77.62","78.93","77.12","393.11M","-1.32%" +"02/27/2024","78.70","79.38","79.48","77.16","391.71M","-0.49%" +"02/26/2024","79.09","79.70","80.65","78.50","503.97M","0.34%" +"02/23/2024","78.82","80.79","82.39","77.57","829.39M","0.36%" +"02/22/2024","78.54","75.03","78.58","74.22","865.10M","16.41%" +"02/21/2024","67.47","68.01","68.89","66.25","690.30M","-2.85%" +"02/20/2024","69.45","71.95","71.96","67.73","704.83M","-4.35%" +"02/16/2024","72.61","74.10","74.40","72.50","495.33M","-0.07%" +"02/15/2024","72.66","73.87","73.97","72.40","420.12M","-1.68%" +"02/14/2024","73.90","73.20","74.24","71.94","504.92M","2.45%" +"02/13/2024","72.13","70.40","73.45","69.62","602.58M","-0.17%" +"02/12/2024","72.25","72.60","74.61","71.25","613.71M","0.17%" +"02/09/2024","72.13","70.53","72.19","70.21","436.64M","3.58%" +"02/08/2024","69.64","70.07","70.79","69.45","414.42M","-0.66%" +"02/07/2024","70.10","68.32","70.22","67.60","495.57M","2.76%" +"02/06/2024","68.22","69.63","69.75","66.30","683.11M","-1.60%" +"02/05/2024","69.33","68.22","69.50","67.20","680.08M","4.79%" +"02/02/2024","66.16","63.97","66.60","63.69","476.58M","4.97%" +"02/01/2024","63.03","62.10","63.19","61.65","369.15M","2.44%" +"01/31/2024","61.53","61.44","62.27","60.70","453.79M","-1.98%" +"01/30/2024","62.77","62.90","63.49","62.26","410.74M","0.48%" +"01/29/2024","62.47","61.23","62.49","60.91","348.73M","2.36%" +"01/26/2024","61.03","60.96","61.78","60.57","390.31M","-0.96%" +"01/25/2024","61.62","62.35","62.72","60.85","482.78M","0.42%" +"01/24/2024","61.36","60.30","62.85","59.94","560.27M","2.49%" +"01/23/2024","59.87","59.57","59.91","58.59","294.65M","0.37%" +"01/22/2024","59.65","60.05","60.33","59.07","452.95M","0.27%" +"01/19/2024","59.49","57.99","59.50","57.23","543.50M","4.17%" +"01/18/2024","57.11","57.26","57.60","56.11","491.65M","1.89%" +"01/17/2024","56.05","56.35","56.47","54.74","474.39M","-0.59%" +"01/16/2024","56.38","55.02","56.83","54.90","449.58M","3.05%" +"01/12/2024","54.71","54.62","54.97","54.33","352.99M","-0.20%" +"01/11/2024","54.82","55.00","55.35","53.56","596.76M","0.86%" +"01/10/2024","54.35","53.62","54.60","53.49","533.80M","2.28%" +"01/09/2024","53.14","52.40","54.33","51.69","773.10M","1.70%" +"01/08/2024","52.25","49.51","52.27","49.48","642.51M","6.42%" +"01/05/2024","49.10","48.46","49.55","48.31","415.04M","2.29%" +"01/04/2024","48.00","47.77","48.50","47.51","306.53M","0.90%" +"01/03/2024","47.57","47.48","48.18","47.32","320.90M","-1.25%" +"01/02/2024","48.17","49.24","49.30","47.59","411.25M","-2.73%" +"12/29/2023","49.52","49.81","50.00","48.75","389.29M","0.00%" +"12/28/2023","49.52","49.64","49.88","49.41","246.59M","0.20%" +"12/27/2023","49.42","49.51","49.68","49.09","233.65M","0.28%" +"12/26/2023","49.28","48.97","49.60","48.96","244.20M","0.92%" +"12/22/2023","48.83","49.20","49.38","48.47","252.51M","-0.33%" +"12/21/2023","48.99","48.81","49.09","48.42","300.43M","1.83%" +"12/20/2023","48.11","49.66","50.00","48.10","397.89M","-3.00%" +"12/19/2023","49.60","49.42","49.70","48.90","464.44M","-0.96%" +"12/18/2023","50.08","49.40","50.43","49.15","412.59M","2.43%" +"12/15/2023","48.89","48.19","49.40","48.12","479.95M","1.12%" +"12/14/2023","48.35","48.39","48.67","47.42","391.23M","0.54%" +"12/13/2023","48.09","47.63","48.59","47.61","447.79M","0.90%" +"12/12/2023","47.66","46.05","47.67","46.05","372.39M","2.21%" +"12/11/2023","46.63","47.49","47.53","45.83","509.73M","-1.85%" +"12/08/2023","47.51","46.59","47.74","46.55","359.22M","1.95%" +"12/07/2023","46.60","45.70","46.63","45.60","350.82M","2.42%" +"12/06/2023","45.50","47.21","47.39","45.41","380.59M","-2.30%" +"12/05/2023","46.57","45.47","46.60","45.27","371.72M","2.33%" +"12/04/2023","45.51","46.08","46.08","45.01","437.54M","-2.69%" +"12/01/2023","46.77","46.52","47.20","46.19","369.32M","0.00%" +"11/30/2023","46.77","48.02","48.11","46.42","526.25M","-2.85%" +"11/29/2023","48.14","48.38","48.76","47.86","382.00M","0.67%" +"11/28/2023","47.82","48.24","48.32","47.47","401.49M","-0.87%" +"11/27/2023","48.24","47.80","48.53","47.65","395.66M","0.96%" +"11/24/2023","47.78","48.47","48.92","47.74","294.64M","-1.93%" +"11/22/2023","48.72","49.85","50.33","47.69","900.64M","-2.44%" +"11/21/2023","49.94","50.13","50.52","49.22","565.75M","-0.93%" +"11/20/2023","50.41","49.31","50.55","49.18","416.14M","2.25%" +"11/17/2023","49.30","49.52","49.72","49.01","325.90M","-0.36%" +"11/16/2023","49.48","48.68","49.52","48.33","339.76M","1.21%" +"11/15/2023","48.89","49.94","49.96","48.20","475.50M","-1.55%" +"11/14/2023","49.66","49.68","49.83","49.04","416.95M","2.14%" +"11/13/2023","48.62","48.32","49.12","48.10","384.14M","0.58%" +"11/10/2023","48.34","47.50","48.47","47.28","422.44M","2.96%" +"11/09/2023","46.95","47.47","48.23","46.75","540.50M","0.82%" +"11/08/2023","46.57","46.10","46.87","45.97","346.72M","1.35%" +"11/07/2023","45.95","45.72","46.22","45.16","343.17M","0.44%" +"11/06/2023","45.75","45.28","45.94","44.90","400.73M","1.64%" +"11/03/2023","45.01","44.02","45.31","43.72","424.61M","3.45%" +"11/02/2023","43.51","43.33","43.88","42.89","409.17M","2.79%" +"11/01/2023","42.33","40.88","42.38","40.87","437.59M","3.80%" +"10/31/2023","40.78","40.45","40.88","39.23","517.97M","-0.92%" +"10/30/2023","41.16","41.09","41.77","40.48","388.03M","1.63%" +"10/27/2023","40.50","41.13","41.21","40.02","416.78M","0.42%" +"10/26/2023","40.33","41.85","42.26","39.88","541.00M","-3.47%" +"10/25/2023","41.78","43.40","43.65","41.55","398.38M","-4.31%" +"10/24/2023","43.66","43.08","43.70","42.69","401.46M","1.58%" +"10/23/2023","42.98","41.23","43.25","40.95","478.53M","3.84%" +"10/20/2023","41.39","41.89","42.47","41.08","477.27M","-1.69%" +"10/19/2023","42.10","42.81","43.30","41.88","501.23M","-0.24%" +"10/18/2023","42.20","42.59","43.22","41.83","627.29M","-3.96%" +"10/17/2023","43.94","44.00","44.75","42.48","812.33M","-4.66%" +"10/16/2023","46.09","45.06","46.23","44.91","375.10M","1.39%" +"10/13/2023","45.46","46.96","47.12","45.28","475.43M","-3.17%" +"10/12/2023","46.95","46.78","47.61","46.33","481.32M","0.30%" +"10/11/2023","46.81","46.20","46.86","46.05","378.14M","2.21%" +"10/10/2023","45.80","45.31","46.26","45.09","368.58M","1.17%" +"10/09/2023","45.27","44.84","45.60","44.37","409.67M","-1.07%" +"10/06/2023","45.76","44.19","45.79","44.03","434.44M","2.39%" +"10/05/2023","44.69","44.05","44.90","43.89","393.48M","1.48%" +"10/04/2023","44.04","43.74","44.14","43.29","361.82M","1.19%" +"10/03/2023","43.52","44.81","45.13","43.25","470.85M","-2.81%" +"10/02/2023","44.78","44.03","45.17","43.86","433.30M","2.94%" +"09/29/2023","43.50","43.83","44.14","43.31","397.83M","0.95%" +"09/28/2023","43.09","42.46","43.45","42.12","424.66M","1.46%" +"09/27/2023","42.47","42.33","42.87","41.63","444.94M","1.34%" +"09/26/2023","41.91","42.00","42.82","41.66","402.28M","-0.73%" +"09/25/2023","42.22","41.59","42.54","41.18","419.09M","1.47%" +"09/22/2023","41.61","41.57","42.12","41.23","479.24M","1.44%" +"09/21/2023","41.02","41.58","42.10","40.98","450.74M","-2.89%" +"09/20/2023","42.24","43.60","43.90","42.22","367.11M","-2.94%" +"09/19/2023","43.52","43.83","43.97","43.00","373.06M","-1.02%" +"09/18/2023","43.97","42.75","44.24","42.00","500.27M","0.16%" +"09/15/2023","43.90","45.34","45.60","43.81","506.83M","-3.69%" +"09/14/2023","45.58","45.95","45.99","45.13","370.10M","0.22%" +"09/13/2023","45.48","44.60","45.93","44.50","398.36M","1.36%" +"09/12/2023","44.87","44.74","45.67","44.53","349.26M","-0.69%" +"09/11/2023","45.18","46.15","46.16","44.31","473.97M","-0.86%" +"09/08/2023","45.57","45.94","46.61","45.27","473.90M","-1.45%" +"09/07/2023","46.24","45.52","46.34","45.15","433.33M","-1.74%" +"09/06/2023","47.06","48.44","48.55","46.58","468.67M","-3.07%" +"09/05/2023","48.55","48.22","48.85","47.86","382.65M","0.08%" +"09/01/2023","48.51","49.76","49.80","48.14","463.83M","-1.70%" +"08/31/2023","49.35","49.38","49.74","48.96","528.57M","0.18%" +"08/30/2023","49.26","49.04","49.93","48.42","735.21M","0.98%" +"08/29/2023","48.78","46.67","49.08","46.39","701.40M","4.14%" +"08/28/2023","46.84","46.48","46.98","44.89","685.19M","1.78%" +"08/25/2023","46.02","47.01","47.80","45.02","925.34M","-2.42%" +"08/24/2023","47.16","50.22","50.27","47.16","1.16B","0.08%" +"08/23/2023","47.12","45.87","47.20","45.21","779.05M","3.17%" +"08/22/2023","45.67","48.13","48.19","45.33","757.21M","-2.77%" +"08/21/2023","46.97","44.49","47.06","44.22","692.57M","8.48%" +"08/18/2023","43.30","42.63","43.58","41.66","583.77M","-0.09%" +"08/17/2023","43.34","43.97","44.06","43.00","452.39M","-0.34%" +"08/16/2023","43.49","44.52","44.67","43.41","527.45M","-1.02%" +"08/15/2023","43.94","44.56","45.27","43.71","676.51M","0.43%" +"08/14/2023","43.75","40.49","43.80","40.31","690.29M","7.10%" +"08/11/2023","40.85","41.75","42.02","40.64","533.09M","-3.63%" +"08/10/2023","42.39","42.16","43.57","41.84","492.71M","-0.38%" +"08/09/2023","42.55","44.27","44.31","42.13","586.45M","-4.72%" +"08/08/2023","44.66","44.85","45.24","44.06","353.84M","-1.67%" +"08/07/2023","45.42","45.11","45.54","44.56","322.15M","1.66%" +"08/04/2023","44.68","44.98","45.64","44.39","362.67M","0.36%" +"08/03/2023","44.52","43.80","45.12","43.80","325.08M","0.56%" +"08/02/2023","44.27","45.83","45.84","43.39","530.14M","-4.82%" +"08/01/2023","46.51","46.46","46.90","46.03","239.28M","-0.47%" +"07/31/2023","46.73","46.75","47.13","46.51","251.06M","-0.04%" +"07/28/2023","46.75","46.67","47.03","46.38","331.19M","1.85%" +"07/27/2023","45.90","46.52","47.40","45.75","455.98M","0.99%" +"07/26/2023","45.45","46.02","46.05","44.63","364.24M","-0.50%" +"07/25/2023","45.68","44.94","46.18","44.92","348.08M","2.40%" +"07/24/2023","44.61","44.73","45.11","44.04","383.10M","0.68%" +"07/21/2023","44.31","45.79","45.87","44.10","963.77M","-2.66%" +"07/20/2023","45.52","46.51","47.09","45.06","537.86M","-3.31%" +"07/19/2023","47.08","47.46","47.82","46.74","427.50M","-0.86%" +"07/18/2023","47.49","46.70","47.90","45.73","570.19M","2.22%" +"07/17/2023","46.46","46.29","46.50","45.26","510.49M","2.18%" +"07/14/2023","45.47","46.58","48.09","45.06","772.08M","-1.11%" +"07/13/2023","45.98","44.52","46.16","44.49","478.20M","4.74%" +"07/12/2023","43.90","43.03","43.94","42.78","481.28M","3.51%" +"07/11/2023","42.41","42.48","42.76","42.07","298.24M","0.55%" +"07/10/2023","42.18","42.66","42.81","41.65","353.91M","-0.75%" +"07/07/2023","42.50","42.32","43.21","42.18","355.88M","0.95%" +"07/06/2023","42.10","41.84","42.18","41.35","304.14M","-0.52%" +"07/05/2023","42.32","42.13","43.18","42.09","323.62M","-0.21%" +"07/03/2023","42.41","42.52","42.90","42.20","198.21M","0.26%" +"06/30/2023","42.30","41.68","42.55","41.50","501.15M","3.63%" +"06/29/2023","40.82","41.56","41.60","40.60","380.51M","-0.73%" +"06/28/2023","41.12","40.66","41.84","40.52","582.64M","-1.81%" +"06/27/2023","41.88","40.80","41.94","40.45","462.17M","3.08%" +"06/26/2023","40.63","42.46","42.76","40.10","594.32M","-3.74%" +"06/23/2023","42.21","42.46","42.81","42.02","358.14M","-1.88%" +"06/22/2023","43.02","42.25","43.43","42.23","417.74M","-0.07%" +"06/21/2023","43.05","43.50","43.62","42.08","551.60M","-1.73%" +"06/20/2023","43.81","43.00","43.99","42.67","451.15M","2.62%" +"06/16/2023","42.69","43.45","43.72","42.66","655.71M","0.09%" +"06/15/2023","42.65","42.60","43.29","42.15","568.62M","-0.81%" +"06/14/2023","43.00","40.82","43.00","40.55","740.47M","4.83%" +"06/13/2023","41.02","40.19","41.10","39.74","613.21M","3.90%" +"06/12/2023","39.48","39.20","39.53","38.62","389.67M","1.83%" +"06/09/2023","38.77","39.04","39.71","38.57","427.72M","0.68%" +"06/08/2023","38.51","37.72","38.86","37.51","417.77M","2.75%" +"06/07/2023","37.48","38.91","39.50","37.36","512.00M","-3.03%" +"06/06/2023","38.65","38.83","39.16","38.15","388.73M","-1.33%" +"06/05/2023","39.17","38.91","39.57","38.71","396.09M","-0.41%" +"06/02/2023","39.33","40.10","40.50","39.06","482.73M","-1.11%" +"06/01/2023","39.77","38.49","40.05","38.34","635.87M","5.13%" +"05/31/2023","37.83","39.49","40.30","37.82","1.00B","-5.68%" +"05/30/2023","40.11","40.59","41.94","39.95","923.40M","2.98%" +"05/26/2023","38.95","37.89","39.17","37.55","714.40M","2.55%" +"05/25/2023","37.98","38.52","39.48","36.63","1.54B","24.36%" +"05/24/2023","30.54","30.21","30.61","29.81","721.42M","-0.49%" +"05/23/2023","30.69","31.00","31.29","30.63","356.25M","-1.57%" +"05/22/2023","31.18","30.90","31.52","30.68","372.00M","-0.26%" +"05/19/2023","31.26","31.54","31.58","30.92","473.91M","-1.33%" +"05/18/2023","31.68","30.41","31.83","30.32","748.72M","4.97%" +"05/17/2023","30.18","29.58","30.20","29.43","432.54M","3.32%" +"05/16/2023","29.21","28.84","29.87","28.83","449.40M","0.90%" +"05/15/2023","28.95","28.51","28.97","28.15","293.93M","2.15%" +"05/12/2023","28.34","28.53","28.78","28.05","274.22M","-0.84%" +"05/11/2023","28.58","28.90","28.95","28.25","322.15M","-1.07%" +"05/10/2023","28.89","29.00","29.11","28.46","369.35M","1.12%" +"05/09/2023","28.57","28.90","28.97","28.45","314.87M","-1.99%" +"05/08/2023","29.15","28.52","29.22","28.35","344.98M","1.64%" +"05/05/2023","28.68","27.83","28.75","27.73","361.49M","4.06%" +"05/04/2023","27.56","27.65","27.86","27.24","321.85M","-0.86%" +"05/03/2023","27.80","27.84","28.37","27.47","383.39M","-1.45%" +"05/02/2023","28.21","28.68","28.84","28.08","402.73M","-2.42%" +"05/01/2023","28.91","27.84","29.06","27.78","570.33M","4.18%" +"04/28/2023","27.75","27.23","27.76","27.07","292.22M","1.91%" +"04/27/2023","27.23","27.36","27.50","26.63","377.16M","1.00%" +"04/26/2023","26.96","27.00","27.33","26.71","406.34M","2.74%" +"04/25/2023","26.24","27.08","27.25","26.23","378.53M","-2.96%" +"04/24/2023","27.04","27.01","27.37","26.67","339.28M","-0.29%" +"04/21/2023","27.12","26.95","27.18","26.72","345.10M","0.07%" +"04/20/2023","27.10","27.67","28.03","27.00","427.71M","-2.97%" +"04/19/2023","27.93","27.36","28.00","27.23","358.66M","0.94%" +"04/18/2023","27.67","27.53","28.11","27.36","604.81M","2.48%" +"04/17/2023","27.00","26.57","27.01","26.43","321.47M","0.90%" +"04/14/2023","26.76","26.50","26.88","26.22","395.66M","1.13%" +"04/13/2023","26.46","26.73","26.89","26.33","353.62M","-0.15%" +"04/12/2023","26.50","27.37","27.47","26.45","446.26M","-2.47%" +"04/11/2023","27.17","27.72","27.79","27.13","314.38M","-1.49%" +"04/10/2023","27.58","26.82","27.62","26.67","395.28M","2.00%" +"04/06/2023","27.04","26.58","27.08","26.43","397.65M","0.60%" +"04/05/2023","26.88","26.83","27.00","26.39","515.01M","-2.08%" +"04/04/2023","27.45","27.97","28.00","27.31","368.59M","-1.82%" +"04/03/2023","27.96","27.51","28.00","27.34","398.72M","0.65%" +"03/31/2023","27.78","27.14","27.83","27.11","433.93M","1.46%" +"03/30/2023","27.38","27.23","27.50","27.10","364.52M","1.48%" +"03/29/2023","26.98","26.82","27.08","26.60","393.69M","2.16%" +"03/28/2023","26.41","26.45","26.51","25.85","356.10M","-0.45%" +"03/27/2023","26.53","26.84","27.00","26.36","361.03M","-0.93%" +"03/24/2023","26.78","27.03","27.17","26.36","455.41M","-1.51%" +"03/23/2023","27.19","27.12","27.50","26.69","564.89M","2.72%" +"03/22/2023","26.47","26.43","27.59","26.24","797.30M","1.03%" +"03/21/2023","26.20","26.18","26.39","25.38","547.41M","1.16%" +"03/20/2023","25.90","25.61","26.02","25.13","432.75M","0.66%" +"03/17/2023","25.73","25.98","26.40","25.67","848.55M","0.74%" +"03/16/2023","25.54","24.03","25.59","23.89","584.95M","5.41%" +"03/15/2023","24.23","23.76","24.29","23.36","524.49M","0.71%" +"03/14/2023","24.06","23.50","24.22","23.46","474.91M","4.75%" +"03/13/2023","22.97","22.75","23.30","22.30","421.89M","0.04%" +"03/10/2023","22.96","23.41","23.63","22.73","474.87M","-2.05%" +"03/09/2023","23.44","24.18","24.45","23.38","501.26M","-3.06%" +"03/08/2023","24.18","23.49","24.20","23.42","513.57M","3.82%" +"03/07/2023","23.29","23.60","24.12","23.24","515.15M","-1.10%" +"03/06/2023","23.55","23.89","24.25","23.49","437.43M","-1.42%" +"03/03/2023","23.89","23.32","23.90","23.13","412.39M","2.49%" +"03/02/2023","23.31","22.49","23.38","22.43","390.07M","2.69%" +"03/01/2023","22.70","23.19","23.26","22.51","460.03M","-2.24%" +"02/28/2023","23.22","23.37","23.82","23.21","455.96M","-1.19%" +"02/27/2023","23.50","23.67","23.88","23.45","452.99M","0.90%" +"02/24/2023","23.29","23.23","23.47","22.95","589.72M","-1.56%" +"02/23/2023","23.66","23.44","23.89","23.02","1.12B","14.02%" +"02/22/2023","20.75","20.71","21.10","20.42","513.18M","0.44%" +"02/21/2023","20.66","21.00","21.49","20.62","410.01M","-3.41%" +"02/17/2023","21.39","21.63","21.74","20.98","465.89M","-2.77%" +"02/16/2023","22.00","22.13","22.55","21.93","412.03M","-3.34%" +"02/15/2023","22.76","22.55","22.86","22.11","421.19M","-0.91%" +"02/14/2023","22.97","21.58","23.05","21.37","675.47M","5.42%" +"02/13/2023","21.79","21.54","22.05","20.96","474.92M","2.44%" +"02/10/2023","21.27","21.69","22.08","20.81","550.74M","-4.79%" +"02/09/2023","22.34","22.61","23.02","22.12","523.88M","0.63%" +"02/08/2023","22.20","22.39","22.88","22.01","559.65M","0.14%" +"02/07/2023","22.17","21.38","22.26","21.15","664.15M","5.12%" +"02/06/2023","21.09","20.81","21.57","20.79","452.20M","-0.05%" +"02/03/2023","21.10","21.00","21.74","20.79","429.37M","-2.81%" +"02/02/2023","21.71","21.00","21.95","20.70","564.28M","3.68%" +"02/01/2023","20.94","19.69","21.19","19.61","660.48M","7.16%" +"01/31/2023","19.54","19.17","19.69","18.95","498.02M","1.98%" +"01/30/2023","19.16","19.95","20.14","19.15","488.61M","-5.89%" +"01/27/2023","20.36","19.46","20.63","19.41","542.14M","2.83%" +"01/26/2023","19.80","19.70","20.17","19.28","489.54M","2.48%" +"01/25/2023","19.32","18.91","19.37","18.58","449.54M","0.26%" +"01/24/2023","19.27","18.83","19.50","18.82","496.20M","0.42%" +"01/23/2023","19.19","18.06","19.25","17.82","655.16M","7.57%" +"01/20/2023","17.84","17.01","17.86","16.82","564.97M","6.38%" +"01/19/2023","16.77","17.04","17.20","16.73","452.93M","-3.51%" +"01/18/2023","17.38","17.67","17.87","17.28","439.62M","-1.81%" +"01/17/2023","17.70","16.90","17.73","16.90","511.10M","4.73%" +"01/13/2023","16.90","16.28","16.92","16.16","447.29M","2.36%" +"01/12/2023","16.51","16.10","16.64","15.49","551.41M","3.19%" +"01/11/2023","16.00","15.84","16.03","15.56","353.28M","0.57%" +"01/10/2023","15.91","15.51","15.96","15.47","384.10M","1.79%" +"01/09/2023","15.63","15.28","16.06","15.14","504.23M","5.18%" +"01/06/2023","14.86","14.47","15.01","14.03","405.04M","4.13%" +"01/05/2023","14.27","14.49","14.56","14.15","389.17M","-3.25%" +"01/04/2023","14.75","14.57","14.85","14.24","431.32M","3.07%" +"01/03/2023","14.31","14.85","15.00","14.10","401.28M","-2.05%" +"12/30/2022","14.61","14.33","14.63","14.23","310.49M","0.07%" +"12/29/2022","14.60","14.40","14.68","14.23","354.92M","3.99%" +"12/28/2022","14.04","13.93","14.26","13.88","351.07M","-0.57%" +"12/27/2022","14.12","15.07","15.10","14.06","464.90M","-7.17%" +"12/23/2022","15.21","15.20","15.34","14.88","349.33M","-0.85%" +"12/22/2022","15.34","16.09","16.14","14.88","565.05M","-7.03%" +"12/21/2022","16.50","16.11","16.63","16.10","325.03M","2.55%" +"12/20/2022","16.09","16.06","16.31","15.85","403.26M","-0.98%" +"12/19/2022","16.25","16.57","16.61","16.14","354.04M","-1.93%" +"12/16/2022","16.57","16.86","17.04","16.41","478.23M","-2.24%" +"12/15/2022","16.95","17.15","17.32","16.70","478.54M","-4.07%" +"12/14/2022","17.67","17.99","18.25","17.42","496.89M","-2.21%" +"12/13/2022","18.07","18.53","18.79","17.71","656.59M","3.02%" +"12/12/2022","17.54","17.04","17.54","16.80","457.33M","3.18%" +"12/09/2022","17.00","17.16","17.58","16.98","465.34M","-0.99%" +"12/08/2022","17.17","16.27","17.18","15.96","515.46M","6.51%" +"12/07/2022","16.12","15.77","16.19","15.67","372.39M","0.81%" +"12/06/2022","15.99","16.53","16.57","15.82","352.69M","-3.73%" +"12/05/2022","16.61","16.68","17.00","16.47","352.26M","-1.60%" +"12/02/2022","16.88","16.66","16.93","16.45","371.39M","-1.52%" +"12/01/2022","17.14","17.00","17.27","16.64","470.98M","1.30%" +"11/30/2022","16.92","15.70","16.93","15.60","565.30M","8.18%" +"11/29/2022","15.64","15.83","15.93","15.52","298.38M","-1.20%" +"11/28/2022","15.83","16.03","16.36","15.72","304.15M","-2.70%" +"11/25/2022","16.27","16.32","16.49","16.17","167.93M","-1.51%" +"11/23/2022","16.52","16.10","16.53","16.05","427.24M","2.99%" +"11/22/2022","16.04","15.33","16.06","15.12","472.87M","4.70%" +"11/21/2022","15.32","15.15","15.48","15.08","404.74M","-0.58%" +"11/18/2022","15.41","15.97","16.00","15.12","492.07M","-1.72%" +"11/17/2022","15.68","15.71","16.27","15.54","710.89M","-1.45%" +"11/16/2022","15.91","16.16","16.36","15.87","649.55M","-4.56%" +"11/15/2022","16.67","16.72","17.00","16.38","545.88M","2.27%" +"11/14/2022","16.30","16.22","16.54","15.92","527.85M","-0.18%" +"11/11/2022","16.33","15.81","16.39","15.48","655.49M","3.68%" +"11/10/2022","15.75","14.80","15.77","14.55","700.82M","14.30%" +"11/09/2022","13.78","14.16","14.21","13.76","454.41M","-5.62%" +"11/08/2022","14.60","14.80","14.89","14.22","595.29M","2.10%" +"11/07/2022","14.30","14.23","14.41","13.95","410.06M","0.99%" +"11/04/2022","14.16","13.99","14.23","13.70","612.58M","5.51%" +"11/03/2022","13.42","13.04","13.78","12.96","500.06M","1.51%" +"11/02/2022","13.22","13.85","14.21","13.21","672.63M","-2.36%" +"11/01/2022","13.54","13.81","13.93","13.52","432.82M","0.30%" +"10/31/2022","13.50","13.78","13.84","13.30","486.34M","-2.39%" +"10/28/2022","13.83","13.10","13.85","13.06","521.04M","4.93%" +"10/27/2022","13.18","13.63","13.84","13.12","583.11M","2.17%" +"10/26/2022","12.90","12.87","13.39","12.71","535.53M","-2.71%" +"10/25/2022","13.26","12.69","13.30","12.66","505.48M","5.24%" +"10/24/2022","12.60","12.51","12.71","12.06","517.46M","1.04%" +"10/21/2022","12.47","12.10","12.50","11.89","609.49M","2.30%" +"10/20/2022","12.19","12.11","12.77","12.11","652.40M","1.16%" +"10/19/2022","12.05","11.88","12.35","11.83","523.13M","0.67%" +"10/18/2022","11.97","12.34","12.49","11.62","659.36M","0.67%" +"10/17/2022","11.89","11.52","11.95","11.52","580.77M","5.88%" +"10/14/2022","11.23","12.06","12.11","11.20","713.43M","-6.10%" +"10/13/2022","11.96","10.97","12.08","10.81","850.10M","4.00%" +"10/12/2022","11.50","11.58","11.73","11.35","492.59M","-0.78%" +"10/11/2022","11.59","11.56","11.85","11.28","667.48M","-0.69%" +"10/10/2022","11.67","12.04","12.12","11.41","698.70M","-3.39%" +"10/07/2022","12.08","12.51","12.67","12.02","672.48M","-8.00%" +"10/06/2022","13.13","13.22","13.66","13.10","644.16M","-0.61%" +"10/05/2022","13.21","12.91","13.32","12.62","507.13M","0.30%" +"10/04/2022","13.17","12.88","13.22","12.88","584.18M","5.28%" +"10/03/2022","12.51","12.35","12.68","12.11","547.48M","3.05%" +"09/30/2022","12.14","12.09","12.63","12.07","565.64M","-0.65%" +"09/29/2022","12.22","12.45","12.50","11.95","532.76M","-4.08%" +"09/28/2022","12.74","12.41","12.82","12.35","542.41M","2.66%" +"09/27/2022","12.41","12.51","12.74","12.26","553.85M","1.47%" +"09/26/2022","12.23","12.49","12.66","12.21","547.34M","-2.32%" +"09/23/2022","12.52","12.42","12.61","12.26","663.31M","-0.32%" +"09/22/2022","12.56","13.07","13.15","12.43","759.16M","-5.28%" +"09/21/2022","13.26","13.21","14.03","13.11","807.68M","0.61%" +"09/20/2022","13.18","13.21","13.48","13.06","524.82M","-1.49%" +"09/19/2022","13.38","13.01","13.46","13.01","569.69M","1.36%" +"09/16/2022","13.20","12.74","13.21","12.62","670.75M","2.09%" +"09/15/2022","12.93","13.02","13.23","12.79","523.63M","-1.52%" +"09/14/2022","13.13","13.25","13.29","12.91","588.51M","0.00%" +"09/13/2022","13.13","13.80","13.92","13.10","714.96M","-9.51%" +"09/12/2022","14.51","14.37","14.55","14.20","484.16M","0.83%" +"09/09/2022","14.39","14.16","14.47","14.13","487.13M","2.86%" +"09/08/2022","13.99","13.46","14.01","13.37","624.87M","2.04%" +"09/07/2022","13.71","13.56","13.84","13.35","512.66M","1.86%" +"09/06/2022","13.46","13.73","13.78","13.35","535.75M","-1.39%" +"09/02/2022","13.65","14.10","14.17","13.59","743.16M","-2.08%" +"09/01/2022","13.94","14.21","14.38","13.27","1.18B","-7.62%" +"08/31/2022","15.09","15.38","15.54","14.96","573.71M","-2.46%" +"08/30/2022","15.47","15.96","16.04","15.18","530.18M","-2.09%" +"08/29/2022","15.80","16.02","16.34","15.77","496.13M","-2.83%" +"08/26/2022","16.26","17.86","17.92","16.24","769.13M","-9.21%" +"08/25/2022","17.91","16.84","17.95","16.83","770.69M","4.01%" +"08/24/2022","17.22","17.01","17.41","16.89","522.66M","0.23%" +"08/23/2022","17.18","16.99","17.46","16.97","369.99M","0.88%" +"08/22/2022","17.03","17.49","17.56","16.97","409.59M","-4.59%" +"08/19/2022","17.85","18.41","18.52","17.77","441.59M","-4.90%" +"08/18/2022","18.77","18.30","18.86","18.18","415.45M","2.34%" +"08/17/2022","18.34","18.52","18.69","18.14","446.80M","-2.86%" +"08/16/2022","18.88","18.92","19.14","18.50","451.24M","-0.79%" +"08/15/2022","19.03","18.70","19.16","18.61","457.67M","1.71%" +"08/12/2022","18.71","18.16","18.72","17.95","478.09M","4.29%" +"08/11/2022","17.94","18.13","18.71","17.88","509.33M","-0.88%" +"08/10/2022","18.10","17.70","18.12","17.32","597.42M","5.91%" +"08/09/2022","17.09","17.25","17.45","16.72","668.26M","-3.93%" +"08/08/2022","17.79","17.50","18.24","17.24","983.78M","-6.32%" +"08/05/2022","18.99","18.81","19.23","18.67","386.07M","-1.15%" +"08/04/2022","19.21","18.85","19.27","18.76","409.65M","1.69%" +"08/03/2022","18.89","18.18","18.97","18.14","418.15M","1.94%" +"08/02/2022","18.53","18.12","18.94","18.09","489.53M","0.49%" +"08/01/2022","18.44","18.18","18.85","17.99","476.47M","1.54%" +"07/29/2022","18.16","17.81","18.24","17.69","435.46M","1.00%" +"07/28/2022","17.98","17.98","18.14","17.44","474.65M","1.07%" +"07/27/2022","17.79","17.03","17.94","16.91","569.78M","7.62%" +"07/26/2022","16.53","16.89","16.92","16.48","397.86M","-2.88%" +"07/25/2022","17.02","17.02","17.12","16.65","480.75M","-1.73%" +"07/22/2022","17.32","17.89","17.97","17.14","536.67M","-4.04%" +"07/21/2022","18.05","17.89","18.14","17.54","557.05M","1.35%" +"07/20/2022","17.81","16.95","17.93","16.80","760.54M","4.83%" +"07/19/2022","16.99","16.49","17.11","16.17","702.37M","5.53%" +"07/18/2022","16.10","16.30","16.90","16.00","670.52M","2.16%" +"07/15/2022","15.76","15.66","15.78","15.45","385.94M","2.54%" +"07/14/2022","15.37","15.11","15.47","14.73","456.23M","1.39%" +"07/13/2022","15.16","14.59","15.38","14.46","521.92M","0.53%" +"07/12/2022","15.08","15.27","15.43","14.88","458.48M","-0.46%" +"07/11/2022","15.15","15.53","15.53","15.04","438.39M","-4.36%" +"07/08/2022","15.84","15.43","16.04","15.39","467.97M","-0.13%" +"07/07/2022","15.86","15.46","15.95","15.39","492.90M","4.82%" +"07/06/2022","15.13","15.01","15.32","14.79","529.07M","1.14%" +"07/05/2022","14.96","14.18","14.97","14.05","652.21M","3.03%" +"07/01/2022","14.52","14.90","15.06","14.39","577.61M","-4.22%" +"06/30/2022","15.16","15.36","15.57","14.86","686.07M","-2.45%" +"06/29/2022","15.54","15.81","15.82","15.17","482.35M","-2.75%" +"06/28/2022","15.98","16.90","17.20","15.95","461.86M","-5.28%" +"06/27/2022","16.87","17.31","17.33","16.63","427.97M","-1.52%" +"06/24/2022","17.13","16.50","17.14","16.31","472.15M","5.55%" +"06/23/2022","16.23","16.52","16.59","15.85","463.68M","-0.79%" +"06/22/2022","16.36","16.23","16.66","16.18","438.00M","-1.27%" +"06/21/2022","16.57","16.47","17.01","16.41","483.09M","4.35%" +"06/17/2022","15.88","15.65","15.99","15.33","630.33M","1.79%" +"06/16/2022","15.60","15.86","15.94","15.40","545.75M","-5.63%" +"06/15/2022","16.53","16.09","16.87","15.93","563.94M","4.36%" +"06/14/2022","15.84","15.73","16.07","15.41","469.68M","1.21%" +"06/13/2022","15.65","16.00","16.31","15.61","604.15M","-7.78%" +"06/10/2022","16.97","17.60","17.70","16.87","465.65M","-5.98%" +"06/09/2022","18.05","18.48","18.93","18.04","395.57M","-3.22%" +"06/08/2022","18.65","18.80","19.18","18.54","363.25M","-1.48%" +"06/07/2022","18.93","18.47","19.00","18.19","388.91M","0.75%" +"06/06/2022","18.79","19.14","19.34","18.56","422.41M","0.37%" +"06/03/2022","18.72","19.08","19.33","18.52","598.78M","-4.44%" +"06/02/2022","19.59","18.29","19.62","18.20","648.66M","6.93%" +"06/01/2022","18.32","18.72","19.05","18.12","544.51M","-1.87%" +"05/31/2022","18.67","18.98","19.20","18.35","664.10M","-0.74%" +"05/27/2022","18.81","18.19","18.88","18.10","738.38M","5.38%" +"05/26/2022","17.85","16.04","18.09","16.02","996.57M","5.12%" +"05/25/2022","16.98","16.02","17.11","16.00","781.13M","5.14%" +"05/24/2022","16.15","16.51","16.60","15.78","588.55M","-4.44%" +"05/23/2022","16.90","16.27","16.91","16.18","639.89M","1.26%" +"05/20/2022","16.69","17.33","17.41","15.76","739.11M","-2.51%" +"05/19/2022","17.12","16.94","17.69","16.73","621.31M","1.06%" +"05/18/2022","16.94","17.70","18.12","16.86","545.16M","-6.82%" +"05/17/2022","18.18","18.07","18.37","17.63","585.83M","5.33%" +"05/16/2022","17.26","17.51","17.79","17.11","521.45M","-2.54%" +"05/13/2022","17.71","16.79","17.93","16.59","670.44M","9.46%" +"05/12/2022","16.18","16.22","16.79","15.57","708.73M","-2.71%" +"05/11/2022","16.63","17.35","17.75","16.57","670.17M","-5.46%" +"05/10/2022","17.59","17.69","18.20","17.02","761.47M","3.78%" +"05/09/2022","16.95","18.03","18.25","16.83","644.45M","-9.26%" +"05/06/2022","18.68","18.74","19.51","17.99","633.30M","-0.85%" +"05/05/2022","18.84","19.87","19.93","18.50","626.33M","-7.33%" +"05/04/2022","20.33","19.92","20.40","18.75","648.85M","3.72%" +"05/03/2022","19.60","19.40","19.82","19.13","475.75M","0.36%" +"05/02/2022","19.53","18.54","19.57","18.39","572.05M","5.28%" +"04/29/2022","18.55","19.40","20.13","18.52","500.43M","-6.22%" +"04/28/2022","19.78","18.97","20.04","18.49","570.33M","7.44%" +"04/27/2022","18.41","18.60","19.17","18.29","499.46M","-2.02%" +"04/26/2022","18.79","19.72","19.79","18.67","653.14M","-5.58%" +"04/25/2022","19.90","19.20","19.95","19.10","641.57M","1.95%" +"04/22/2022","19.52","20.30","20.49","19.50","624.71M","-3.27%" +"04/21/2022","20.18","21.71","22.39","20.00","656.21M","-6.05%" +"04/20/2022","21.48","22.52","22.67","21.20","468.97M","-3.24%" +"04/19/2022","22.20","21.72","22.37","21.31","512.78M","1.93%" +"04/18/2022","21.78","21.20","22.09","21.08","525.70M","2.45%" +"04/14/2022","21.26","22.50","22.78","21.16","569.10M","-4.23%" +"04/13/2022","22.20","21.73","22.50","21.45","516.94M","3.26%" +"04/12/2022","21.50","22.54","22.73","21.28","662.26M","-1.92%" +"04/11/2022","21.92","22.21","22.32","21.66","575.21M","-5.19%" +"04/08/2022","23.12","23.92","23.92","23.06","524.78M","-4.50%" +"04/07/2022","24.21","24.44","24.72","23.48","557.99M","-0.82%" +"04/06/2022","24.41","24.93","25.30","24.00","703.83M","-5.86%" +"04/05/2022","25.93","27.25","27.32","25.82","436.61M","-5.23%" +"04/04/2022","27.36","26.73","27.56","26.61","397.71M","2.43%" +"04/01/2022","26.71","27.38","27.50","26.27","517.24M","-2.13%" +"03/31/2022","27.29","27.78","28.25","27.27","523.44M","-1.44%" +"03/30/2022","27.69","28.30","28.50","27.50","463.49M","-3.38%" +"03/29/2022","28.66","28.69","28.95","27.98","488.98M","1.56%" +"03/28/2022","28.22","27.76","28.25","27.21","425.49M","1.91%" +"03/25/2022","27.69","27.89","28.36","27.27","579.02M","-1.63%" +"03/24/2022","28.15","26.17","28.32","25.91","877.38M","9.83%" +"03/23/2022","25.63","26.13","26.61","25.58","502.12M","-3.36%" +"03/22/2022","26.52","26.73","27.24","26.07","547.01M","-0.79%" +"03/21/2022","26.73","26.51","27.15","25.97","591.73M","1.06%" +"03/18/2022","26.45","24.80","26.57","24.62","730.72M","6.78%" +"03/17/2022","24.77","24.12","24.84","23.91","471.94M","1.10%" +"03/16/2022","24.50","23.50","24.60","23.17","671.42M","6.66%" +"03/15/2022","22.97","21.52","23.04","21.32","492.00M","7.69%" +"03/14/2022","21.33","21.87","22.26","21.16","385.35M","-3.48%" +"03/11/2022","22.10","23.02","23.14","22.05","367.21M","-2.47%" +"03/10/2022","22.66","22.53","22.79","21.88","428.07M","-1.52%" +"03/09/2022","23.01","22.39","23.22","22.25","492.74M","6.97%" +"03/08/2022","21.51","21.31","22.37","20.65","557.47M","0.75%" +"03/07/2022","21.35","22.82","23.03","21.33","450.82M","-6.93%" +"03/04/2022","22.94","23.38","23.68","22.48","432.01M","-3.25%" +"03/03/2022","23.71","24.26","24.33","23.47","365.10M","-2.11%" +"03/02/2022","24.22","23.76","24.41","23.41","389.64M","3.15%" +"03/01/2022","23.48","24.29","24.38","23.13","412.06M","-3.73%" +"02/28/2022","24.39","23.99","24.66","23.71","477.32M","0.95%" +"02/25/2022","24.16","23.72","24.22","23.38","528.87M","1.73%" +"02/24/2022","23.75","21.02","23.80","20.89","735.80M","6.07%" +"02/23/2022","22.39","23.80","24.15","22.30","566.51M","-4.28%" +"02/22/2022","23.39","23.04","24.06","23.00","633.42M","-1.06%" +"02/18/2022","23.64","24.67","24.99","23.10","761.25M","-3.55%" +"02/17/2022","24.51","25.63","25.79","24.16","810.60M","-7.54%" +"02/16/2022","26.51","26.26","26.58","25.55","732.68M","0.04%" +"02/15/2022","26.50","24.95","26.55","24.78","701.75M","9.19%" +"02/14/2022","24.27","23.93","24.88","23.75","440.42M","1.34%" +"02/11/2022","23.95","25.92","26.15","23.77","605.47M","-7.24%" +"02/10/2022","25.82","26.00","26.92","25.60","513.20M","-3.30%" +"02/09/2022","26.70","25.62","26.73","25.35","524.28M","6.33%" +"02/08/2022","25.11","24.36","25.23","23.98","410.36M","1.54%" +"02/07/2022","24.73","24.37","25.18","24.20","376.87M","1.69%" +"02/04/2022","24.32","23.97","24.64","23.63","354.83M","1.54%" +"02/03/2022","23.95","24.46","25.08","23.78","410.18M","-5.11%" +"02/02/2022","25.24","25.79","25.82","24.55","543.42M","2.44%" +"02/01/2022","24.64","25.10","25.14","23.89","518.93M","0.61%" +"01/31/2022","24.49","23.18","24.51","23.05","564.68M","7.22%" +"01/28/2022","22.84","22.01","22.86","21.30","543.77M","4.10%" +"01/27/2022","21.94","23.57","24.00","21.68","573.35M","-3.65%" +"01/26/2022","22.77","23.24","24.06","22.30","755.96M","2.02%" +"01/25/2022","22.32","22.55","22.94","22.00","664.62M","-4.49%" +"01/24/2022","23.37","22.33","23.38","20.89","915.81M","0.00%" +"01/21/2022","23.37","23.51","24.82","23.26","718.96M","-3.23%" +"01/20/2022","24.15","25.30","25.58","24.08","435.18M","-3.67%" +"01/19/2022","25.07","26.08","26.54","25.05","488.31M","-3.20%" +"01/18/2022","25.90","26.26","26.64","25.77","425.31M","-3.86%" +"01/14/2022","26.94","26.30","27.20","26.21","395.83M","1.39%" +"01/13/2022","26.57","28.38","28.48","26.50","538.87M","-5.11%" +"01/12/2022","28.00","28.07","28.59","27.61","383.41M","0.65%" +"01/11/2022","27.82","27.32","28.07","26.84","404.09M","1.53%" +"01/10/2022","27.40","26.58","27.47","25.64","594.68M","0.55%" +"01/07/2022","27.25","28.14","28.42","27.06","409.94M","-3.30%" +"01/06/2022","28.18","27.64","28.44","27.07","454.19M","2.10%" +"01/05/2022","27.60","28.95","29.42","27.53","498.06M","-5.77%" +"01/04/2022","29.29","30.28","30.47","28.35","527.15M","-2.76%" +"01/03/2022","30.12","29.82","30.71","29.79","392.40M","2.41%" \ No newline at end of file From 75c372132082bbfa878cc1e4a7a62e37573655e9 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 4 Aug 2024 12:30:34 -0700 Subject: [PATCH 054/163] updates --- 0-coursework/week_1.ipynb | 352 ++++++++++++++++++++++++++++++++++++-- 0-coursework/week_2.ipynb | 2 +- 0-coursework/week_3.ipynb | 57 +++++- 2-python_basics/README.md | 11 +- SAMPLE_DATA/simple.csv | 4 + 5 files changed, 401 insertions(+), 25 deletions(-) create mode 100644 SAMPLE_DATA/simple.csv diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 708f948..3bb73fe 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -6,7 +6,13 @@ "source": [ "# Week 1 - Start here!\n", "\n", - "The first program most folks make in any language is a hello world. Type the following in the code cell below and press shift + enter to run it!\n", + "**Topics**: Intro, Data types incl numeric, strings, lists, tuples, if else. \n", + " \n", + "\n", + "The first program most folks make in any language is a hello world. \n", + "\n", + "#### *Exercise*:\n", + "Type the following in the code cell below and press shift + enter to run it!\n", " \n", "`print('Hello World!')`" ] @@ -23,9 +29,9 @@ "metadata": {}, "source": [ "## About Python\n", - "Python is an interpreted language - you don'v have to compile your code before running it. It's disigned to be readable and maintainable, and to do a lot of tasks efficiently. It's one of the most popular languages for good reason.\n", + "Python is an interpreted language - you don't have to compile your code before running it. It's disigned to be readable and maintainable, and to do a lot of tasks efficiently. It's one of the most popular languages for good reason.\n", "\n", - "It may not run as fast as a compiled language like c, c++, fortran, but it has a lot of libraries that are written in c and make specific tasks very fast. We'll work with pandas later in this class. Pandas is build around numpy, a very performant library for manipulating lots of numbers. \n", + "It may not run as fast as a compiled language like c, c++, fortran, but it has a lot of libraries that are written in c and make specific tasks very fast. We'll work with pandas later in this class. Pandas is built on numpy, a very performant library for manipulating lots of numbers. \n", "\n", "### What can we do with Python?\n", "* Machine learning - Look into \"SciPy\" and many other libraries that make ML simple-ish to use.\n", @@ -37,7 +43,6 @@ "* Systems automation - read config files, run commands on computers, collect data, do stuff. \n", "* And more!\n", "\n", - "\n", "#### *Exercise*:\n", "Run \"import this\", without the quotes, in the next cell!" ] @@ -123,11 +128,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ - "# It's Alright\n", + "# It's Pretty Cool\n", "print()\n", "# He is called 'Johnny'.\n", "print()\n", @@ -174,8 +191,7 @@ " user_age = input(prompt_message)\n", " return user_age\n", "\n", - "This defines a function called \"prompt_user_for_age\" that takes an argument, \"user_name\", and it returns the response from the user, \"user_age\".\n", - "\n" + "This defines a function called \"prompt_user_for_age\" that takes an argument, \"user_name\", and it returns the response from the user, \"user_age\"." ] }, { @@ -194,9 +210,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "unterminated string literal (detected at line 1) (3022633391.py, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m Cell \u001b[0;32mIn[9], line 1\u001b[0;36m\u001b[0m\n\u001b[0;31m a = \"The quick brown fox jumps over the lazy dog'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m unterminated string literal (detected at line 1)\n" + ] + } + ], "source": [ "a = \"The quick brown fox jumps over the lazy dog'\n", "# Hint, something should be the same at the start and end of the string\n", @@ -373,21 +398,318 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Strings" + "### Strings\n", + "**Just a plain string**:\n", + "\n", + " foo = \"Nothing exciting here\"\n", + "\n", + "#### Formatting\n", + "\n", + "**f-strings!**\n", + "\n", + " name = 'Lisa's\n", + " weekday = 'Thursday'\n", + " greeting = f'Good morning, {name}! Today is {weekday}.'\n", + "\n", + "**Using format**\n", + "\n", + " greeting = 'Good morning, {}! Today is {}.'.format(name, weekday)\n", + "\n", + "format doesn't have to be done immediately... So a template string can be re-used.\n", + "\n", + " greet_names = ['Peter', 'Joan', 'Zeeke']\n", + " greeting = 'Good morning, {}! Today is {}.'\n", + " for name in greet_names:\n", + " print(greeting.format(name, weedkay))\n", + "\n", + "\n", + "#### String Operations\n", + "String objects have a bunch of built in operations for manipulating them:\n", + "* .upper(), .lower(), .capitalize(), .title()\n", + "* .strip(), .lstrip(), .rstrip()\n", + "* .replace('match_this', 'with_this')\n", + "\n", + "Convert strings to lists of words and vice-versa\n", + "* .split() and .join()\n", + "\n", + "Test strings to see if they are completely anphabetic, numeric, have upper/loqer case, etc.\n", + "* .isupper(), .isdigit(), .isalpha() ...\n", + "\n", + "\n", + "#### *Exercise*\n", + "Let's see if we can sanitize user input... What will our code do if the user types \" red\" with spaces at the front? Or if they type RED? We can use the strip and upper/lower, etc functions to clean up whatever is typed. Make the following changes to the below code:\n", + "* Try running the cell below and entering a color, a capitilized color, or a coloro with a space before/after it. What happens?\n", + "* Uncomment the Add something here line and use the strip and lower options to sanitize user input.\n", + "* Uncomment the elif line ad add \n", + "* Change the strings in the print statements to f strings to include the entered color" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I don't know that color.\n" + ] + } + ], + "source": [ + "known_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')\n", + "\n", + "# Prompt the user to enter their favorite color\n", + "fav_color = input('Enter your favorite color: ')\n", + "\n", + "# Sanitize whatever was entered by the user\n", + "# fav_color = # Add something here...\n", + "\n", + "# Check if the user's favorite color is in the list of known colors\n", + "if fav_color in known_colors:\n", + " print('I know that color!')\n", + "# elif ... # Check if there are numbers in the user input and print a message about it if so\n", + "# print...\n", + "else:\n", + " print(\"I don't know that color.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### split and join\n", + "Sometimes we want to take a single string and split it into lines, or words, or something else and work on each part of it one at a time. For example, we might use split or splitlines to:\n", + "* Print one line at a time\n", + "* Check each word one a time\n", + "\n", + "And we might use join to combine a list of strings into one string with *something* between each one. An example of both of these operations:\n", + "\n", + " >>> foo = 'red green blue'\n", + " >>> bar = foo.split()\n", + " >>> print(bar)\n", + " ['red', 'green', 'blue']\n", + " >>> baz = ', '.join(bar)\n", + " >>> print(baz)\n", + " red, green, blue\n", + " >>> \n", + "\n", + "**Note**\n", + "\n", + "Split and join are string operations... \n", + "\n", + "When when we split, we put .split on our string varlable and the split function returns a list. In this example, foo is a string, and we use it's split function to return a list that we store in the bar variable. \n", + "\n", + "Then we use a new string, **', '** and its join function to join all of the items in the bar list we pass to it. When we join. we don't put .join on the list, we but it on the string that we want to use to join all of the things in the list.\n", + "\n", + "#### *Exercise*\n", + "Let's convert values in a string which are separated by double colons, '::', into a list of values and then into a string with commas between the values. Replace the two '...' below with the needed operations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "colon_separated = 'one::two::word::foo'\n", + "\n", + "# Split the string into a list of words\n", + "list_of_words = ...\n", + "print('This is the list of words:', list_of_words)\n", + "\n", + "# Join the list of words into a string separated by commas\n", + "comma_separated = ...\n", + "print('Now the words are separated by commas:', comma_separated)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a little more complicated example using a for loop to do something to each line from a file one at a time. If you don't have the sample.csv file at the same path, either update the path to where you put it, or comment out the file read lines, and add:\n", + "\n", + "content = '''Age,Name,Fav_Color \n", + "40,Dan,Blue \n", + "9,James,Green \n", + "25,Frank,Black''' \n", + "\n", + "in place of it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is in the file:\n", + "Age,Name,Fav_Color\n", + "40,Dan,Blue\n", + "9,James,Green\n", + "25,Frank,Black\n", + "\n", + "\n", + "And this is each line in the file:\n", + "The line is: Age,Name,Fav_Color\n", + " And each field in the line:\n", + " ['Age', 'Name', 'Fav_Color']\n", + "The line is: 40,Dan,Blue\n", + " And each field in the line:\n", + " ['40', 'Dan', 'Blue']\n", + "The line is: 9,James,Green\n", + " And each field in the line:\n", + " ['9', 'James', 'Green']\n", + "The line is: 25,Frank,Black\n", + " And each field in the line:\n", + " ['25', 'Frank', 'Black']\n" + ] + } + ], + "source": [ + "# First we read in the file:\n", + "csv_file = \"../SAMPLE_DATA/simple.csv\"\n", + "with open(csv_file) as f:\n", + " content = f.read()\n", + "\n", + "print(\"This is in the file:\")\n", + "print(content)\n", + "print()\n", + "\n", + "# Then we split the file into lines, so \"lines\" is a list of strings\n", + "print(\"And this is each line in the file:\")\n", + "lines = content.splitlines()\n", + "\n", + "# And we can iterate over each line in the file. \n", + "for line in lines:\n", + " print(\"The line is:\", line)\n", + " print(\" And each field in the line:\")\n", + " print(f' {line.split(\",\")}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "#### String Slicing\n", + "Strings, lists, and tuples can be \"sliced\" similarly. We put brackest at the end of the varialbe name and use numbers and : to select some number of elements from the string. Given [a:b:c]\n", + "* a is the starting character and is optional. If omitted, we start at the very ferst character of the string. If given, it is inclusive, and counting starts at zero. [0:2] is the same as [:2]. \n", + "* b is the ending character and is exclucive, meaning we take up to but not including this character. \n", + "* c is used to skip characters. [:4:1] is the same as [:4]. [:4:2] will give everey other character up to but not uncluding the character at address 4 in the string. [::3] will give every third character in the string. \n", + "\n", + " >>> foo = 'some stuff la bar'\n", + " >>> foo[:6]\n", + " 'some s'\n", + " >>> foo[-2:]\n", + " 'ar'\n", + " >>> foo[1:3]\n", + " 'om'\n", + " >>> foo[::2]\n", + " 'sm tf abr'\n", + " >>> foo[::3]\n", + " 'setfaa'\n", + " >>> \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Lists" + "### Lists\n", + "List can contain any type of object, not just strings. Even lists of lists! Like strings, list objects have built in functions to work with them:\n", + "\n", + " >>> my_list = ['some', 'words', 'and', 'numbers', 4, 5, 6, 'and a list', ['foo', 'too']]\n", + " >>> my_list.\n", + " my_list.append( my_list.count( my_list.insert( my_list.reverse() \n", + " my_list.clear() my_list.extend( my_list.pop( my_list.sort( \n", + " my_list.copy() my_list.index( my_list.remove( \n", + "\n", + "* 'append' will add an object to the list\n", + "* 'remove' will remove a specific object from the list\n", + "* 'pop' will return the last object in the list and remove it from the list\n", + "* 'extend' is used to combine lists.\n", + "* 'sort' can sort them, but watch out for mixed data types using this.\n", + "* etc!\n", + "\n", + "#### *Exercise*\n", + "Complete the three 'some_colors...' lines below to make the code work:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "some_colors = ['red', 'bananna', 'orange']\n", + "print(\"I know of these colors:\", some_colors)\n", + "\n", + "wrong_color = input('Enter the word that is not a coolor: ')\n", + "wrong_color = wrong_color.strip().lower()\n", + "\n", + "# use pop to remove the wrong color from the list\n", + "some_colors...\n", + "\n", + "print(\"I know of these colors now:\", some_colors)\n", + "new_color = input(\"Enter a new color that I don't know about: \")\n", + "\n", + "# use append to add the new color to the list\n", + "some_colors...\n", + "\n", + "print(\"I know of these colors now:\", some_colors)\n", + "\n", + "print(\"Sometimes I forget colors...\")\n", + "\n", + "# use pop to remove a color from the list and store it in a variable\n", + "forgotten_color = some_colors...\n", + "\n", + "print(f\"I forgot about {forgotten_color}.\")\n", + "print(\"I know of these colors now:\", some_colors)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Tuples" + "### Tuples\n", + "Tuples are like lists, but cannot be changed once defined. When you see a tuple, it implies finality. Tuple objects only have a couple of built in functions:\n", + "\n", + " >>> all_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')\n", + " >>> all_colors.\n", + " all_colors.count( all_colors.index( \n", + "\n", + "* count tells you how many of something are in the tuple. all_colors.count('yellow') -> 1\n", + "* index tells you the position of something in the tuble. all_colors.index('green') -> 3\n", + "\n", + "Tuples can be sliced just like strings and lists:\n", + "\n", + " >>> all_colors[3:] # colors starting with green\n", + " ('green', 'blue', 'indigo', 'violet')\n", + " >>> all_colors[1:3] # colors from index 1 up to green.\n", + " ('orange', 'yellow')\n", + " >>> all_colors[-1] # only the last color\n", + " 'violet'\n", + " >>> all_colors[-3:] # the last three colors\n", + " ('blue', 'indigo', 'violet')\n", + " >>> all_colors[::2] # every other color\n", + " ('red', 'yellow', 'blue', 'violet')\n", + " >>> \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')" ] }, { @@ -471,7 +793,7 @@ "metadata": {}, "source": [ "#### *Exercise*:\n", - "Copy the turtle code from above to new cells below and make changes to accomplish as many of the following things as you can:\n", + "Copy the turtle code from above to new cells below and make changes to accomplish each of the following tasks:\n", "* Draw a square with each side a different color\n", "* Draw an octogon with alternating colors on each side\n", "* Rework your code from the above two challenges to use a variable for the side length, so you only have to change one number in the cell to make all of the sides longer or shorter. \n", diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 5ab55e7..3506d71 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while)." + "**Topics**: Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while)." ] }, { diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index bcf2f74..34a1152 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -6,7 +6,7 @@ "source": [ "# Week 3\n", "\n", - "Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration." + "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration." ] }, { @@ -55,6 +55,61 @@ " print(*args, **kwargs)\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Imprting Data\n", + "\n", + "### Reading Files\n", + "\n", + "### Reading Files with Pandas\n", + "\n", + "### Query Database\n", + "\n", + "### Query Website with requests\n", + "import requests\n", + "import pandas as pd\n", + "\n", + "# URL for NDBC buoy data (e.g., Station 46042 - Monterey Bay)\n", + "url = 'https://www.ndbc.noaa.gov/data/realtime2/46042.txt'\n", + "\n", + "# Send a GET request to fetch the data\n", + "response = requests.get(url)\n", + "\n", + "# Check if the request was successful\n", + "`\n", + "if response.status_code == 200:\n", + " # Read the data into a pandas DataFrame\n", + " data = response.text.splitlines()\n", + " headers = data[0].split()\n", + " rows = [row.split() for row in data[2:]]\n", + " df = pd.DataFrame(rows, columns=headers)\n", + " \n", + " # Convert relevant columns to numeric types\n", + " df['YY'] = pd.to_numeric(df['YY'], errors='coerce')\n", + " df['MM'] = pd.to_numeric(df['MM'], errors='coerce')\n", + " df['DD'] = pd.to_numeric(df['DD'], errors='coerce')\n", + " df['hh'] = pd.to_numeric(df['hh'], errors='coerce')\n", + " df['mm'] = pd.to_numeric(df['mm'], errors='coerce')\n", + " df['WTMP'] = pd.to_numeric(df['WTMP'], errors='coerce')\n", + " \n", + " # Convert date and time columns to a single datetime column\n", + " df['Datetime'] = pd.to_datetime(df[['YY', 'MM', 'DD', 'hh', 'mm']])\n", + " \n", + " # Set the datetime column as the index\n", + " df.set_index('Datetime', inplace=True)\n", + " \n", + " # Keep only the relevant columns\n", + " df = df[['WTMP']]\n", + " \n", + " # Print the DataFrame\n", + " print(df)\n", + "else:\n", + " print(f\"Failed to retrieve data: {response.status_code}\")\n", + "`" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/2-python_basics/README.md b/2-python_basics/README.md index 9e7f278..d5d95a8 100644 --- a/2-python_basics/README.md +++ b/2-python_basics/README.md @@ -54,18 +54,13 @@ Python 3 converts to float during division unless `//` is used instead of `/`. In [1]: x = 1 In [2]: x / 2 +Out[2]: 0.5 + +In [2]: x // 2 Out[2]: 0 In [3]: x % 2 Out[3]: 1 - -In [4]: x = 1.0 - -In [5]: x / 2 -Out[5]: 0.5 - -In [6]: x % 2 -Out[6]: 1.0 ``` Python has built in support for complex numbers. ```python diff --git a/SAMPLE_DATA/simple.csv b/SAMPLE_DATA/simple.csv new file mode 100644 index 0000000..074605b --- /dev/null +++ b/SAMPLE_DATA/simple.csv @@ -0,0 +1,4 @@ +Age,Name,Fav_Color +40,Dan,Blue +9,James,Green +25,Frank,Black From 25490a5de6ce2add71ffd4ad0baf841c45a72fc2 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 4 Aug 2024 20:08:14 -0700 Subject: [PATCH 055/163] content add --- 0-coursework/week_1.ipynb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 3bb73fe..d26e081 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -64,6 +64,7 @@ " * it has functions for rounding, trig, and a lot more\n", "* from datetime import datetime\n", " * datetime has tools for manipulating datetime objects! This is one that's weirdly complex in practice.\n", + " * Why are we importing datetime from datetime? \n", "* import pandas as pd\n", " * Using a short name is a common convention for some library. pandas is pd, numpy is np, ...\n", " * Pandas is a bit like excel, except you do it all with commands in a reproducible way, rather than one off editing a file manually in excel.\n", @@ -82,7 +83,10 @@ "### Keywords\n", "Some words cannot be used as variables because they have special meaning in the python language: \n", "\n", - "*and as assert async await break case class continue def del elif else except False finally for from global if import in is lambda match None nonlocal not or pass raise return True try while with yield _.*\n", + " and as assert async await break case class continue \n", + " def del elif else except False finally for from global \n", + " if import in is lambda match None nonlocal not or pass \n", + " raise return True try while with yield _.*\n", "\n", "### Indentation\n", "Python uses indentation to group code inside of functions, classes, and control blocks. Other languages often use { } for the same purpose. \n", @@ -237,7 +241,7 @@ "source": [ "b == 5\n", "print('b is:', b)\n", - "# hint, an = does an assigmnint, and an == does a comparison" + "# hint, an = does an assignment, and an == does a comparison" ] }, { @@ -407,7 +411,7 @@ "\n", "**f-strings!**\n", "\n", - " name = 'Lisa's\n", + " name = 'Lisa'\n", " weekday = 'Thursday'\n", " greeting = f'Good morning, {name}! Today is {weekday}.'\n", "\n", @@ -824,7 +828,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From 298e8ccaf7eb01f91722a1951ec54d3d1d76848a Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 4 Aug 2024 20:41:44 -0700 Subject: [PATCH 056/163] content --- 0-coursework/week_1.ipynb | 121 +++++++++++++++++++++++++++++++++++--- 1 file changed, 112 insertions(+), 9 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index d26e081..9f56ceb 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -6,7 +6,7 @@ "source": [ "# Week 1 - Start here!\n", "\n", - "**Topics**: Intro, Data types incl numeric, strings, lists, tuples, if else. \n", + "**Topics**: Intro, Data types incl numeric, strings, lists, tuples, sets, if else. \n", " \n", "\n", "The first program most folks make in any language is a hello world. \n", @@ -171,7 +171,9 @@ " * x = [1, 2, 3, '1', '2', 'c']\n", "* To define a tuple:\n", " * y = (4, 5, 6, 'a', 'b')\n", - "* To define a dictionary:\n", + "* To define a set we use comma separated things between curly braces.\n", + " * w = {'one', 'two', 3}\n", + "* To define a dictionary we use the : to relate things between the curlyl braces.\n", " * z = {1: 'a', 2: 'b', 'c': 'foo'}\n", "\n", "### Variables and Functions\n", @@ -376,6 +378,8 @@ "* '^' is a little unusual, doing a *not* operation on the binary form of both numbers.\n", "* '**' does an exponent, a to the power of b in this example.\n", "\n", + "Examples:\n", + "\n", " >>> a = 2\n", " >>> b = 3\n", " >>> a + b\n", @@ -395,7 +399,38 @@ " >>> a % b\n", " 2\n", "\n", - "#### Typecasting Ints and Floats\n" + "#### Typecasting Ints and Floats\n", + "There are a few cases where you'd want to **cast** objects to and from int or float.\n", + "* round a floating point value down by converting it to an int\n", + "* convert a string to an int - this can be done for strings like '5', '-256', '999', but not '5.0'.\n", + "* convert a string to a float - this can be done for any numeric values like '5.0', '990', etc.\n", + "\n", + "Examples:\n", + "\n", + " >>> x = '7.9' # a string because it is quoted\n", + " >>> x\n", + " '7.9'\n", + " >>> float(x)\n", + " 7.9 # a number/floating point\n", + " >>> int(x)\n", + " ValueError: invalid literal for int() with base 10: '7.9'\n", + " >>> int(float(x))\n", + " 7\n", + "\n", + "#### *Exercise*\n", + "Calculate the length of the hypotenuse of a right triangle. Store the side lengths in variables, and use the pythagorean theorem to calculate the long side. You can use math.sqrt() to perform a square root, just make sure to 'import math' first. Or you can use an exponent, to the power of 0.5, to do the same thing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Store your side lenghts in variables:\n", + "\n", + "\n", + "# Calculate the hypotenuse of the triangle:" ] }, { @@ -508,7 +543,8 @@ "Then we use a new string, **', '** and its join function to join all of the items in the bar list we pass to it. When we join. we don't put .join on the list, we but it on the string that we want to use to join all of the things in the list.\n", "\n", "#### *Exercise*\n", - "Let's convert values in a string which are separated by double colons, '::', into a list of values and then into a string with commas between the values. Replace the two '...' below with the needed operations." + "Let's convert values in a string which are separated by double colons, '::', into a list of values and then into a string with commas between the values. Replace the two '...' below with the needed operations.\n", + "Look at the Syntax section at https://www.w3schools.com/python/ref_string_split.asp to see how to specify the separator to split on specific characters." ] }, { @@ -608,6 +644,8 @@ "* b is the ending character and is exclucive, meaning we take up to but not including this character. \n", "* c is used to skip characters. [:4:1] is the same as [:4]. [:4:2] will give everey other character up to but not uncluding the character at address 4 in the string. [::3] will give every third character in the string. \n", "\n", + "Example:\n", + "\n", " >>> foo = 'some stuff la bar'\n", " >>> foo[:6]\n", " 'some s'\n", @@ -720,22 +758,87 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Sets" + "### Sets\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Dictionaries" + "## if/elif/else conditional statements\n", + "Python supports the usual logical conditions from mathematics:\n", + "\n", + "* Equals: a == b\n", + "* Not Equals: a != b\n", + "* Less than: a < b\n", + "* Less than or equal to: a <= b\n", + "* Greater than: a > b\n", + "* Greater than or equal to: a >= b\n", + "\n", + "And test/comparisons like this can be used to run different code/operations in each case. \n", + "\n", + " if a > b:\n", + " print('a is larger than b')\n", + " elif a == b: \n", + " print('a is eqlal to b')\n", + " else:\n", + " print('a must be less than b')\n", + "\n", + "### Non-numeric \n", + "We can use a lot more variety of conditions in our code:\n", + "**String tests**\n", + "word = input('Enter a word: ')\n", + "if not word.isalpha():\n", + " print('Invalid, words do not have numbers')\n", + "if word.islower():\n", + " print('The word is all lower case')\n", + "if word.endswith('poluza'):\n", + " print('Sounds like a party!')\n", + "if 'a' in word.lower():\n", + " print('found a vowell!')\n", + "\n", + "**List, Tuple, Set, etc container tests**\n", + "things = ['apple', 'bananna', 'pear']\n", + "if 'apple' in things:\n", + " print('I have an apple')\n", + "if not things:\n", + " print('Things is an empty list')\n", + "\n", + "### Truthiness\n", + "Most objects can be evaluated as True or False. \n", + "\n", + "Examples of True things:\n", + "* Lists, Tuples, Sets that are not empty\n", + "* Strings with at least one character in them\n", + "* Positive or negative numbers\n", + "* True # true evaluates true\n", + "\n", + "Examples of False things:\n", + "* Empty lists, tuples, sets\n", + "* 0 (zero)\n", + "* Empty strings: ''\n", + "\n", + "This means that we can simplify some expressions:\n", + "* if len(some_string) > 0\n", + " * if some_string\n", + "* if len(my_list_of_things) > 0\n", + " * if my_list_of_things\n", + "\n", + "#### *Exercise*\n", + "Foo" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "### Typecasting" - ] + "source": [] }, { "cell_type": "markdown", From d9aa5d6257e434d68318f242706c307377753731 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 6 Aug 2024 19:14:50 -0700 Subject: [PATCH 057/163] week 2 content --- 0-coursework/week_2.ipynb | 305 +++++++++++++++++++++++++++++++++++++- 1 file changed, 303 insertions(+), 2 deletions(-) diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 3506d71..14189cc 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -11,7 +11,285 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "**Topics**: Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while)." + "**Topics**: Dictionaries, list comprehensions, and advanced control flow (loops: for and while).\n", + "\n", + "We're looking at more basic python functionality this week, and will import other libraries and work with functions next week.\n", + "\n", + "# Dictionaries\n", + "Dictionaries are for key: value collections. \n", + "\n", + "This could be useful for many reasons!\n", + "\n", + "**Mapping human readable values to hex codes**\n", + "In this example, we pre-define a bunch of colors and hex values they represent.\n", + "\n", + " colors = {\n", + " \"white\": \"#FFFFFF\",\n", + " \"black\": \"#000000\",\n", + " \"red\": \"#FF0000\",\n", + " \"green\": \"#008000\",\n", + " \"blue\": \"#0000FF\",\n", + " \"yellow\": \"#FFFF00\",\n", + " \"cyan\": \"#00FFFF\",\n", + " \"magenta\": \"#FF00FF\"\n", + " }\n", + "\n", + "**Grouping files for processing by analysis type**\n", + "In this value, we get a list of files from the current working directory and sort them into lists per analyte name:\n", + "\n", + "all_files = {'chloraphyl': [], 'nitrogen': [], 'salinity': []}\n", + "for file_name in os.listdir():\n", + " if 'chloraphyl' in file_name:\n", + " all_files['chloraphyl'].append(file_name)\n", + " elif 'nitrogen' in file_name:\n", + " all_files['nitrogen'].append(file_name)\n", + " elif 'ph' in file_name:\n", + " all_files['salinity'].append(file_name)\n", + " else:\n", + " print('Warning, unknown file:', file_name)\n", + "\n", + "## \n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# List Comprehensions\n", + "You can get by without these, but the're a nice tool for doing simple operations to lists of things.\n", + "\n", + "## Without a list comprehension:\n", + "There's more than one way to do this, but this is sort of a general example of what a list compreheon does. \n", + "\n", + " people = ['jaon', 'maude', 'henrietta']\n", + " tmp_list = []\n", + " for name in people:\n", + " tmp_list.append(name.capitalize())\n", + " people = tmp_list\n", + " print(people)\n", + " ['Jaon', 'Maude', 'Henrietta']\n", + "\n", + "## Basic Structure\n", + "The basic structure of a list comprehension looks like this:\n", + "\n", + "[expression for item in iterable]\n", + "\n", + "* expression: This is the value that will be included in the new list. It uses the item to do something.\n", + "* item: This is a variable that takes the value of each element in the iterable.\n", + "* iterable: This is any Python object capable of returning its members one at a time, such as a list, range, string, etc.\n", + "\n", + "Example:\n", + "\n", + " >>> people = ['jaon', 'maude', 'henrietta']\n", + " >>> people = [name.capitalize() for name in people]\n", + " >>> print(people)\n", + " ['Jaon', 'Maude', 'Henrietta']\n", + "\n", + "## With A filter:\n", + "[expression for item in iterable if condition]\n", + "\n", + "* condition lets us select specific items from the source list\n", + "\n", + "Example:\n", + "\n", + " >>> all_files = os.listdir()\n", + " >>> python_files = [file_name for file_name in python_files if file_name.endswith('.py')]\n", + " >>> print(python_files)\n", + " ['hangman.py', 'args.py', 'writefile.py', 'readfiles.py', 'universal_nogui_widget.py', 'variable_scope.py', 'loop_else.py']\n", + "\n", + "#### *Exercise*:\n", + "\n", + "Write list comprehinsions in the cell to modify each source list per the instructions in the comment:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# For Loops\n", + "This is really where things start to get interesting. Anything that we did previously that was repetetive can be wrapped into a loop to make a single chunk of code do things over and over. \n", + "\n", + "## basic structure:\n", + "\n", + " for each_thing in many_things:\n", + " # do something with each thing\n", + " print(each_thing)\n", + "\n", + "* \"many_things\" is any iterable - a list, a dictionary, a tuple, a function that yields multiple things, etc.\n", + "* \"each_thing\" is the name that we use to refer to each item from many_things, one at a time. \n", + "* The indented do something block contains all of the code we want to run for each_thing.\n", + "\n", + "## control commands - continue and break\n", + "* Inside the loop, we can call \"break\" to exit the loop, even if there are more things in many_things.\n", + "* Ind we can call \"continue\" to skip to the next item without running any more code on that specific thing.\n", + "\n", + "Let's see an example where we are trying to find five animals from a list names with three or fewer letters and then stop when done:\n", + " all_animals = ()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_animals = ('dog', 'mouse', 'rat', 'squirrel', 'cat', 'rabbit', \n", + " 'hamster', 'gerbil', 'guinea pig', 'pig', 'cow', 'horse',\n", + " 'chinchilla', 'ferret', 'hedgehog', 'sugar glider', 'bat')\n", + "short_animals = []\n", + "for animal in all_animals:\n", + " if len(animal) > 3:\n", + " # skip this one\n", + " continue\n", + " print('found one!', animal)\n", + " short_animals.append(animal)\n", + " \n", + " if len(short_animals) == 5:\n", + " print('all done, found enough')\n", + " break\n", + "print('These are the first five short animals:', short_animals)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's worth noting that we could have done this without continue and break, but using them reduces need for indentaton and helps with concise, readble, code. \n", + "\n", + "#### *Exercise*:\n", + "\n", + "Write a for loop that will try three times to prompt the user for a four letter word. It should break when a valid word is entered. And after the loop, it should print out the given word. Something to consider:\n", + "* What do we do if the user doesn't give a valid word for any of the three tries? How do we avoid an error in the print statement? \n", + "* What are three different ways to make the for loop do the thing three times?\n", + "* Remember that we can use \"input\" to prompt the user: word = input('tell me a word')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Note that _ is a valid variable name in Python, but it is used to indicate that the variable is not used in the loop.\n", + "# if you wanted to print an error message and give a count of tries each time, using something like \"count\" in place of \"_\"\n", + "# would be more appropriate.\n", + "\n", + "for _ in ...:\n", + " ...\n", + "print(...)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## for else\n", + "One last thing to mention about for loops is that we can have an else clause that gets calles only if break is not called from within the for loop. This is like our contingency code for what to do if what we expect doens't happen in the for loop, like we don't find something we're looking for:\n", + "\n", + " for widgit in suitible_widgets:\n", + " supplier_stock_qty = check_supplier_stock(widget)\n", + " if supplier_stock_qty > 2:\n", + " print('Great, we can order', widget)\n", + " order_widget = widget\n", + " break\n", + " else:\n", + " print(\"Supplier didn't have any suitible widgets in stock!\")\n", + " order_widget = None\n", + " notify_supplier(suitible_widgets)\n", + "\n", + "This is another case were you could implement it without the for else functoinality, but is reducec the numbers of variables needed and helps to show the intent of your code by using it. \n", + "\n", + "The check_supplier_stock and notify_supplier functinos might make rest calls to the supplier web site to check their stock or place an order automatically. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# While Loops\n", + "Much like for loops, we use while loops to do things over and over, but instead of doing it once for each item in a list of objects passed to the loop, we do it until a condition is met. \n", + "\n", + "## General Structure\n", + "\n", + "while condition:\n", + " do something\n", + "\n", + "* Like with for loops, we can call continue and break.\n", + "* while True: will loop forever becaues True is never False. We'd have to use break to exit the loop in this case. \n", + "\n", + "Let's try our animal example again:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "found one! bat\n", + "found one! cow\n", + "found one! pig\n", + "found one! cat\n", + "found one! rat\n", + "These are some short animals: ['bat', 'cow', 'pig', 'cat', 'rat']\n" + ] + } + ], + "source": [ + "all_animals = ['dog', 'mouse', 'rat', 'squirrel', 'cat', 'rabbit', \n", + " 'hamster', 'gerbil', 'guinea pig', 'pig', 'cow', 'horse',\n", + " 'chinchilla', 'ferret', 'hedgehog', 'sugar glider', 'bat']\n", + "short_animals = []\n", + "while len(short_animals) < 5:\n", + " if len(all_animals) == 0:\n", + " print('no more animals to check')\n", + " break\n", + " animal = all_animals.pop() # take one from the list and remove it from the list\n", + " if len(animal) > 3:\n", + " # skip this one\n", + " continue\n", + " print('found one!', animal)\n", + " short_animals.append(animal)\n", + "\n", + "print('These are some short animals:', short_animals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What would happen if we didn't check the lengte of all_animals before calling pop? \n", + "What would happen if there weren't five short animalis in the list?\n", + "\n", + "#### *Exercise*:\n", + "\n", + "Write a for lo" ] }, { @@ -31,6 +309,29 @@ "print(\"Hello World\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading files\n", + "\n", + "## Reading a csv file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Writing Files" + ] + }, { "cell_type": "code", "execution_count": null, @@ -79,7 +380,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, From c4ad78540cdd9eed9cf06c3f8dba37884a528787 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 6 Aug 2024 19:50:56 -0700 Subject: [PATCH 058/163] content --- 0-coursework/week_2.ipynb | 120 +++++++++++++++++++++++++++++++++----- 1 file changed, 107 insertions(+), 13 deletions(-) diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 14189cc..5faf06d 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -4,38 +4,123 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 2" + "# Week 2\n", + "\n", + "**Topics**: Dictionaries, list comprehensions, and advanced control flow (loops: for and while).\n", + "\n", + "This is a very exciting week. Dictionaries are so useful for organizing things, and with the introductin of loops, we become real programmers who can perform large tasks with concise bits of code. The Exercises below for the loops are hopefully kind of challenging requring you to use conditoinals, variables, lists, and if else branching!\n", + "\n", + "# Dictionaries\n", + "Dictionaries are for key: value collections. \n", + "\n", + "This could be useful for many reasons! Here's asimple example, and below a more complex example. Some exersices will follow breaking this stuff down. \n", + "\n", + "## Defining dictionaries with content ready to reference:\n", + "We follow the {key: value, key2: value2, ... } pattern for this." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "colors = {\n", + " \"white\": \"#FFFFFF\",\n", + " \"black\": \"#000000\",\n", + " \"red\": \"#FF0000\"\n", + "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "**Topics**: Dictionaries, list comprehensions, and advanced control flow (loops: for and while).\n", + "Note that keys can be any immutable object!\n", + "* strings\n", + "* numbers\n", + "* tuples\n", + "\n", + "You **cannot use lists** as dictionary keys.\n", + "\n", + "## Using/Accessing dictionary data\n", + "We have a few ways to use dictionaries:\n", + "* Look values up by key\n", + "* See what keys are in the directory\n", + "* See what values ar in the dictionary\n", + "* See all key:value pairs in the dictionary\n", + "* And some other more obscure stuff to read about later." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The color code for white is #FFFFFF\n", + "The colors in this dictionary are: dict_keys(['white', 'black', 'red'])\n", + "The values in this dictionary are: dict_values(['#FFFFFF', '#000000', '#FF0000'])\n", + "And the k:v pairs, aka items, in the dictionary are: dict_items([('white', '#FFFFFF'), ('black', '#000000'), ('red', '#FF0000')])\n", + "It can be helpful to iterate ovr the items in a dictionary like this:\n", + " The color \"white\" has the code \"#FFFFFF\"\n", + " The color \"black\" has the code \"#000000\"\n", + " The color \"red\" has the code \"#FF0000\"\n" + ] + } + ], + "source": [ + "print('The color code for white is', colors['white'])\n", "\n", - "We're looking at more basic python functionality this week, and will import other libraries and work with functions next week.\n", + "print('The colors in this dictionary are:', colors.keys())\n", "\n", - "# Dictionaries\n", - "Dictionaries are for key: value collections. \n", + "print('The values in this dictionary are:', colors.values())\n", + "\n", + "print('And the k:v pairs, aka items, in the dictionary are:', colors.items())\n", + "\n", + "print('It can be helpful to iterate ovr the items in a dictionary like this:')\n", + "for color, code in colors.items():\n", + " print(f' The color \"{color}\" has the code \"{code}\"')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "\n", + "## Overwriting keys or adding new data to a dictionary:\n", + "This can be one at a time. Adding new:\n", + "\n", + " colors[\"blue\"] = \"#0000FF\"\n", + "\n", + "Or overwriting an existing value:\n", + "\n", + " colors[\"white\"] = \"#fffffff\"\n", + "\n", + "And we can use variables and loops (explanation of loops below) to be more dynamic:\n", "\n", - "This could be useful for many reasons!\n", "\n", "**Mapping human readable values to hex codes**\n", "In this example, we pre-define a bunch of colors and hex values they represent.\n", "\n", - " colors = {\n", - " \"white\": \"#FFFFFF\",\n", - " \"black\": \"#000000\",\n", - " \"red\": \"#FF0000\",\n", + "\n", " \"green\": \"#008000\",\n", - " \"blue\": \"#0000FF\",\n", + " \"blue\": \n", " \"yellow\": \"#FFFF00\",\n", " \"cyan\": \"#00FFFF\",\n", " \"magenta\": \"#FF00FF\"\n", " }\n", "\n", + " text_color_code = colors[\"blue\"]\n", + "\n", "**Grouping files for processing by analysis type**\n", - "In this value, we get a list of files from the current working directory and sort them into lists per analyte name:\n", + "This jumps ahead a little by using a for loop, but this is really helpful use case for dictionies. Imagine you have a bunch of data files that use similar processing overall, but with small differences depeding on the particlar analyte beig looked at. We can group common data files in a dictionary and then use the same code on them all later. We'll expand on later, but try to internalize what's happening here:\n", "\n", "all_files = {'chloraphyl': [], 'nitrogen': [], 'salinity': []}\n", "for file_name in os.listdir():\n", @@ -48,7 +133,16 @@ " else:\n", " print('Warning, unknown file:', file_name)\n", "\n", - "## \n", + "* all_files is a dictionary with three key: value pairs. \n", + "* the key is teh analyte name that we're looking for in the file names\n", + "* the value is a list that we will append each matching file name to. \n", + "* os.listdir() returns a list of all of the files in the current working directory. You could also pass it a path to another directory if needed. \n", + "\n", + "We'll get a dictionary that looks like this afterward:\n", + ">>> all_files\n", + "{'chloraphyl': ['chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx',],\n", + " 'nitrogen': ['nitrogen_20240202.xlsx', 'nitrogen20240202.xlsx',],\n", + " 'salinity': ['salinity_20240202.xlsx', 'salinity_20240202.xlsx'] }\n", " \n", " " ] From 0b82fcaf6296b4fe166b00201c42504459e38525 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 6 Aug 2024 20:37:20 -0700 Subject: [PATCH 059/163] content --- 0-coursework/week_2.ipynb | 109 +++++++++++++++++++++++++++++++++----- 1 file changed, 97 insertions(+), 12 deletions(-) diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 5faf06d..1231079 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -90,18 +90,90 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "\n", - "\n", - "\n", "## Overwriting keys or adding new data to a dictionary:\n", - "This can be one at a time. Adding new:\n", + "Assigmint is the same whether or not the key is already in the dictionary. If it exists already, it will be overwritten with the new value:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current colors: dict_items([('white', '#FFFFFF'), ('black', '#000000'), ('red', '#FF0000')])\n", + "Colors now: dict_items([('white', '#fffffff'), ('black', '#000000'), ('red', '#FF0000'), ('blue', '#0000FF')])\n" + ] + } + ], + "source": [ + "print('Current colors:', colors.items())\n", + "colors[\"blue\"] = \"#0000FF\"\n", + "colors[\"white\"] = \"#fffffff\"\n", + "print('Colors now:', colors.items())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accessing or calling values in dictionaries\n", + "When we use a dictionary to access an oject, it is the same as having a separate variable pointing to the object. Let's explain with an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cars: ['toyota'] ['toyota']\n", + "Bicycles: ['schwinn'] ['schwinn']\n" + ] + } + ], + "source": [ + "cars = []\n", + "bicycles = []\n", "\n", - " colors[\"blue\"] = \"#0000FF\"\n", + "vehicles = {\n", + " \"motorcars\": cars,\n", + " \"pedalbikes\": bicycles\n", + "}\n", "\n", - "Or overwriting an existing value:\n", + "cars.append('toyota')\n", + "vehicles[\"pedalbikes\"].append('schwinn')\n", "\n", - " colors[\"white\"] = \"#fffffff\"\n", + "print('Cars:', cars, vehicles['motorcars'])\n", + "print('Bicycles:', bicycles, vehicles['pedalbikes'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are a few notable things happening here:\n", + "* We create cars and bicycles variables pointing to lists\n", + "* We create a dictionary with string keys and associated the keys with whatever the variables were associated with. In this case, the very same lists the variables refer to.\n", + "* We add something to the cars list using the variable\n", + "* We add something to the bicycles list using it's key in the dictionary\n", + "* Demonstrate that when we print using the variables and the dictionary, we see the same updated list in both cases. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", "And we can use variables and loops (explanation of loops below) to be more dynamic:\n", "\n", @@ -142,9 +214,7 @@ ">>> all_files\n", "{'chloraphyl': ['chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx',],\n", " 'nitrogen': ['nitrogen_20240202.xlsx', 'nitrogen20240202.xlsx',],\n", - " 'salinity': ['salinity_20240202.xlsx', 'salinity_20240202.xlsx'] }\n", - " \n", - " " + " 'salinity': ['salinity_20240202.xlsx', 'salinity_20240202.xlsx'] }" ] }, { @@ -210,7 +280,22 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# String manipulation - convert the list of signs to all upper case:\n", + "street_signs = ['stop', 'yield', 'one way', 'speed limit', 'wrong way']\n", + "street_signs = [...] # use a list comprehension to convert the signs to upper case\n", + "print(street_signs)\n", + "\n", + "# String slicing - truncate the names to the first 4 characters:\n", + "names = ['Clarice', 'Fernando', 'Xavier', 'Mildred']\n", + "# names = ['Clarice', 'Fernando', 'Ed', 'Tim'] # Challenge mode, make it not error on short names\n", + "names = [...] # use a list comprehension to truncate the names to the first 4 characters\n", + "\n", + "# Conditional - use the if condition to select which values will be kept\n", + "actual_berries = ('blueberry', 'raspberry', 'strawberry', 'blackberry')\n", + "found_fruit = ['strawberry', 'banana', 'kiwi', 'blueberry', 'raspberry', 'blackberry', 'yuzu']\n", + "found_berries = [...] # use a list comprehension to create a list of berries from the found_fruit list" + ] }, { "cell_type": "markdown", From 598a01ece1ad4d0b412c53f45838f07ad4fb174e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 6 Aug 2024 21:17:45 -0700 Subject: [PATCH 060/163] content --- 0-coursework/week_2.ipynb | 305 +++++++++++++++++++++++++------------- 1 file changed, 198 insertions(+), 107 deletions(-) diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 1231079..20c3be8 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -54,32 +54,31 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "The color code for white is #FFFFFF\n", - "The colors in this dictionary are: dict_keys(['white', 'black', 'red'])\n", - "The values in this dictionary are: dict_values(['#FFFFFF', '#000000', '#FF0000'])\n", - "And the k:v pairs, aka items, in the dictionary are: dict_items([('white', '#FFFFFF'), ('black', '#000000'), ('red', '#FF0000')])\n", + "The color code for white is #fffffff\n", + "The colors in this dictionary are: dict_keys(['white', 'black', 'red', 'blue'])\n", + "The values in this dictionary are: dict_values(['#fffffff', '#000000', '#FF0000', '#0000FF'])\n", + "And the k:v pairs, aka items, in the dictionary are: dict_items([('white', '#fffffff'), ('black', '#000000'), ('red', '#FF0000'), ('blue', '#0000FF')]) \n", + "\n", "It can be helpful to iterate ovr the items in a dictionary like this:\n", - " The color \"white\" has the code \"#FFFFFF\"\n", + " The color \"white\" has the code \"#fffffff\"\n", " The color \"black\" has the code \"#000000\"\n", - " The color \"red\" has the code \"#FF0000\"\n" + " The color \"red\" has the code \"#FF0000\"\n", + " The color \"blue\" has the code \"#0000FF\"\n" ] } ], "source": [ "print('The color code for white is', colors['white'])\n", - "\n", "print('The colors in this dictionary are:', colors.keys())\n", - "\n", "print('The values in this dictionary are:', colors.values())\n", - "\n", - "print('And the k:v pairs, aka items, in the dictionary are:', colors.items())\n", + "print('And the k:v pairs, aka items, in the dictionary are:', colors.items(), '\\n')\n", "\n", "print('It can be helpful to iterate ovr the items in a dictionary like this:')\n", "for color, code in colors.items():\n", @@ -162,13 +161,22 @@ "* We create a dictionary with string keys and associated the keys with whatever the variables were associated with. In this case, the very same lists the variables refer to.\n", "* We add something to the cars list using the variable\n", "* We add something to the bicycles list using it's key in the dictionary\n", - "* Demonstrate that when we print using the variables and the dictionary, we see the same updated list in both cases. " + "* Demonstrate that when we print using the variables and the dictionary, we see the same updated list in both cases. \n", + "\n", + "This concept can be expanded in lots of ways:\n", + "* lists of lists\n", + "* nested dictionaries\n", + "\n", + "And it raises need for discussion about what is passing by reference, what is passing by value, and when do we need to think about this? But that's too much for now!" ] }, { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "Let's play with all of this!\n", + "\n" + ] }, { "cell_type": "markdown", @@ -224,79 +232,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# List Comprehensions\n", - "You can get by without these, but the're a nice tool for doing simple operations to lists of things.\n", - "\n", - "## Without a list comprehension:\n", - "There's more than one way to do this, but this is sort of a general example of what a list compreheon does. \n", - "\n", - " people = ['jaon', 'maude', 'henrietta']\n", - " tmp_list = []\n", - " for name in people:\n", - " tmp_list.append(name.capitalize())\n", - " people = tmp_list\n", - " print(people)\n", - " ['Jaon', 'Maude', 'Henrietta']\n", - "\n", - "## Basic Structure\n", - "The basic structure of a list comprehension looks like this:\n", - "\n", - "[expression for item in iterable]\n", - "\n", - "* expression: This is the value that will be included in the new list. It uses the item to do something.\n", - "* item: This is a variable that takes the value of each element in the iterable.\n", - "* iterable: This is any Python object capable of returning its members one at a time, such as a list, range, string, etc.\n", - "\n", - "Example:\n", - "\n", - " >>> people = ['jaon', 'maude', 'henrietta']\n", - " >>> people = [name.capitalize() for name in people]\n", - " >>> print(people)\n", - " ['Jaon', 'Maude', 'Henrietta']\n", - "\n", - "## With A filter:\n", - "[expression for item in iterable if condition]\n", - "\n", - "* condition lets us select specific items from the source list\n", - "\n", - "Example:\n", - "\n", - " >>> all_files = os.listdir()\n", - " >>> python_files = [file_name for file_name in python_files if file_name.endswith('.py')]\n", - " >>> print(python_files)\n", - " ['hangman.py', 'args.py', 'writefile.py', 'readfiles.py', 'universal_nogui_widget.py', 'variable_scope.py', 'loop_else.py']\n", - "\n", - "#### *Exercise*:\n", - "\n", - "Write list comprehinsions in the cell to modify each source list per the instructions in the comment:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# String manipulation - convert the list of signs to all upper case:\n", - "street_signs = ['stop', 'yield', 'one way', 'speed limit', 'wrong way']\n", - "street_signs = [...] # use a list comprehension to convert the signs to upper case\n", - "print(street_signs)\n", - "\n", - "# String slicing - truncate the names to the first 4 characters:\n", - "names = ['Clarice', 'Fernando', 'Xavier', 'Mildred']\n", - "# names = ['Clarice', 'Fernando', 'Ed', 'Tim'] # Challenge mode, make it not error on short names\n", - "names = [...] # use a list comprehension to truncate the names to the first 4 characters\n", - "\n", - "# Conditional - use the if condition to select which values will be kept\n", - "actual_berries = ('blueberry', 'raspberry', 'strawberry', 'blackberry')\n", - "found_fruit = ['strawberry', 'banana', 'kiwi', 'blueberry', 'raspberry', 'blackberry', 'yuzu']\n", - "found_berries = [...] # use a list comprehension to create a list of berries from the found_fruit list" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -345,13 +280,6 @@ "print('These are the first five short animals:', short_animals)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -386,20 +314,44 @@ "metadata": {}, "source": [ "## for else\n", - "One last thing to mention about for loops is that we can have an else clause that gets calles only if break is not called from within the for loop. This is like our contingency code for what to do if what we expect doens't happen in the for loop, like we don't find something we're looking for:\n", - "\n", - " for widgit in suitible_widgets:\n", - " supplier_stock_qty = check_supplier_stock(widget)\n", - " if supplier_stock_qty > 2:\n", - " print('Great, we can order', widget)\n", - " order_widget = widget\n", - " break\n", - " else:\n", - " print(\"Supplier didn't have any suitible widgets in stock!\")\n", - " order_widget = None\n", - " notify_supplier(suitible_widgets)\n", - "\n", - "This is another case were you could implement it without the for else functoinality, but is reducec the numbers of variables needed and helps to show the intent of your code by using it. \n", + "One last thing to mention about for loops is that we can have an else clause that gets calles only if break is not called from within the for loop. This is like our contingency code for what to do if what we expect doens't happen in the for loop, like we don't find something we're looking for:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'suitible_widgets' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m widgit \u001b[38;5;129;01min\u001b[39;00m \u001b[43msuitible_widgets\u001b[49m:\n\u001b[1;32m 2\u001b[0m supplier_stock_qty \u001b[38;5;241m=\u001b[39m check_supplier_stock(widget)\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m supplier_stock_qty \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m2\u001b[39m:\n", + "\u001b[0;31mNameError\u001b[0m: name 'suitible_widgets' is not defined" + ] + } + ], + "source": [ + "for widgit in suitible_widgets:\n", + " supplier_stock_qty = check_supplier_stock(widget)\n", + " if supplier_stock_qty > 2:\n", + " print('Great, we can order', widget)\n", + " order_widget = widget\n", + " break\n", + "else:\n", + " print(\"Supplier didn't have any suitible widgets in stock!\")\n", + " order_widget = None\n", + " notify_supplier(suitible_widgets)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You could implement this without the for else functionality, but this reduces the numbers of variables needed and helps to show the intent of your code by using it. \n", "\n", "The check_supplier_stock and notify_supplier functinos might make rest calls to the supplier web site to check their stock or place an order automatically. " ] @@ -441,6 +393,7 @@ } ], "source": [ + "\n", "all_animals = ['dog', 'mouse', 'rat', 'squirrel', 'cat', 'rabbit', \n", " 'hamster', 'gerbil', 'guinea pig', 'pig', 'cow', 'horse',\n", " 'chinchilla', 'ferret', 'hedgehog', 'sugar glider', 'bat']\n", @@ -471,6 +424,144 @@ "Write a for lo" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# List Comprehensions\n", + "You can get by without these, but the're a nice tool for doing simple operations to lists of things that reduces code bloat and improves readabiity if you don't get too crazy.\n", + "\n", + "Consider this very standard for loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Jaon', 'Maude', 'Henrietta']\n" + ] + } + ], + "source": [ + "people = ['jaon', 'maude', 'henrietta']\n", + "tmp_list = []\n", + "for name in people:\n", + " tmp_list.append(name.capitalize())\n", + "people = tmp_list\n", + "print(people)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can replace it with this simple structure:\n", + "\n", + "**[expression for item in iterable]**\n", + "\n", + "* expression: This is the value that will be included in the new list. It uses the item to do something.\n", + "* item: This is a variable that takes the value of each element in the iterable.\n", + "* iterable: This is any Python object capable of returning its members one at a time, such as a list, range, string, etc." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Jaon', 'Maude', 'Henrietta']\n" + ] + } + ], + "source": [ + "people = ['jaon', 'maude', 'henrietta']\n", + "people = [name.capitalize() for name in people]\n", + "print(people)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## With A filter:\n", + "Use a filter to select specific items from the source list:\n", + "\n", + "**[expression for item in iterable if condition]**\n", + "\n", + "* condition lets us select specific items from the source list" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['hangman.py', 'args.py', 'writefile.py']\n" + ] + } + ], + "source": [ + "# In practice, you would list files from a directory like this:\n", + "# all_files = os.listdir('optional/path/to/directory')\n", + "# But for this example, we'll just use a pretend listing:\n", + "all_files = ['readme.md', 'data.csv', 'event.log', 'config.json', 'config.yaml', 'hangman.py', 'args.py', 'writefile.py']\n", + "python_files = [file_name for file_name in all_files if file_name.endswith('.py')]\n", + "print(python_files)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Let's try this for ourselves!\n", + "\n", + "#### *Exercise*:\n", + "\n", + "Write list comprehinsions in the code cell to modify each source list per the instructions in the comment. Replace each '...'." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# String manipulation - convert the list of signs to all upper case:\n", + "street_signs = ['stop', 'yield', 'one way', 'speed limit', 'wrong way']\n", + "street_signs = [...] # use a list comprehension to convert the signs to upper case\n", + "print(street_signs)\n", + "\n", + "# String slicing - truncate the names to the first 4 characters:\n", + "names = ['Clarice', 'Fernando', 'Xavier', 'Mildred']\n", + "# names = ['Clarice', 'Fernando', 'Ed', 'Tim'] # Challenge mode, make it not error on short names\n", + "names = [...] # use a list comprehension to truncate the names to the first 4 characters\n", + "\n", + "# Conditional - use the if condition to select which values will be kept\n", + "actual_berries = ('blueberry', 'raspberry', 'strawberry', 'blackberry')\n", + "found_fruit = ['strawberry', 'banana', 'kiwi', 'blueberry', 'raspberry', 'blackberry', 'yuzu']\n", + "found_berries = [...] # use a list comprehension to create a list of berries from the found_fruit list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 1, From db7635b5c149d5228049329fbb38b7e000678e29 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 7 Aug 2024 18:32:21 -0700 Subject: [PATCH 061/163] content --- 0-coursework/week_2.ipynb | 184 +++++++++++++++++++++++++++++++------- 1 file changed, 151 insertions(+), 33 deletions(-) diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 20c3be8..7c68452 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -6,7 +6,7 @@ "source": [ "# Week 2\n", "\n", - "**Topics**: Dictionaries, list comprehensions, and advanced control flow (loops: for and while).\n", + "**Topics**: Dictionaries and advanced control flow - for and while loops - and list comprehinsions.\n", "\n", "This is a very exciting week. Dictionaries are so useful for organizing things, and with the introductin of loops, we become real programmers who can perform large tasks with concise bits of code. The Exercises below for the loops are hopefully kind of challenging requring you to use conditoinals, variables, lists, and if else branching!\n", "\n", @@ -318,33 +318,19 @@ ] }, { - "cell_type": "code", - "execution_count": 17, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'suitible_widgets' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m widgit \u001b[38;5;129;01min\u001b[39;00m \u001b[43msuitible_widgets\u001b[49m:\n\u001b[1;32m 2\u001b[0m supplier_stock_qty \u001b[38;5;241m=\u001b[39m check_supplier_stock(widget)\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m supplier_stock_qty \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m2\u001b[39m:\n", - "\u001b[0;31mNameError\u001b[0m: name 'suitible_widgets' is not defined" - ] - } - ], "source": [ - "for widgit in suitible_widgets:\n", - " supplier_stock_qty = check_supplier_stock(widget)\n", - " if supplier_stock_qty > 2:\n", - " print('Great, we can order', widget)\n", - " order_widget = widget\n", - " break\n", - "else:\n", - " print(\"Supplier didn't have any suitible widgets in stock!\")\n", - " order_widget = None\n", - " notify_supplier(suitible_widgets)" + " for widgit in suitible_widgets:\n", + " supplier_stock_qty = check_supplier_stock(widget)\n", + " if supplier_stock_qty > 2:\n", + " print('Great, we can order', widget)\n", + " order_widget = widget\n", + " break\n", + " else:\n", + " print(\"Supplier didn't have any suitible widgets in stock!\")\n", + " order_widget = None\n", + " notify_supplier(suitible_widgets)" ] }, { @@ -353,7 +339,25 @@ "source": [ "You could implement this without the for else functionality, but this reduces the numbers of variables needed and helps to show the intent of your code by using it. \n", "\n", - "The check_supplier_stock and notify_supplier functinos might make rest calls to the supplier web site to check their stock or place an order automatically. " + "The check_supplier_stock and notify_supplier functinos might make rest calls to the supplier web site to check their stock or place an order automatically. \n", + "\n", + "#### *Exercise*:\n", + "\n", + "Modify your user prompt for loop above so that if the user doesn't give a valid response and break is never calles, the else block prints an error message." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for _ in ...:\n", + " ...\n", + " print(...) \n", + " break\n", + "else:\n", + " print(...) # error message here" ] }, { @@ -421,7 +425,21 @@ "\n", "#### *Exercise*:\n", "\n", - "Write a for lo" + "Let's use a while loop to make a guessing game! We'll generate a random number from 1 to 100 and, in the loop, prompt the user for a guess. Tell the user if the number is higher or lower than the mystery number. Use a condition on the loop to have it exit automatically when the user has guessed correctly and print a congratulations after the loop!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "mystery_number = random.randint(1, 100)\n", + "user_guess = -1 # start with an invalid guess\n", + "while ...:\n", + " ...\n", + "print('You got it!')" ] }, { @@ -429,7 +447,7 @@ "metadata": {}, "source": [ "# List Comprehensions\n", - "You can get by without these, but the're a nice tool for doing simple operations to lists of things that reduces code bloat and improves readabiity if you don't get too crazy.\n", + "You can get by without these, but they're a nice tool for doing simple operations to lists of things that reduces code bloat and improves readabiity if you don't get too crazy.\n", "\n", "Consider this very standard for loop:" ] @@ -448,7 +466,7 @@ } ], "source": [ - "people = ['jaon', 'maude', 'henrietta']\n", + "people = ['joan', 'maude', 'henrietta']\n", "tmp_list = []\n", "for name in people:\n", " tmp_list.append(name.capitalize())\n", @@ -483,7 +501,7 @@ } ], "source": [ - "people = ['jaon', 'maude', 'henrietta']\n", + "people = ['joan', 'maude', 'henrietta']\n", "people = [name.capitalize() for name in people]\n", "print(people)" ] @@ -555,12 +573,95 @@ "found_berries = [...] # use a list comprehension to create a list of berries from the found_fruit list" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## For loops with multiple variables\n", + "\n", + "A very common use case for this is when we want to iterate over key:value pairs of a dictionary. An example:" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "animal_sounds = {\n", + " 'dog': 'bark', 'cat': 'meow', 'cow': 'moo',\n", + "}\n", + "for animal, sound in animal_sounds.items():\n", + " print(f'The {animal} says \"{sound}\"')\n", + " \n", + "# An alternative way to do this is:\n", + "for animal in animal_sounds:\n", + " print(f'Again, the {animal} says \"{animal_sounds[animal]}\"')\n", + " \n", + "# Or even:\n", + "for animal_and_sound in animal_sounds.items():\n", + " animal, sound = animal_and_sound\n", + " print(f'And again, the {animal} says \"{sound}\"')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Nested loops\n", + "\n", + "Nesting loops can make code complicated very quickly, but it's very useful to do. Here's an example where we have a dictionary with the values being lists of things. We can iterate through the dictoinary and then itereate throug it's items before going to the next key in the dictinoary." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Chardonnay pairs well with:\n", + " fish\n", + " chicken\n", + " pork\n", + "Merlot pairs well with:\n", + " beef\n", + " lamb\n", + " pasta\n", + "Sauvignon Blanc pairs well with:\n", + " salad\n", + " veggies\n", + " pasta\n" + ] + } + ], + "source": [ + "wine_pairings = {\n", + " 'chardonnay': ['fish', 'chicken', 'pork'],\n", + " 'merlot': ['beef', 'lamb', 'pasta'],\n", + " 'sauvignon blanc': ['salad', 'veggies', 'pasta'],\n", + "}\n", + "for wine, pairings in wine_pairings.items():\n", + " print(f'{wine.title()} pairs well with:')\n", + " for pairing in pairings:\n", + " print(f' {pairing}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "No we see how loops can be both useful and delicious!\n", + "\n", + "#### *Exercise*:\n", + "\n", + "Let's make a tool that collects students grades in several subjects, stores then in a dictionary, and then summarizes them for us. To keep this simple, we can start by storing just a list of grades for each student, but to make things more complicated, we could:\n", + "* Use nested dictinoaries to store each student's grades for each subject separately.\n", + "* Report which student did the best in each subject\n", + "* Improve input validation" + ] }, { "cell_type": "code", @@ -576,7 +677,24 @@ } ], "source": [ - "print(\"Hello World\")" + "students = {'Stanley': [], 'Casey': [], 'Taylor': []}\n", + "subjects = ['math', 'science', 'history']\n", + "\n", + "# First iterate through the students, gettint their name, and a reference to the list to store their grades in:\n", + "for student, grades in ...:\n", + " # Then iterate through the subjects and prompt for a grade for the student for each subject:\n", + " for subject in ...:\n", + " grade = input(...)\n", + " # convert it to float\n", + " # Store the grade in the list of grades for the student\n", + " \n", + "# And now summarize the grades for each student:\n", + "for ...:\n", + " average = ...\n", + " best = ...\n", + " worst = ...\n", + " # Print stats for the student:\n", + " print(...)" ] }, { From cdaa9e8d6d27371edea5c8263155818a1fa34fe9 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 10 Aug 2024 18:37:34 -0700 Subject: [PATCH 062/163] content --- 0-coursework/week_1.ipynb | 2 +- 0-coursework/week_2.ipynb | 156 +++++++++++++++++++++++++++++++++++--- 2 files changed, 147 insertions(+), 11 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 9f56ceb..34f77ce 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -696,7 +696,7 @@ "wrong_color = input('Enter the word that is not a coolor: ')\n", "wrong_color = wrong_color.strip().lower()\n", "\n", - "# use pop to remove the wrong color from the list\n", + "# use remove to take the wrong color from the list\n", "some_colors...\n", "\n", "print(\"I know of these colors now:\", some_colors)\n", diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 7c68452..723940a 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -251,9 +251,9 @@ "\n", "## control commands - continue and break\n", "* Inside the loop, we can call \"break\" to exit the loop, even if there are more things in many_things.\n", - "* Ind we can call \"continue\" to skip to the next item without running any more code on that specific thing.\n", + "* And we can call \"continue\" to skip to the next item without running any more code on the current thing.\n", "\n", - "Let's see an example where we are trying to find five animals from a list names with three or fewer letters and then stop when done:\n", + "Let's see an example where we are trying to **find five animals from a list names with three or fewer letters** and then stop when done:\n", " all_animals = ()" ] }, @@ -680,7 +680,7 @@ "students = {'Stanley': [], 'Casey': [], 'Taylor': []}\n", "subjects = ['math', 'science', 'history']\n", "\n", - "# First iterate through the students, gettint their name, and a reference to the list to store their grades in:\n", + "# First iterate through the students, getting their name and a reference to the list to store their grades in:\n", "for student, grades in ...:\n", " # Then iterate through the subjects and prompt for a grade for the student for each subject:\n", " for subject in ...:\n", @@ -701,37 +701,173 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Reading files\n", + "# Writing files\n", + "Let's start with writing a file so we have something to read afterward. We can read/write a few types of data:\n", + "* Text data can be read/written direclty. String data is text. And a list of dictionaries could be converted to text if each dict has the same keys in it. \n", + "* Structured data, like a dictionary, can be written by converting it to json or another format.\n", + "* Binary data, like most python objects, can be serialized with \"pickle\" and writen as binary data.\n", "\n", - "## Reading a csv file" + "## Simple string/text data\n", + "First simple example! A note on newline charcters:\n", + "* Linux and Mac (any unix flavor OS) uses '\\n' as a newline\n", + "* Windows uses '\\r\\n' as a newline character\n", + "* You can \"import os\" and use os.linesep to get the newline character appropriate for whatever OS your code is running on. \n", + "* Python has writelines and readlines functions that will figure out the newline characters for you.\n", + "* I'll use '\\n' in these examples as it shouldn't matter for any of the examples here, but if you save a file to windows to look at it... ymmv. " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "some_text = 'The quick brown fox jumps over the lazy dog!'\n", + "output_file = './simple_text.txt'\n", + "with open(output_file, 'w') as f:\n", + " # f is a file handle that we can write to. f could be any variable name.\n", + " f.write(some_text)\n", + " f.write('\\n') # it's good form to include a newline at the end of the file\n", + "# The file is automatically closed when the with indented block ends" + ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Writing Files" + "**with** helps us make sure things get cleaned up when we'r done with them. \n", + "* \"f\" is the return value of open(output_file, 'w')\n", + "* We can use \"f\", short for file handle, for as many lines as we need, indented below the with line. \n", + "\n", + "Below is an alternate way to do the same thing without using **with**. You should always use with if you can, but there are occasions where you need to keep a file handle open for a longer time, like if your program opens a mutex file to ensure that it doesn't get run twice at the same time and step on it's own feet. It would only close the mutex when it is done running, and then another instance can open the mutex. \n", + "\n", + "We don't want to forget to close files because:\n", + "* If our program opens a lot of files and never closes them, it can cause performance or stability problems on the computer.\n", + "* While we have the file open, other tools may not be able to access it. Excel, in particular, will complain if you still have an xlsx open." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "f = open(output_file, 'w')\n", + "f.write(some_text)\n", + "f.write('\\n')\n", + "f.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Writing structured data\n", + "You can convert data to json, yaml, or ahother format to write to file and easily read it back in later. \n", + "\n", + "**Json** is a format you'll use a lot for web queries. You'll notice that json looks very similar to python code. It's more strict though - no comments allowed, less flexible about quoting, etc. \n", + "**Yaml** is a format that's friendly for editing with a text editor, like for a config file." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "import json\n", + "\n", + "data = [{'name': 'Stanley', 'math': '85', 'science': '90', 'history': '92'},\n", + " {'name': 'Casey', 'math': '75', 'science': '80', 'history': '85'},\n", + " {'name': 'Taylor', 'math': '95', 'science': '100', 'history': '100'}]\n", + "\n", + "text_data = json.dumps(data) # dumps is \"dump string\"\n", + "output_file = './stundent_grades.json'\n", + "with open(output_file, 'w') as f:\n", + " f.write(text_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can actually skip the intermediary step of calling json.dumps and let json work directly with the file handle. Either way is okay, but the above is nice to see since it looks like the first simple text example and you can use that dumps funcion for web stuff too. " + ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], + "source": [ + "with open(output_file, 'w') as f:\n", + " json.dump(data, f)\n", + " # notice we're using \"data\", not \"text_data\" here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading Files\n", + "Reading file data works almost exactly like writing the data.\n", + "\n", + "Note that pandas has it's own functions for reading in .csv, .dat, .xlsx files that we'll look at next week. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We read this from the file:\n", + "The quick brown fox jumps over the lazy dog!\n", + "\n" + ] + } + ], + "source": [ + "input_file = './simple_text.txt'\n", + "with open(input_file, 'r') as f:\n", + " text = f.read()\n", + "# The file is automatically closed when the with indented block ends\n", + "print(\"We read this from the file:\")\n", + "print(text)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We read this from the file:\n", + "{'name': 'Stanley', 'math': '85', 'science': '90', 'history': '92'}\n", + "{'name': 'Casey', 'math': '75', 'science': '80', 'history': '85'}\n", + "{'name': 'Taylor', 'math': '95', 'science': '100', 'history': '100'}\n" + ] + } + ], + "source": [ + "input_file = './stundent_grades.json'\n", + "with open(input_file, 'r') as f:\n", + " new_data = json.load(f)\n", + "print(\"We read this from the file:\")\n", + "for student_dict in new_data:\n", + " print(student_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [] }, { From 103d8db77feef25a18a0e26ea942436f3d89f179 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 10 Aug 2024 19:18:18 -0700 Subject: [PATCH 063/163] content --- 0-coursework/week_2.ipynb | 86 ++++++++++++++++++++++++++++++++++++--- README.md | 2 +- 2 files changed, 81 insertions(+), 7 deletions(-) diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 723940a..07571b5 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -735,10 +735,25 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "**with** helps us make sure things get cleaned up when we'r done with them. \n", + "### Using \"with\"\n", + "**with** helps us make sure things get cleaned up when we'r done with them. In the example above:\n", "* \"f\" is the return value of open(output_file, 'w')\n", "* We can use \"f\", short for file handle, for as many lines as we need, indented below the with line. \n", "\n", + "The general format is as follows. \n", + "\n", + " with some_function() as variable_name:\n", + " do stuff with variable_name\n", + " ...\n", + " variable_name.close() is called automatically\n", + "\n", + "A few examples of things that support using with:\n", + "* opening zip files, like with the zipfile library.\n", + "* some database connecions, like with the sqlite3 library.\n", + "* temporary files with the tempfile library\n", + "* network calls with requests.get\n", + "* ... lots more\n", + "\n", "Below is an alternate way to do the same thing without using **with**. You should always use with if you can, but there are occasions where you need to keep a file handle open for a longer time, like if your program opens a mutex file to ensure that it doesn't get run twice at the same time and step on it's own feet. It would only close the mutex when it is done running, and then another instance can open the mutex. \n", "\n", "We don't want to forget to close files because:\n", @@ -868,7 +883,51 @@ { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "#### *Exercise*:\n", + "\n", + "Let's make a journaling tool that we can use to record things we've learned each day in class. We'll use two cells for this.\n", + "\n", + "In the first cell, we can create new jornal entries. Use open(journam_file, 'w+') with a **w+** to append to the file so that if you are making multiple entries on the same date, you don't overwrite one. An entry is a single line of text from the input function.\n", + "\n", + "In the second cell, get a list of journal files using os.listdir and open them one at a time to print out the journal entries. \n", + "\n", + "For extra credit, store the journal entries in json format - you might need to open the file, read the data, add to the data, and rewrite the entire file to store an entry... O_O " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ADDING NEW JOURNAL ENTRIES\n", + "from datetime import datetime\n", + "\n", + "# We use a file with today's date in the name\n", + "todays_date = datetime.now().strftime(\"%Y-%m-%d\")\n", + "journal_file = f'./journal_{todays_date}.txt'\n", + "# We write some text to the file\n", + "\n", + "# open the file for writing and write the text to it. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# READING JOURNAL ENTRIES\n", + "import os\n", + "\n", + "all_files = os.listdir('.')\n", + "\n", + "# use a list comprehension to filter the files to only the journal files\n", + "journal_files = ...\n", + "\n", + "# iterate over each of the files, open them, print the date from the filename, and print the contents of the file" + ] }, { "cell_type": "markdown", @@ -878,14 +937,29 @@ "This week, we can use the power of loops to make shapes of arbitrary numbers of sides with only a few lines of code!\n", "\n", "#### *Exercise*:\n", - "* Use variables for number_of_sides, side_length and a loop to draw regular polygons of any size and number of sides. You can use another variable, turn_angle, that is equal to 360 divided by the number of sides. Try doing this using a counter as we did last week and a while loop that checks if the counter is less than number_of_sides.\n", - "* Do the same thing, but with a for loop, iterating over range(number_of_sides) and omit the counter.\n" + "**Level 1**\n", + "* Create variables for number of sides and size. \n", + "* Calculate the turn angle based on the number of sides.\n", + "* Use a loop to draw the shape described by the variables\n", + "\n", + "**Level 2**\n", + "* Create a dictionary that describes a variety of shapes, like {'big square': (4, 100), 'small triangle': (3, 50), ...}\n", + "* Create a list that holds a few of the shapes listed ['big square', 'small square', ...]\n", + "* Use a loop to go through the list of shapes to make, looks up the values needed to make the shape, and then draws each shape one at a time. \n", + "\n", + "**Level 3**\n", + "* Create a config file for storing different shapes. Read it in to get the shapes data. \n", + "* Use the list of shapes as above to say which to make from the config file." ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, - "source": [] + "outputs": [], + "source": [ + "# Copy the base turtle code from last week's notebook to start." + ] } ], "metadata": { diff --git a/README.md b/README.md index 4738689..1fad4ff 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Our recommended mode of work will be in notebooks on google Colab: https://colab * Sign up for a google account if you don't have one. * Log in to https://colab.research.google.com and skim over the readme info * Open the week one notebook that we'll be working from: - * Go to File -> Open Notebook -> Github, and paste in "a8ksh4/Python-Intro". + * Go to File -> Open Notebook -> Github, and paste in "a8ksh4/Python_Class". * Open the Library Week 1 notebook file * There's a nice intro video for collabe here: https://www.youtube.com/watch?v=inN8seMm7UI From 11514bcdaa588c05b4c8ebec6ecba10e662fa289 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 11 Aug 2024 10:39:54 -0700 Subject: [PATCH 064/163] content --- 0-coursework/week_3.ipynb | 67 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index 34a1152..84585d4 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -38,8 +38,71 @@ "metadata": {}, "source": [ "## Functions\n", + "We use functions for a few things:\n", + "* Reduce dupliation in code - use the same function in multiple places in your code.\n", + "* Simplify code - breaking down complex code into smaller, separate, problems make the entire code more managable and maintainable. \n", + "* Readability - named functions say specifically what they're going to do, so our program is less cluttered and easier to follow. \n", "\n", + "### Scope\n", + "This is a new concept for us - there are certain places where variables can be defined that they will be unaccessible externally. The variables have a specific scope in which they can be used. \n", + "* **Global** - variables defined outside of functinos, classes, etc, in your program are accessible from everywhere. However, it's bad practice to use global variables from inside of functions as it makes it hard to follow what data is used by the function. Side effects can be introduced.\n", + "* **Functions** - variables defined inside of functions are not visible outside of the function. This means we don't neeed to worry about accidentally using a variable from a(nother) function when we don't mean to. \n", + "* **Classes/Objects** - objects (instances of a class) have thier own variables/properties and functions that aren't accessible externally.\n", + "* **Modules** - modules imported like, \"import pandas\", have their own scope inside of \"pandas\" that we access via the module name, like \"pandas.DataFrame\". If we were to do \"from pandas import *\", then all things in the pandas namespace would be populated into our global namespace and we could directly access DataFrame. This can introduce problems, e.g., if multiple modules have things with the same name inside of them. It's better to import specific things to our global namespace if wanted... \"from pandas import DataFrame\" will only add the DataFrame class to our global namespace.\n", + "* And a few other places. Try except blocks, inside of list comprehensions, etc.\n", + "\n", + "What this means to us with regard to functions is that we should pass data the function needs in as arguments, create any variables in the function that we need without worrying about them polluting the namespace of our greater program, and then return the important data from the function with a return call.\n", + "\n", + "### General Format\n", + "Here's how we define a function:\n", + "\n", + " def function_name(arg1, arg2, ...):\n", + " '''function description in tripple quoted block of text.\n", + " This is not mandatory, but is good practice.'''\n", + " function\n", + " code\n", + " here\n", + " return some_value\n", + "\n", + "We can only return one object, but because that object can be a collection like a list or dictionary, we can bundle things to pass them all out. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The function says - Sum: 15, Count: 5, Average: 3.0\n" + ] + } + ], + "source": [ + "def compute_stats_on_numbers(list_of_numbers):\n", + " sum_of_numbers = sum(list_of_numbers)\n", + " count_of_numbers = len(list_of_numbers)\n", + " average_of_numbers = sum_of_numbers / count_of_numbers\n", + " return sum_of_numbers, count_of_numbers, average_of_numbers # This is a tuple. The () around it are implied\n", + "\n", + "numbers = [1, 2, 3, 4, 5]\n", + "num_sum, num_count, num_avg = compute_stats_on_numbers(numbers)\n", + "\n", + "print(f'The function says - Sum: {num_sum}, Count: {num_count}, Average: {num_avg}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "### Positional Arguments\n", + "When we define a function with multiple arguments like this:\n", + "\n", + " def do_the_thing(pos1, pos2, pos3, ..., posN):\n", + "\n", + "We must pass the function N arguments with positoins corresponding with the function definition.\n", "\n", "### Optional Arguments \n", "\n", @@ -52,7 +115,7 @@ "\n", " def debug_print(*args, **kwargs):\n", " if DEBUG:\n", - " print(*args, **kwargs)\n" + " print(*args, **kwargs)" ] }, { @@ -143,7 +206,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, From ff482a177c72f4acc55e9d3359d547aa38df31e1 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 17 Aug 2024 12:04:09 -0700 Subject: [PATCH 065/163] content and cleanup --- 0-coursework/week_1.ipynb | 96 +++---- 0-coursework/week_2.ipynb | 35 +-- 0-coursework/week_3.ipynb | 562 ++++++++++++++++++++++++++++++++------ 3 files changed, 531 insertions(+), 162 deletions(-) diff --git a/0-coursework/week_1.ipynb b/0-coursework/week_1.ipynb index 34f77ce..592d587 100644 --- a/0-coursework/week_1.ipynb +++ b/0-coursework/week_1.ipynb @@ -33,7 +33,7 @@ "\n", "It may not run as fast as a compiled language like c, c++, fortran, but it has a lot of libraries that are written in c and make specific tasks very fast. We'll work with pandas later in this class. Pandas is built on numpy, a very performant library for manipulating lots of numbers. \n", "\n", - "### What can we do with Python?\n", + "## What can we do with Python?\n", "* Machine learning - Look into \"SciPy\" and many other libraries that make ML simple-ish to use.\n", "* Analytics and data processing - find trends, do analysis, make graphs!\n", "* Automate the boring stuff - office tasks like mail merges, filling out document templates over and over, processing spreadsheet and data\n", @@ -58,7 +58,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Libraries\n", + "# Libraries\n", "You'll learn pretty quickly that learing python is as much about understanding how the language works as getting familiar with libraries to do the things you want to do. A few examples:\n", "* import math\n", " * it has functions for rounding, trig, and a lot more\n", @@ -77,10 +77,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Syntax\n", + "# Syntax\n", "Reference this page: https://en.wikipedia.org/wiki/Python_syntax_and_semantics\n", "\n", - "### Keywords\n", + "## Keywords\n", "Some words cannot be used as variables because they have special meaning in the python language: \n", "\n", " and as assert async await break case class continue \n", @@ -88,7 +88,7 @@ " if import in is lambda match None nonlocal not or pass \n", " raise return True try while with yield _.*\n", "\n", - "### Indentation\n", + "## Indentation\n", "Python uses indentation to group code inside of functions, classes, and control blocks. Other languages often use { } for the same purpose. \n", "\n", "For example, this function called foo has an if else block inside of it, with indentation showing what code belongs to the function:\n", @@ -118,7 +118,7 @@ "\n", "The indentation in c code is functionally unnecessary, but makes it readable.\n", "\n", - "### Quoting\n", + "## Quoting\n", "Strings, non-numeric values, are quoted with ', \", ''', \"\"\". We'll look at this more in the strings section below. Just note this. Variable names are not quoted, but values when assigned or passed as arguments to a function are if they are to be treated as strings. \n", "\n", "Examples:\n", @@ -132,21 +132,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# It's Pretty Cool\n", "print()\n", @@ -164,7 +152,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Describing data types\n", + "## Describing data types\n", "We use symbols like [], (), {} to say what type of data things are:\n", "\n", "* To define a list:\n", @@ -176,7 +164,7 @@ "* To define a dictionary we use the : to relate things between the curlyl braces.\n", " * z = {1: 'a', 2: 'b', 'c': 'foo'}\n", "\n", - "### Variables and Functions\n", + "## Variables and Functions\n", "We'll look deeper at each of these later, but just note how we write them for now. We'll get into the intricacies of how they work later. \n", "\n", "**Variables** are created by assigning a value to a name with an = symbol. For examble:\n", @@ -204,7 +192,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Syntax Errors\n", + "## Syntax Errors\n", "Recent versions of python 3 are pretty good at giving you error messages that help! \n", " \n", "#### *Exercise*:\n", @@ -216,18 +204,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "unterminated string literal (detected at line 1) (3022633391.py, line 1)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m Cell \u001b[0;32mIn[9], line 1\u001b[0;36m\u001b[0m\n\u001b[0;31m a = \"The quick brown fox jumps over the lazy dog'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m unterminated string literal (detected at line 1)\n" - ] - } - ], + "outputs": [], "source": [ "a = \"The quick brown fox jumps over the lazy dog'\n", "# Hint, something should be the same at the start and end of the string\n", @@ -290,7 +269,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Data Types\n", + "# Data Types\n", "You may have heard the saying that everything in Python is an object. This means that every *thing* in python has properties and built in methods/functions for interacting with it. \n", "\n", "Following are the built in data types we need to know how to work with. But also keep in mind that we can define a *class* to make any type of object suited to our specific need. \n", @@ -367,10 +346,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Integers and Floats\n", + "## Integers and Floats\n", "Python has different data types for integers, whole numbers, and floating point values, but will automaticaly convert to using floats when doing division unless you tell it not to. \n", "\n", - "#### Arithmatic Operations\n", + "## Arithmatic Operations\n", "Most of these should look familiar. We start by assigning values to a and b, and them do some math with them. A few things to note:\n", "* '/' is for division and will give a floating point value\n", "* '//' is for division but will drop the remainder and give an integer result\n", @@ -399,7 +378,7 @@ " >>> a % b\n", " 2\n", "\n", - "#### Typecasting Ints and Floats\n", + "## Typecasting Ints and Floats\n", "There are a few cases where you'd want to **cast** objects to and from int or float.\n", "* round a floating point value down by converting it to an int\n", "* convert a string to an int - this can be done for strings like '5', '-256', '999', but not '5.0'.\n", @@ -437,12 +416,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Strings\n", + "# Strings\n", "**Just a plain string**:\n", "\n", " foo = \"Nothing exciting here\"\n", "\n", - "#### Formatting\n", + "## Formatting\n", "\n", "**f-strings!**\n", "\n", @@ -462,7 +441,7 @@ " print(greeting.format(name, weedkay))\n", "\n", "\n", - "#### String Operations\n", + "## String Operations\n", "String objects have a bunch of built in operations for manipulating them:\n", "* .upper(), .lower(), .capitalize(), .title()\n", "* .strip(), .lstrip(), .rstrip()\n", @@ -518,7 +497,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### split and join\n", + "## split and join\n", "Sometimes we want to take a single string and split it into lines, or words, or something else and work on each part of it one at a time. For example, we might use split or splitlines to:\n", "* Print one line at a time\n", "* Check each word one a time\n", @@ -570,10 +549,10 @@ "source": [ "Here's a little more complicated example using a for loop to do something to each line from a file one at a time. If you don't have the sample.csv file at the same path, either update the path to where you put it, or comment out the file read lines, and add:\n", "\n", - "content = '''Age,Name,Fav_Color \n", - "40,Dan,Blue \n", - "9,James,Green \n", - "25,Frank,Black''' \n", + " content = '''Age,Name,Fav_Color \n", + " 40,Dan,Blue \n", + " 9,James,Green \n", + " 25,Frank,Black''' \n", "\n", "in place of it." ] @@ -635,10 +614,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "\n", - "\n", - "#### String Slicing\n", + "## String Slicing\n", "Strings, lists, and tuples can be \"sliced\" similarly. We put brackest at the end of the varialbe name and use numbers and : to select some number of elements from the string. Given [a:b:c]\n", "* a is the starting character and is optional. If omitted, we start at the very ferst character of the string. If given, it is inclusive, and counting starts at zero. [0:2] is the same as [:2]. \n", "* b is the ending character and is exclucive, meaning we take up to but not including this character. \n", @@ -664,7 +640,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Lists\n", + "# Lists\n", "List can contain any type of object, not just strings. Even lists of lists! Like strings, list objects have built in functions to work with them:\n", "\n", " >>> my_list = ['some', 'words', 'and', 'numbers', 4, 5, 6, 'and a list', ['foo', 'too']]\n", @@ -720,7 +696,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Tuples\n", + "# Tuples\n", "Tuples are like lists, but cannot be changed once defined. When you see a tuple, it implies finality. Tuple objects only have a couple of built in functions:\n", "\n", " >>> all_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')\n", @@ -758,14 +734,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Sets\n" + "# Sets\n", + "\n", + "Sets are like lists, but are a collection of things without duplicates. The set operators are a little different. Instead of .append, we use .add. And sets have functions for finding intersectinos between sets, which don't exist for lists. \n", + "\n", + "## TODO add more here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## if/elif/else conditional statements\n", + "# if/elif/else conditional statements\n", "Python supports the usual logical conditions from mathematics:\n", "\n", "* Equals: a == b\n", @@ -784,7 +764,7 @@ " else:\n", " print('a must be less than b')\n", "\n", - "### Non-numeric \n", + "## Non-numeric conditional tests\n", "We can use a lot more variety of conditions in our code:\n", "**String tests**\n", "word = input('Enter a word: ')\n", @@ -804,16 +784,16 @@ "if not things:\n", " print('Things is an empty list')\n", "\n", - "### Truthiness\n", + "## Truthiness\n", "Most objects can be evaluated as True or False. \n", "\n", - "Examples of True things:\n", + "**Examples of True things:**\n", "* Lists, Tuples, Sets that are not empty\n", "* Strings with at least one character in them\n", "* Positive or negative numbers\n", "* True # true evaluates true\n", "\n", - "Examples of False things:\n", + "**Examples of False things:**\n", "* Empty lists, tuples, sets\n", "* 0 (zero)\n", "* Empty strings: ''\n", diff --git a/0-coursework/week_2.ipynb b/0-coursework/week_2.ipynb index 07571b5..b6254ab 100644 --- a/0-coursework/week_2.ipynb +++ b/0-coursework/week_2.ipynb @@ -11,7 +11,7 @@ "This is a very exciting week. Dictionaries are so useful for organizing things, and with the introductin of loops, we become real programmers who can perform large tasks with concise bits of code. The Exercises below for the loops are hopefully kind of challenging requring you to use conditoinals, variables, lists, and if else branching!\n", "\n", "# Dictionaries\n", - "Dictionaries are for key: value collections. \n", + "Dictionaries are for key: value collections.\n", "\n", "This could be useful for many reasons! Here's asimple example, and below a more complex example. Some exersices will follow breaking this stuff down. \n", "\n", @@ -202,16 +202,16 @@ "**Grouping files for processing by analysis type**\n", "This jumps ahead a little by using a for loop, but this is really helpful use case for dictionies. Imagine you have a bunch of data files that use similar processing overall, but with small differences depeding on the particlar analyte beig looked at. We can group common data files in a dictionary and then use the same code on them all later. We'll expand on later, but try to internalize what's happening here:\n", "\n", - "all_files = {'chloraphyl': [], 'nitrogen': [], 'salinity': []}\n", - "for file_name in os.listdir():\n", - " if 'chloraphyl' in file_name:\n", - " all_files['chloraphyl'].append(file_name)\n", - " elif 'nitrogen' in file_name:\n", - " all_files['nitrogen'].append(file_name)\n", - " elif 'ph' in file_name:\n", - " all_files['salinity'].append(file_name)\n", - " else:\n", - " print('Warning, unknown file:', file_name)\n", + " all_files = {'chloraphyl': [], 'nitrogen': [], 'salinity': []}\n", + " for file_name in os.listdir():\n", + " if 'chloraphyl' in file_name:\n", + " all_files['chloraphyl'].append(file_name)\n", + " elif 'nitrogen' in file_name:\n", + " all_files['nitrogen'].append(file_name)\n", + " elif 'ph' in file_name:\n", + " all_files['salinity'].append(file_name)\n", + " else:\n", + " print('Warning, unknown file:', file_name)\n", "\n", "* all_files is a dictionary with three key: value pairs. \n", "* the key is teh analyte name that we're looking for in the file names\n", @@ -219,10 +219,11 @@ "* os.listdir() returns a list of all of the files in the current working directory. You could also pass it a path to another directory if needed. \n", "\n", "We'll get a dictionary that looks like this afterward:\n", - ">>> all_files\n", - "{'chloraphyl': ['chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx',],\n", - " 'nitrogen': ['nitrogen_20240202.xlsx', 'nitrogen20240202.xlsx',],\n", - " 'salinity': ['salinity_20240202.xlsx', 'salinity_20240202.xlsx'] }" + "\n", + " >>> all_files\n", + " {'chloraphyl': ['chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx', 'chloraphyl_20240202.xlsx',],\n", + " 'nitrogen': ['nitrogen_20240202.xlsx', 'nitrogen20240202.xlsx',],\n", + " 'salinity': ['salinity_20240202.xlsx', 'salinity_20240202.xlsx'] }" ] }, { @@ -548,7 +549,7 @@ "\n", "#### *Exercise*:\n", "\n", - "Write list comprehinsions in the code cell to modify each source list per the instructions in the comment. Replace each '...'." + "Write list comprehensions in the code cell to modify each source list per the instructions in the comment. Replace each '...'." ] }, { @@ -978,7 +979,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index 84585d4..8ba1d29 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -6,37 +6,12 @@ "source": [ "# Week 3\n", "\n", - "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Foo\n" - ] - } - ], - "source": [ - "print('Foo')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ + "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration.\n", + "\n", + "**Fun detours**\n", + "* Use openai chatgpt to do some text AI\n", + "* Web page hosted in python\n", + "\n", "## Functions\n", "We use functions for a few things:\n", "* Reduce dupliation in code - use the same function in multiple places in your code.\n", @@ -53,7 +28,39 @@ "\n", "What this means to us with regard to functions is that we should pass data the function needs in as arguments, create any variables in the function that we need without worrying about them polluting the namespace of our greater program, and then return the important data from the function with a return call.\n", "\n", - "### General Format\n", + "#### Exercise\n", + "A few steps to demonstrate interactions between global and function local variables:\n", + "* Run the cell below and not the values of x inside and outside of the function.\n", + "* Uncomment the x=3 line and see what changes\n", + "* Uncomment the global declaration in the function ans run it again to see what changes.\n", + "\n", + "At first, x only exists in the global namespace, so when we call print, python finds it there. When we uncomment the x=3, we define x in the function namespace so that is what gets printed. The function's namespace will always be used before the global namespace. Note that we don't overwrite the global namespace x value when we set x in the function. \n", + "\n", + "When we uncomment the global line, we are declaring that the x in the function is the global namespace x, so when we set x=3, we are able to change the global x. There are times when this is useful, but in general we should try not to do this because it makes it harder to debug code and hides interaction between stuff. It's also better to pass values in as arguments than to refer to globals in functions, even if we aren't changing the global value. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = 2\n", + "def print_a_value(foo):\n", + " # global x\n", + " # x = 3\n", + " print('x in func is:', x)\n", + " print('foo in func is:', foo)\n", + "print('global x is', x)\n", + "print_a_value(x)\n", + "print('now global x is', x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### General Format of a Function\n", "Here's how we define a function:\n", "\n", " def function_name(arg1, arg2, ...):\n", @@ -62,24 +69,24 @@ " function\n", " code\n", " here\n", + " some_value = foo\n", " return some_value\n", "\n", - "We can only return one object, but because that object can be a collection like a list or dictionary, we can bundle things to pass them all out. " + "We can only return one object, but because that object can be a collection like a list or dictionary, we can bundle things to pass them all out. Examples:\n", + "\n", + " return {'a': 'dictionary', 'is': 'okay}\n", + " return 'this', 'will', 'return', 'a', 'tuple'\n", + " x = ['a', 'list', 'works', 'too']\n", + " return x\n", + "\n", + "Here's an example returning a tuple:" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The function says - Sum: 15, Count: 5, Average: 3.0\n" - ] - } - ], + "outputs": [], "source": [ "def compute_stats_on_numbers(list_of_numbers):\n", " sum_of_numbers = sum(list_of_numbers)\n", @@ -102,11 +109,106 @@ "\n", " def do_the_thing(pos1, pos2, pos3, ..., posN):\n", "\n", - "We must pass the function N arguments with positoins corresponding with the function definition.\n", + "We must pass the function N arguments with positions corresponding with the function definition.\n", + "\n", + " return_value = do_the_thing('stuff1', 'stuff2', 'stuff3', ..., 'stuffN')\n", "\n", - "### Optional Arguments \n", + "### Optional Arguments\n", + "We can also set default values for arguments, startning with argument N and working backward. We cannot set a default values for pos1 but not for pos2.\n", "\n", + " def do_the_thing(arg1, arg2, arg3=False, arg4=True)\n", + "\n", + "In this case, we must pass arg1 and arg2, but we can omit arg3 and arg4 if we don't need them. \n", + "\n", + "Consider this example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import pandas as pd\n", + "\n", + "def generate_random_data(num_rows, num_cols, to_dataframe=False):\n", + " '''Thes function accepts a number of rows and number of columns and\n", + " generates a table of random data. If to_dataframe is True, it will\n", + " return a pandas DataFrame. Otherwise, it will return a list of dictionaries.'''\n", + " data = [\n", + " {f'col_{j+1}': random.random() for j in range(num_cols)}\n", + " for i in range(num_rows)\n", + " ]\n", + " \n", + " if to_dataframe:\n", + " data = pd.DataFrame(data)\n", + " \n", + " return data\n", + "\n", + "# Example usage\n", + "random_data_list = generate_random_data(5, 3) # not necessary to specify to_dataframe=False\n", + "random_data_df = generate_random_data(5, 3, to_dataframe=True)\n", + "\n", + "print(random_data_list)\n", + "print(random_data_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the two lines from Example usage, the fist line skipps passing to_dataframe because the default value is acceptable.\n", + "\n", + "#### Exercise\n", + "Write a functon called **prompt_user** that accepts two arguments, **choices**, and **num_tries**. \n", + "\n", + "It should ask the user to chose one of the choices, and then try num_tries times to let them type in a choice. If what they type in doesn't match any choices, then have them try again. If they don't do it successfully in num_tries, then return False. If they do chose one, then return that choice. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def prompt_user(...):\n", + " ...\n", + " return user_input" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's test it!\n", + "choices = ['red', 'green', 'blue']\n", + "choice = prompt_user(choices, 2)\n", + "if choice:\n", + " print(f'You chose {choice}')\n", + "else:\n", + " print('You did not choose a valid option')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "### Keyword Arguments\n", + "Finally, some functions have lots of optional arguments. Often with default values of False for skipping some functionality in the function, or they could have sane defaults like a function to read_a_csv_file might have a default header_row=0 to use the first row of the file as the column headers. You'd only change it when you call the function if you have padding rows at the top of your file. \n", + "\n", + "Let's look at some examples of the pandas read_excel function with different combinations of arguments given. Compare to the function documentation here: https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html\n", + "\n", + "If we have an excel file with multiple sheets, but we want specifically to load the data from sheet2, we can do:\n", + "\n", + " df = pd.read_excel('data.xlsx', sheet_name='Sheet2')\n", + "\n", + "Or if it is only one sheet, but we want to load specific columns and skip the top two rows in the file:\n", + "\n", + " df = pd.read_excel('data.xlsx', usecols=['A', 'C', 'E'], skip_rows=2)\n", + "\n", "\n", "### Arbitrary Arguments\n", "We won't get into this, but look into *args and **kwargs. You can make a funcation accept any arguments. An example use for this is cerating your own version of the print function:\n", @@ -118,59 +220,345 @@ " print(*args, **kwargs)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Imprting Data\n", + "# First Pandas Experiment\n", + "Nasa has this list of meteorites that we can use. Let's see what we can learn about this data. We'll import it and generate some plots to better understand it.\n", "\n", - "### Reading Files\n", + "First thing is importing. We use requests to query the url, get the json data, and convert it to a dataframe. A few useful funtions for viewing data in a dataframe are .head(), .tail(), and .info(). " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nameidnametyperecclassmassfallyearreclatreclonggeolocation:@computed_region_cbhk_fwbd:@computed_region_nnqa_25f4
0Aachen1ValidL521Fell1880-01-01T00:00:00.00050.7750006.083330{'type': 'Point', 'coordinates': [6.08333, 50....NaNNaN
1Aarhus2ValidH6720Fell1951-01-01T00:00:00.00056.18333010.233330{'type': 'Point', 'coordinates': [10.23333, 56...NaNNaN
2Abee6ValidEH4107000Fell1952-01-01T00:00:00.00054.216670-113.000000{'type': 'Point', 'coordinates': [-113, 54.216...NaNNaN
3Acapulco10ValidAcapulcoite1914Fell1976-01-01T00:00:00.00016.883330-99.900000{'type': 'Point', 'coordinates': [-99.9, 16.88...NaNNaN
4Achiras370ValidL6780Fell1902-01-01T00:00:00.000-33.166670-64.950000{'type': 'Point', 'coordinates': [-64.95, -33....NaNNaN
\n", + "
" + ], + "text/plain": [ + " name id nametype recclass mass fall year \\\n", + "0 Aachen 1 Valid L5 21 Fell 1880-01-01T00:00:00.000 \n", + "1 Aarhus 2 Valid H6 720 Fell 1951-01-01T00:00:00.000 \n", + "2 Abee 6 Valid EH4 107000 Fell 1952-01-01T00:00:00.000 \n", + "3 Acapulco 10 Valid Acapulcoite 1914 Fell 1976-01-01T00:00:00.000 \n", + "4 Achiras 370 Valid L6 780 Fell 1902-01-01T00:00:00.000 \n", + "\n", + " reclat reclong geolocation \\\n", + "0 50.775000 6.083330 {'type': 'Point', 'coordinates': [6.08333, 50.... \n", + "1 56.183330 10.233330 {'type': 'Point', 'coordinates': [10.23333, 56... \n", + "2 54.216670 -113.000000 {'type': 'Point', 'coordinates': [-113, 54.216... \n", + "3 16.883330 -99.900000 {'type': 'Point', 'coordinates': [-99.9, 16.88... \n", + "4 -33.166670 -64.950000 {'type': 'Point', 'coordinates': [-64.95, -33.... \n", + "\n", + " :@computed_region_cbhk_fwbd :@computed_region_nnqa_25f4 \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN " + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import requests\n", + "import pandas as pd\n", + "meteorites = requests.get('https://data.nasa.gov/resource/y77d-th95.json').json()\n", + "mets = pd.DataFrame(meteorites)\n", + "mets.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, so we have geolocation, mass, and datetime info for each meteor. Let's try graphing mass per date to see if there's any obvious trend. \n", "\n", - "### Reading Files with Pandas\n", + "We need each column to be the correct datatype before we can generate a plot.\n", + "* To simplify the datetime 'year' column, I use a string operation to split it on the 'T' ang take just the year, month and day. Then we can use pd.to_datetime do convert it to a datetime object by passing in the format to use to convert it. \n", + "* We need the mass to be a numeric value so we overwrite the column with itself converted using pd.to_numeric. Similarly, there ar pd.to_int, pd.to_float, pd.to_string operatoins that we might want to use in other cases. \n", "\n", - "### Query Database\n", + "Finally, pandas has a built in plot function that can generate a bunch of different graph types. Setting 'logy' says to graph the y axis in log scale. Try setting it and see what happens to the data points and y axis scale. \n", "\n", - "### Query Website with requests\n", - "import requests\n", - "import pandas as pd\n", + "https://www.w3schools.com/python/gloss_python_date_format_codes.asp" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACn6UlEQVR4nO2deVxVdf7/XxdkV5BNDGVxQQsXVATT1LRIM7PUqcwWjdSaQp0iZ0azn9ZM5cxk5oxR1uSSLY7ZpPm1ySxDcUtQxNxSEFFc2DcBA+R+fn/Qud7l7Pfclffz8fDxkHPOPefz+ZzPOZ/3ea86xhgDQRAEQRBEO8TD0Q0gCIIgCIJwFCQIEQRBEATRbiFBiCAIgiCIdgsJQgRBEARBtFtIECIIgiAIot1CghBBEARBEO0WEoQIgiAIgmi3kCBEEARBEES7hQQhgiAIgiDaLSQIEQRhc3Q6HV599VVHN8Op2b17N3Q6Hb788ktHN4Ug2hUkCBGEg1i/fj10Oh10Oh327dtnsZ8xhqioKOh0Otx///2qrvHee+9h/fr1VrZUew4cOIBXX30VNTU1mp7XHmPq6rz66quGMdLpdPD390d0dDQmTZqEdevWoampSfW5//e//5HAS7gcJAgRhIPx9fXF559/brF9z549uHTpEnx8fFSf21kEoevXr+OVV14x/H3gwAG89tprmgtCHLYcU3fh/fffxyeffIJVq1Zh9uzZqKqqwtNPP43k5GQUFxerOuf//vc/vPbaaxq3lCBsCwlCBOFg7rvvPmzevBk3btww2f75558jMTERXbt2dVDLrEOv1+PXX38F0CaYdOjQwW7Xdtcx1ZKHHnoITzzxBGbNmoUlS5Zg//79+PTTT3HixAk8/PDDjm4eQdgNEoQIwsFMnz4dlZWV+P777w3bmpub8eWXX+Kxxx7j/Y1er8fKlSvRr18/+Pr6IiIiAs8++yyqq6sNx8TGxuLkyZPYs2ePwQwyZswYw/6amhq88MILiIqKgo+PD3r37o2///3v0Ov1JtdqaGjASy+9ZDiub9++WL58ORhjJsfpdDrMnTsXn332Gfr16wcfHx/s2LHDsI8zmbz66qv44x//CADo0aOHoW1FRUWGc3366adITEyEn58fQkJC8OijjyrSUqgZ0+XLl2PEiBEIDQ2Fn58fEhMTef11vv/+e4wcORKdO3dGx44d0bdvX7z88ssmx6xatQr9+vWDv78/goODMXToUF4NFR+tra14+eWX0bVrVwQEBOCBBx4w6fvSpUvh5eWF8vJyi98+88wz6Ny5s0EAVcrjjz+O2bNn49ChQyZjt3fvXjz88MOIjo6Gj48PoqKi8OKLL+L69euGY5566ilkZGQAgInpjUPOnCUIh8AIgnAI69atYwBYTk4OGzFiBHvyyScN+7Zu3co8PDzY5cuXWUxMDJs4caLJb2fPns06dOjA5syZw1avXs3+/Oc/s4CAAJaUlMSam5sZY4xt2bKFde/end16663sk08+YZ988gnbuXMnY4yxhoYGNnDgQBYaGspefvlltnr1ajZjxgym0+nYH/7wB8N19Ho9u+uuu5hOp2OzZ89m7777Lps0aRIDwF544QWTNgFgt912GwsPD2evvfYay8jIYEePHjXsW7p0KWOMsWPHjrHp06czAOydd94xtK2+vp4xxtjrr7/OdDodmzZtGnvvvffYa6+9xsLCwlhsbCyrrq622Zh2796dPf/88+zdd99lK1asYMnJyQwA2759u+GYEydOMG9vbzZ06FD2z3/+k61evZotWLCAjR492nDMhx9+yACwhx56iH3wwQfsn//8J5s1axabP3++aNszMzMZADZgwAA2cOBAtmLFCrZw4ULm6+vL+vTpwxobGxljjOXn5zMAbNWqVSa/b2pqYsHBwezpp58Wvc7SpUsZAFZeXs67f+/evQwAW7BggWHbvHnz2H333cfefPNN9sEHH7BZs2YxT09P9tBDDxmOOXDgALvnnnsYAMM9/eSTTwz75cxZgnAEJAgRhIMwXrTfffdd1qlTJ8Ni9/DDD7OxY8cyxpjFos0tVJ999pnJ+Xbs2GGxvV+/fuzOO++0uPZf//pXFhAQwM6ePWuyfeHChczT05NdvHiRMdYmPABgr7/+uslxDz30ENPpdKygoMCwDQDz8PBgJ0+etLiesSDEGGNvvfUWA8DOnz9vclxRURHz9PRkb7zxhsn248ePsw4dOlhsN0ftmDLGDMdxNDc3s/79+7O77rrLsO2dd94RFSIYY+zBBx9k/fr1E20nH5wg1K1bN1ZXV2fY/sUXXzAA7J///Kdh2/Dhw9mwYcNMfv/VV18xACwzM1P0OlKCUHV1NQPApkyZYthmPjaMMbZs2TKm0+nYhQsXDNvS0tIY3/e1kjlLEPaGTGME4QQ88sgjuH79OrZv345r165h+/btgiaczZs3IygoCPfccw8qKioM/xITE9GxY0dkZmZKXm/z5s0YNWoUgoODTc6RkpKC1tZWZGVlAWhzfvX09MT8+fNNfv/SSy+BMYZvv/3WZPudd96J+Ph4laMAfPXVV9Dr9XjkkUdM2tW1a1fExcXJ6huHkjEFAD8/P8P/q6urUVtbi1GjRiE3N9ewvXPnzgCAr7/+2sKEaHzMpUuXkJOTI7utxsyYMQOdOnUy/P3QQw/hlltuwf/+9z+TYw4dOoRz584Ztn322WeIiorCnXfeqeq6HB07dgQAXLt2zbDNeGwaGhpQUVGBESNGgDGGo0ePSp5TizlLELbCft6LBEEIEh4ejpSUFHz++edobGxEa2srHnroId5j8/PzUVtbiy5duvDuLysrk7xefn4+fv75Z4SHh4ue48KFC4iMjDRZmAHgtttuM+w3pkePHpLXlmoXYwxxcXG8+728vGSfS8mYAsD27dvx+uuvIy8vzySE3NjPZdq0afjoo48we/ZsLFy4EHfffTemTp2Khx56CB4ebd+Vf/7zn/HDDz8gOTkZvXv3xrhx4/DYY4/hjjvukNVu877rdDr07t3bxIdq2rRpeOGFF/DZZ59hyZIlqK2txfbt2/Hiiy+atFcN9fX1AGByzy9evIglS5Zg27ZtFj49tbW1kufUYs4ShK0gQYggnITHHnsMc+bMQUlJCSZMmGDQPpij1+vRpUsXfPbZZ7z7hYQb83Pcc889+NOf/sS7v0+fPrLbbYyx5kANer0eOp0O3377LTw9PS32c9oKucgd07179+KBBx7A6NGj8d577+GWW26Bl5cX1q1bZ+Lk7Ofnh6ysLGRmZuKbb77Bjh07sGnTJtx1113YuXMnPD09cdttt+HMmTPYvn07duzYgf/+97947733sGTJEs1Cy4ODg3H//fcbBKEvv/wSTU1NeOKJJ6w+94kTJwAAvXv3BtDmvH3PPfegqqoKf/7zn3HrrbciICAAly9fxlNPPSWoGTNGizlLELaCBCGCcBKmTJmCZ599Fj/99BM2bdokeFyvXr3www8/4I477pAUPIS0A7169UJ9fT1SUlJEfx8TE4MffvgB165dM9EQ/PLLL4b9ahBrF2MMPXr0UC2MGSN3TP/73//C19cX3333nUmOoXXr1lkc6+Hhgbvvvht33303VqxYgTfffBOLFy9GZmamYTwDAgIwbdo0TJs2Dc3NzZg6dSreeOMNLFq0CL6+vqJtzs/PN/mbMYaCggIMHDjQZPuMGTPw4IMPIicnB5999hkGDx6Mfv36SY6JFJ988gkAYPz48QCA48eP4+zZs/j4448xY8YMw3HGUWUcYvdV7pwlCHtDPkIE4SR07NgR77//Pl599VVMmjRJ8LhHHnkEra2t+Otf/2qx78aNGyZJCgMCAniTFj7yyCM4ePAgvvvuO4t9NTU1hvw79913H1pbW/Huu++aHPPOO+9Ap9NhwoQJMntnSkBAgOFaxkydOhWenp547bXXLMLzGWOorKxUdB25Y+rp6QmdTofW1lbDtqKiImzdutXkuKqqKovfDho0CAAM5jTzNnp7eyM+Ph6MMbS0tEi2ecOGDSb+OV9++SWuXr1qMdYTJkxAWFgY/v73v2PPnj2aaIM+//xzfPTRRxg+fDjuvvtuADBo5ozvB2MM//znPy1+L3RflcxZgrA3pBEiCCdi5syZksfceeedePbZZ7Fs2TLk5eVh3Lhx8PLyQn5+PjZv3ox//vOfBl+YxMREvP/++3j99dfRu3dvdOnSBXfddRf++Mc/Ytu2bbj//vvx1FNPITExEQ0NDTh+/Di+/PJLFBUVISwsDJMmTcLYsWOxePFiFBUVISEhATt37sTXX3+NF154Ab169VLVz8TERADA4sWL8eijj8LLywuTJk1Cr1698Prrr2PRokUoKirC5MmT0alTJ5w/fx5btmzBM888gwULFii6lpwxnThxIlasWIF7770Xjz32GMrKypCRkYHevXvj559/Nhz3l7/8BVlZWZg4cSJiYmJQVlaG9957D927d8fIkSMBAOPGjUPXrl1xxx13ICIiAqdPn8a7776LiRMnWvha8RESEoKRI0ciNTUVpaWlWLlyJXr37o05c+aYHOfl5YVHH30U7777Ljw9PTF9+nRF4/Lll1+iY8eOaG5uxuXLl/Hdd99h//79SEhIwObNmw3H3XrrrejVqxcWLFiAy5cvIzAwEP/973958/9w93X+/PkYP348PD098eijjyqaswRhdxwVrkYQ7R3jUG8x+EK9GWvLV5OYmMj8/PxYp06d2IABA9if/vQnduXKFcMxJSUlbOLEiaxTp04MgEko/bVr19iiRYtY7969mbe3NwsLC2Mj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Graph the meteorites by date and mass\n", + "mets['ymd'] = mets['year'].str.split('T').str[0]\n", + "mets['ymd'] = pd.to_datetime(mets['ymd'], format='%Y-%m-%d', errors='coerce')\n", + "mets['mass'] = pd.to_numeric(mets['mass'])\n", + "mets.plot.scatter(x='ymd', y='mass', logy=True, title='Meteorite Mass by Date')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's neat, but doesn't show much of a trend except that we probably have better records of meteorites found since the late 1800s. Maybe it would be interesting to see where on earth we are finding the meteorites. \n", "\n", - "# URL for NDBC buoy data (e.g., Station 46042 - Monterey Bay)\n", - "url = 'https://www.ndbc.noaa.gov/data/realtime2/46042.txt'\n", + "Let's plot them atop a map of the earth. Firt thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", "\n", - "# Send a GET request to fetch the data\n", - "response = requests.get(url)\n", + "https://geopandas.org/en/stable/docs/user_guide.html" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "import geopandas\n", + "from cartopy import crs as ccrs\n", + "from geodatasets import get_path\n", "\n", - "# Check if the request was successful\n", - "`\n", - "if response.status_code == 200:\n", - " # Read the data into a pandas DataFrame\n", - " data = response.text.splitlines()\n", - " headers = data[0].split()\n", - " rows = [row.split() for row in data[2:]]\n", - " df = pd.DataFrame(rows, columns=headers)\n", - " \n", - " # Convert relevant columns to numeric types\n", - " df['YY'] = pd.to_numeric(df['YY'], errors='coerce')\n", - " df['MM'] = pd.to_numeric(df['MM'], errors='coerce')\n", - " df['DD'] = pd.to_numeric(df['DD'], errors='coerce')\n", - " df['hh'] = pd.to_numeric(df['hh'], errors='coerce')\n", - " df['mm'] = pd.to_numeric(df['mm'], errors='coerce')\n", - " df['WTMP'] = pd.to_numeric(df['WTMP'], errors='coerce')\n", - " \n", - " # Convert date and time columns to a single datetime column\n", - " df['Datetime'] = pd.to_datetime(df[['YY', 'MM', 'DD', 'hh', 'mm']])\n", - " \n", - " # Set the datetime column as the index\n", - " df.set_index('Datetime', inplace=True)\n", - " \n", - " # Keep only the relevant columns\n", - " df = df[['WTMP']]\n", - " \n", - " # Print the DataFrame\n", - " print(df)\n", - "else:\n", - " print(f\"Failed to retrieve data: {response.status_code}\")\n", - "`" + "path = get_path(\"naturalearth.land\")\n", + "world = geopandas.read_file(path)\n", + "world.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now lets put it together! Plotting can get complicated fast... I think that's a weakness of this stuff in python with the pandas, matplotlib libraries, but it's very powerful at least. \n", + "\n", + "To combine plots, we initialize an axis that we pass to the .plot function when we call it for the world and our meteorite dataframes so that the can draw themselves on the same graph. 'ax=ax' looks a littele weird. We'r passing a variable named ax to an argument with the same name. It's just sort of convention to do it this way. Maybe it would be better to use axis for the variable name and pass that to the plot function. \n", + "\n", + "We need to convert our reclong and reclat (longitude and latitude) to numeric values to plot them, so use call .astype(float) to do a type conversion from string.\n", + "\n", + "You can change the colormap - if you put in a bad value, it'll print a bunch you can try in the error message. And the norm= is to convert the mass to log scale here so that we get nice colors for all of the meteorite masses. " + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7IAAAHiCAYAAADVkfAqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wUdf748dfM9s1m03uFhN4JVboUBcTeDj275/1EPfVOT+88T++8s915eh6e3vcUz4K9F0RARHrvEAglhfS6Sbbvzvz+WLIQkkACCUng83w8MGZ2duazk93Zec/n83m/JVVVVQRBEARBEARBEAShm5A7uwGCIAiCIAiCIAiC0BYikBUEQRAEQRAEQRC6FRHICoIgCIIgCIIgCN2KCGQFQRAEQRAEQRCEbkUEsoIgCIIgCIIgCEK3IgJZQRAEQRAEQRAEoVsRgawgCIIgCIIgCILQrYhAVhAEQRAEQRAEQehWtJ3dAEEQBEEQBEEQhHORy+XC4/F0yLb1ej1Go7FDtt0diEBWEARBEARBEAShnblcLmKSY6ivrO+Q7cfHx3P48OHzNpgVgawgCIIgCIIgCEI783g81FfW88CXD2AIMbTrtt12N/+49B94PB4RyAqCIAiCIAiCIAjtyxBiwGBp30BWEMmeBEEQBEEQBEEQuqWRI0fSv39/5s+f39lNOetEj6wgCIIgCIIgCEI3tHHjRqxWa2c3o1OIHllBEARBEARBEAShWxGBrCAIgiAIgiAIgtCtiEBWEARBEARBEARB6FZEICsIgiAIgiAIgiB0KyKQFQRBEARBEARBELoVEcgKgiAIgiAIgiAI3YoIZAVBEARBEARBEIRuRQSygiAIgiAIgiAIQrciAllBEARBEARBEAShWxGBrCAIgiAIgiAIgnBS+/btY+jQocF/JpOJzz//vNPao+20PQuCIAiCIAiCIAjdQp8+fdi2bRsA9fX1pKenM3369E5rj+iRFQRBEARBEARBEFrtyy+/ZOrUqYSEhHRaG0QgKwiCIAiCIAiCcI776aefmDNnDomJiUiS1Oyw4Pnz55Oeno7RaGT06NFs2LCh2W19+OGHXHfddR3c4pMTgawgCIIgCIIgCMI5zm63M2TIEObPn9/s4x988AEPPvggf/zjH9myZQtDhgzhoosuoqysrNF6tbW1rFmzhlmzZp2NZrdIzJEVBEEQBEEQBEHohmpraxv9bjAYMBgMza47c+ZMZs6c2eK2XnjhBe68805uvfVWAF599VW++eYb3njjDR555JHgel988QUzZszAaDS2wys4faJHVhAEQRAEQRAEoRtKSUkhLCws+O/pp58+re14PB42b97MtGnTgstkWWbatGmsXbu20bpdYVgxiB5ZQRAEQRAEQRCEbqmgoACr1Rr8vaXe2FOpqKjA7/cTFxfXaHlcXBzZ2dnB3202Gxs2bOCTTz45vQa3IxHICoIgCIIgCIIgdENWq7VRINvRwsLCKC0tPWv7OxkxtFgQBEEQBEEQBKEbGjlyJP37928xgVNrRUdHo9FomgSppaWlxMfHn9G2O4rokRUEQRAEQRAEQeiGNm7c2C49snq9nqysLJYtW8bll18OgKIoLFu2jHvuueeMt98RRCArCIIgCIIgCIJwjquvr+fAgQPB3w8fPsy2bduIjIwkNTWVBx98kJtvvpkRI0YwatQoXnzxRex2ezCLcVcjAllBEARBEARBEIRuaOTIkWg0GubNm8e8efNOuu6mTZuYMmVK8PcHH3wQgJtvvpk333yT6667jvLych5//HFKSkoYOnQo3333XZMEUF2FpKqq2tmNEARBEARBEARBOJfU1tYSFhbGI8sewWA5vWzCLXHXu3lm6jPYbLazmuypKxHJngRBEARBEARBEIRuRQSygiAIgtCCN998E0mSyM3NPa3n5+bmIkkSf/vb39q3YV1IW45Reno6t9xyS4e3SRAE4XzRXlmLuyMRyAqCILRCw8W6JEmsWrWqyeOqqpKSkoIkSVxyySWntY9XXnmFN9988wxbKnSGb7/9lieeeKKzm9Et/fjjj0iSxI8//tjZTREEQeh2Nm7cyJ49e045P/ZcJAJZQRCENjAajSxcuLDJ8hUrVnDkyBEMhtOfAyMC2e7r22+/5cknn+zsZgiCIAjCeUMEsoIgCG0wa9YsPvroI3w+X6PlCxcuJCsrq8sWDT8VRVFwuVzn3b6F02e32zu7CYIgCMJ5TASygiAIbfCzn/2MyspKlixZElzm8Xj4+OOPmTt3brPPURSFF198kQEDBmA0GomLi+Ouu+6iuro6uE56ejq7d+9mxYoVwSHMkydPDj5eU1PD/fffT0pKCgaDgczMTJ599lkURWm0L7vdzq9//evgen369OFvf/sbJyaolySJe+65h3fffZcBAwZgMBj47rvvAHj//ffJysoiNDQUq9XKoEGDeOmll055bP72t79xwQUXEBUVhclkIisri48//rjJeifb99atW5k5cyZWqxWLxcLUqVNZt25do+c/8cQTSJLUZLvNzdVMT0/nkksuYdWqVYwaNQqj0UjPnj156623mjx/9+7dXHjhhZhMJpKTk3nqqaeaHN/m3HLLLcG5SQ1/u+ba95///IeMjAwMBgMjR45k48aNTdbJzs7m6quvJjIyEqPRyIgRI/jyyy9P2Ybhw4dz5ZVXNlo2aNAgJElix44dwWUffPABkiSxd+/e4LLWHPOGY7tixQruvvtuYmNjSU5ObrE9qqry1FNPkZycjNlsZsqUKezevfuUr0MQBEFom/N5jqyoIysIgtAG6enpjB07lvfee4+ZM2cCsGjRImw2G9dffz3//Oc/mzznrrvu4s033+TWW2/lvvvu4/Dhw/zrX/9i69atrF69Gp1Ox4svvsi9996LxWLh97//PUCwbpvD4WDSpEkUFhZy1113kZqaypo1a3j00UcpLi7mxRdfBALBw6WXXsry5cu5/fbbGTp0KIsXL+ahhx6isLCQf/zjH43a9cMPP/Dhhx9yzz33EB0dTXp6OkuWLOFnP/sZU6dO5dlnnwVg7969rF69ml/96lcnPTYvvfQSl156KTfccAMej4f333+fa665hq+//prZs2efct+7d+9mwoQJWK1WHn74YXQ6Ha+99hqTJ09mxYoVjB49uu1/MODAgQNcffXV3H777dx888288cYb3HLLLWRlZTFgwAAASkpKmDJlCj6fj0ceeYSQkBD+85//YDKZTrn9u+66i6KiIpYsWcLbb7/d7DoLFy6krq6Ou+66C0mSeO6557jyyis5dOgQOp0OCATS48aNIykpKdiGDz/8kMsvv5xPPvmEK664osU2TJgwgffeey/4e1VVFbt370aWZVauXMngwYMBWLlyJTExMfTr1y+4z7Yc87vvvpuYmBgef/zxk/bIPv744zz11FPMmjWLWbNmsWXLFmbMmIHH4znl8RQEQRBab+PGjedt+R0RyAqCILTR3LlzefTRR3E6nZhMJt59910mTZpEYmJik3VXrVrFf//7X959991GPbZTpkzh4osv5qOPPmLu3LlcfvnlPPbYY0RHR3PjjTc22sYLL7zAwYMH2bp1K7169QIC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zSU6Opo5c+YwZcoUfv/735Obm8uQIUP4/vvv+eKLL7j//vsbZSxuyR133EFVVRUXXnghycnJ5OXl8fLLLzN06NDgXNvmzJ49mxdeeIGLL76YuXPnUlZWxvz588nMzGxUx/RknnrqKZYsWcL48eO5++670Wq1vPbaa7jdbp577rngejNmzCA1NZXbb7+dhx56CI1GwxtvvEFMTAz5+fmt2teJHn74Yd5++20uvvhifvWrXwXL76SlpbWq/VlZWQDcd999XHTRRWg0Gq6//vo2tWH+/PmMHz+eQYMGceedd9KzZ09KS0tZu3YtR44cYfv27Sd9fmZmJvHx8ezbt4977703uHzixIn89re/BWgUyELrj3lbxMTE8Jvf/Iann36aSy65hFmzZrF161YWLVpEdHR0k/U/++wzbr31VpYvX96odrIgCIIgnIwIZAVBEDrYq6++SlZWFq+99hq/+93v0Gq1pKenc+ONNzJu3Ljgeo8//jh5eXk899xz1NXVMWnSJC688ELMZjMrVqzgr3/9Kx999BFvvfUWVquV3r178+STTwZ73mRZ5ssvv+Txxx/ngw8+YMGCBaSnpwdL9LTGjTfeyH/+8x9eeeUVampqiI+P57rrruOJJ55AllsexHPhhRfy+uuv88wzz3D//ffTo0cPnn32WXJzc1sdyA4YMICVK1fy6KOP8vTTT6MoCqNHj+add95pVM9Up9Px2Wefcffdd/OHP/yB+Ph47r//fiIiIrj11ltbta8TJSQksHz5cu69916eeeYZoqKi+OUvf0liYiK33377KZ9/5ZVXcu+99/L+++/zzjvvoKpqmwPZ/v37s2nTJp588knefPNNKisriY2NZdiwYTz++OOt2saECRP46KOPGpXYycrKwmw24/P5mtSFbe0xb6unnnoKo9HIq6++yvLlyxk9ejTff/99kzJMgiAIgnC6JFVMTBEEQRAEQRAEQWhXtbW1hIWF8ciyRzBYDKd+Qhu46908M/UZevfujUajYd68ecGa4ecL0SMrCIIgCIIgCILQDZ3PWYtFsidBEARBEARBEAShWxGBrCAIgiAIgiAIgtCtiEBWEARBEARBEARB6FZEICsIgiAIgiAIgiB0KyKQFQRBEARBEARBELoVkbX4OIqiUFRURGhoKJIkdXZzBEEQBEEQBOG8pqoqdXV1JCYmnrSe+flq5MiR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Z8/G9OnT2Tn3Ei6V94CAADz77LOYNm0awsLCkJeXhwULFiA+Ph6pqakAmHfqXD15jiyX36EONXPmTLz//vuttm/fvh3jxo3Dli1bsHjxYuTm5kIQBMTHx+PJJ5/Eo48+Cqn0l6baO3bswLx583Dy5ElERUVhyZIllx3e2ZNdLu8AcPbsWTz55JPYsWMHvL29MWPGDKxYsQJy+S/Xt5j3q/fjjz/iqaeeQk5ODsxmM3r37o0HHngA6enpLvNjjx49irS0NBw4cABBQUGYM2cOFi5cKGLk3cOaNWuwatUqlJeXY8iQIXjjjTd4J8SNpk+fjp07d6KmpgbBwcEYM2YMXnzxRcTFxQEATCYT5s+fjw8//BBmsxmpqal48803OazyCu3YsQPjx49vtX3GjBnYsGEDBEHAsmXL8Pbbb6O+vh5jxozBm2++ib59+zqPra2txezZs/HFF19AKpVi2rRpeOONN6DVajvzpXiUS+X9rbfewtSpU3H48GHU19cjIiICkydPxvPPP+/SeIt5J4DL73Q0FrJERERERERuxkK2Y3EdWSIiIiIiIg/EdWSJiIiIiIjIo/TkObK8I0tEREREREQehYUsEREREREReRQWskRERERERORRWMgSERERERGRR2EhS0RERERE5IHYtZiIiIiIiIg8CrsWExERebiCggJIJBJkZWWJHQoRERF1MBayRERERERE5FFYyBIRUZdgsVjEDoGIiIg8BAtZIiISxbhx4zB79mzMnTsXQUFBSE1NxfHjxzFlyhRotVqEhobigQceQHV1tfM5DocDK1euRHx8PFQqFWJiYvDiiy9e9HN8//33GDlyJFQqFcLDw7Fo0SLYbDaXGJ5++mksWLAAAQEBCAsLw/Lly13OkZOTgzFjxkCtViMpKQnbtm2DRCLBpk2b3J0SIiIiaicWskREJJr3338fSqUSu3fvxooVK3DTTTdh6NChOHjwILZs2YKKigrcfffdzuMXL16MFStWYMmSJTh58iQ2btyI0NDQNs9dUlKCW265BcnJyThy5AjeeustvPvuu3jhhRdaxeDt7Y19+/Zh5cqVeO6557B161YAgN1ux9SpU6HRaLBv3z68/fbbeOaZZzouIURERNQu7FpMRESiSUhIwMqVKwEAL7zwAoYOHYqXXnrJuX/9+vWIjo7GTz/9hPDwcLz++utYs2YNZsyYAQCIi4vDmDFj2jz3m2++iejoaKxZswYSiQT9+vVDaWkpFi5ciKVLl0IqbbmWO2jQICxbtswZz5o1a5CRkYFJkyZh69atyMvLw44dOxAWFgYAePHFFzFp0qQOywkREVF7JScnQyaTIS0tDWlpaWKH06lYyBIRkWiGDx/u/P+RI0ewfft2aLXaVsfl5eWhvr4eZrMZEyZMaNe5s7OzMXr0aEgkEue2G264AQaDAcXFxYiJiQHQUsieLzw8HJWVlQCAU6dOITo62lnEAsDIkSPb/wKJiIg6UE9efoeFLBERicbb29v5f4PBgNtuuw2vvPJKq+PCw8Nx5syZDolBoVC4PJZIJHA4HB3yuYiIiMg9OEeWiIi6hGHDhuHEiRPo1asX4uPjXT68vb2RkJAALy8vZGRktOt8/fv3R2ZmJgRBcG7bvXs3fHx8EBUV1a5zJCYmoqioCBUVFc5tBw4cuLIXRkRERG7HQpaIiLqEtLQ01NbW4t5778WBAweQl5eHb775BrNmzYLdbodarcbChQuxYMEC/OMf/0BeXh727t2Ld999t83zPfXUUygqKsKcOXOQk5ODzz//HMuWLUN6erpzfuzlTJo0CXFxcZgxYwaOHj2K3bt3489//jMAuAxZJiIios7FQpaIiLqEiIgI7N69G3a7HZMnT8bAgQMxd+5c+Pn5OQvPJUuWYP78+Vi6dCn69++Pe+65xzmf9UKRkZHYvHkz9u/fj8GDB+OJJ57Aww8/7CxE20Mmk2HTpk0wGAxITk7GI4884uxarFarr/1FExER0VWRCOePuSIiIqJL2r17N8aMGYPc3FzExcWJHQ4REXVRer0eOp0OM2fOhFKpdOu5LRYLNmzYgIaGBjZ7IiIiotY+++wzaLVaJCQkIDc3F7///e9xww03sIglIiISEQtZIiKiS2hsbMTChQtRWFiIoKAgTJw4Ea+++qrYYREREfVoLGSJiIgu4cEHH8SDDz4odhhERER0HjZ7IiIiIiIi8kDJyclISkrC2rVrxQ6l0/GOLBERERERkQc6cOBAj232xDuyRERERERE5FFYyBIREREREZFHYSFLREREREREHoWFLBEREREREXkUNnsiIiIiIiLqIBaLxSPO6WkkgiAIYgdBRERERETUnZhMJvTu3Rvl5eUdcv6wsDDk5+dDrVZ3yPm7OhayREREREREHcBkMnXY3VOlUtlji1iAhSwRERERERF5GDZ7IiIiIiIiIo/CQpaIiIiIiIg8CgtZIiIiIiIi8igsZImIiIiIiMijsJAlIiIiIiIij8JCloiIiIiIiDwKC1kiIiIiIiLyKP8PzjDwfldpWrsAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# initialize an axis\n", + "fig, ax = plt.subplots(figsize=(12,6))\n", + "\n", + "# plot the world\n", + "world.plot(ax=ax)\n", + "\n", + "# plot points\n", + "mets['reclong'] = mets['reclong'].astype(float)\n", + "mets['reclat'] = mets['reclat'].astype(float)\n", + "mets.plot(x=\"reclong\", y=\"reclat\", kind=\"scatter\", \n", + " c=\"mass\", colormap=\"Accent_r\", \n", + " title=f\"Meteors around the world!\", \n", + " ax=ax, norm=matplotlib.colors.LogNorm())\n", + "# add grid\n", + "ax.grid(True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Well that's neat. I extected to see more concentration around the equator. We might need to normalize for population density (people who could see and find an asteroid to report on) to get an idea of where they actually fall. \n", + "\n", + "We'll look at more actual numerical analysis stuff in Week 4. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "#### Exercise\n", + "Go through some of these datasets and find something that looks interesting to you that we can work on next week.\n", + "https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", + "https://catalog.data.gov/dataset/\n", + "https://data.fivethirtyeight.com/ - they have zip files with csv data\n", + "https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download." ] }, { From a3438e6fefed35658befd3f4906d460897141097 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 18 Aug 2024 14:51:36 -0700 Subject: [PATCH 066/163] content --- 0-coursework/week_3.ipynb | 220 ++++++++++++++++++++++++++++---------- 1 file changed, 164 insertions(+), 56 deletions(-) diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index 8ba1d29..941ee11 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -13,47 +13,13 @@ "* Web page hosted in python\n", "\n", "## Functions\n", + "A function is a grouping of code that we assign a name and can pass specific data to (arguments) and return data from (return value)\n", + "\n", "We use functions for a few things:\n", "* Reduce dupliation in code - use the same function in multiple places in your code.\n", "* Simplify code - breaking down complex code into smaller, separate, problems make the entire code more managable and maintainable. \n", "* Readability - named functions say specifically what they're going to do, so our program is less cluttered and easier to follow. \n", - "\n", - "### Scope\n", - "This is a new concept for us - there are certain places where variables can be defined that they will be unaccessible externally. The variables have a specific scope in which they can be used. \n", - "* **Global** - variables defined outside of functinos, classes, etc, in your program are accessible from everywhere. However, it's bad practice to use global variables from inside of functions as it makes it hard to follow what data is used by the function. Side effects can be introduced.\n", - "* **Functions** - variables defined inside of functions are not visible outside of the function. This means we don't neeed to worry about accidentally using a variable from a(nother) function when we don't mean to. \n", - "* **Classes/Objects** - objects (instances of a class) have thier own variables/properties and functions that aren't accessible externally.\n", - "* **Modules** - modules imported like, \"import pandas\", have their own scope inside of \"pandas\" that we access via the module name, like \"pandas.DataFrame\". If we were to do \"from pandas import *\", then all things in the pandas namespace would be populated into our global namespace and we could directly access DataFrame. This can introduce problems, e.g., if multiple modules have things with the same name inside of them. It's better to import specific things to our global namespace if wanted... \"from pandas import DataFrame\" will only add the DataFrame class to our global namespace.\n", - "* And a few other places. Try except blocks, inside of list comprehensions, etc.\n", - "\n", - "What this means to us with regard to functions is that we should pass data the function needs in as arguments, create any variables in the function that we need without worrying about them polluting the namespace of our greater program, and then return the important data from the function with a return call.\n", - "\n", - "#### Exercise\n", - "A few steps to demonstrate interactions between global and function local variables:\n", - "* Run the cell below and not the values of x inside and outside of the function.\n", - "* Uncomment the x=3 line and see what changes\n", - "* Uncomment the global declaration in the function ans run it again to see what changes.\n", - "\n", - "At first, x only exists in the global namespace, so when we call print, python finds it there. When we uncomment the x=3, we define x in the function namespace so that is what gets printed. The function's namespace will always be used before the global namespace. Note that we don't overwrite the global namespace x value when we set x in the function. \n", - "\n", - "When we uncomment the global line, we are declaring that the x in the function is the global namespace x, so when we set x=3, we are able to change the global x. There are times when this is useful, but in general we should try not to do this because it makes it harder to debug code and hides interaction between stuff. It's also better to pass values in as arguments than to refer to globals in functions, even if we aren't changing the global value. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "x = 2\n", - "def print_a_value(foo):\n", - " # global x\n", - " # x = 3\n", - " print('x in func is:', x)\n", - " print('foo in func is:', foo)\n", - "print('global x is', x)\n", - "print_a_value(x)\n", - "print('now global x is', x)" + "\n" ] }, { @@ -100,6 +66,51 @@ "print(f'The function says - Sum: {num_sum}, Count: {num_count}, Average: {num_avg}')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scope\n", + "This is a new concept for us - there are certain places where variables can be defined that they will be unaccessible externally. The variables have a specific scope in which they can be used. \n", + "* **Global** - variables defined outside of functinos, classes, etc, in your program are accessible from everywhere. However, it's bad practice to use global variables from inside of functions as it makes it hard to follow what data is used by the function. Side effects can be introduced.\n", + "* **Functions** - variables defined inside of functions are not visible outside of the function. This means we don't neeed to worry about accidentally using a variable from a(nother) function when we don't mean to. \n", + "* **Classes/Objects** - objects (instances of a class) have thier own variables/properties and functions that aren't accessible externally.\n", + "* **Modules** - modules imported like, \"import pandas\", have their own scope inside of \"pandas\" that we access via the module name, like \"pandas.DataFrame\". If we were to do \"from pandas import *\", then all things in the pandas namespace would be populated into our global namespace and we could directly access DataFrame. This can introduce problems, e.g., if multiple modules have things with the same name inside of them. It's better to import specific things to our global namespace if wanted... \"from pandas import DataFrame\" will only add the DataFrame class to our global namespace.\n", + "* And a few other places. Try except blocks, inside of list comprehensions, etc.\n", + "\n", + "What this means to us with regard to functions is that we should pass data the function needs in as arguments, create any variables in the function that we need without worrying about them polluting the namespace of our greater program, and then return the important data from the function with a return call.\n", + "\n", + "#### Exercise\n", + "Let's investigate the nuances of global and local variables in a function. Do this:\n", + "\n", + "* Run the cell below and not the values of x inside and outside of the function.\n", + "* Uncomment the x=3 line and see what changes\n", + "* Uncomment the global declaration in the function ans run it again to see what changes.\n", + "\n", + "At first, x only exists in the global namespace, so when we call print, python finds it there. \n", + "\n", + "When we uncomment the x=3, we define x in the function's local namespace, so that is what gets printed. The function's namespace will always be used before the global namespace. Note that we don't overwrite the global namespace x value when we set x in the function. \n", + "\n", + "When we uncomment the global line, we are declaring that the x in the function is in the global namespace, so when we set x=3, we are able to change the global x. There are times when this is useful, but in general we should try not to do this because it makes it harder to debug code and hides interaction between stuff. We should pass data the function needs in as arguments. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = 2\n", + "def print_a_value(foo):\n", + " # global x\n", + " # x = 3\n", + " print('x in func is:', x)\n", + " print('foo in func is:', foo)\n", + "print('global x is', x)\n", + "print_a_value(x)\n", + "print('now global x is', x)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -217,7 +228,14 @@ "\n", " def debug_print(*args, **kwargs):\n", " if DEBUG:\n", - " print(*args, **kwargs)" + " print(*args, **kwargs)\n", + "\n", + "#### Exercise\n", + "Let's make a \"greeting_generator\" function that accepts a few arguments and returns a string with the generated greeting message. Arguments:\n", + "* name - required argument, so it should not have a default value. \n", + "* greeting - optional argument with a default value of \"Hello\". \n", + "* punctuation - optional argument with default value of \"!\".\n", + "* height_in_feet - optional argument with default value of False. If given, we append the string with something witty about the user's height." ] }, { @@ -225,7 +243,74 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def greeting_generator(...):\n", + " ...\n", + " return greeting\n", + "\n", + "# Let's test it!\n", + "print(greeting_generator('Bob'))\n", + "print(greeting_generator('Alice', 'Good morning'))\n", + "print(greeting_generator('Charlie', height=6))\n", + "print(greeting_generator('Diane', punctuation='!', height=4))\n", + "print(greeting_generator('Eve', 'Good night', '!', 5))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modules\n", + "We've used a few modules so far. Here's a summary of some common modules:\n", + "\n", + "* **Data analysis and math**\n", + " * pandas - Manipulate structured data in DataFrames. Built on numpy. Sort of like excel but less tedious. \n", + " * matplotlib - Data visualization tool. We use it to generate axis and subplots for more interesting plots. \n", + " * seaborn - Advanced data visualization and analysis tools. \n", + " * numpy - Work with arrays of data. Vectorize data operations for performance. \n", + " * math - Trig functions, sqrt, etc. Used for individual values. x = math.tan(y)\n", + " * datetime - Convert string data to datetime objects and vice-versa. Perform time operations, like adding hours, days, etc. \n", + "* **OS and file handing**\n", + " * sys - Access environment variables, \"exit\", get system information.\n", + " * os - List files (os.listdir), modify permissions, filesystem stats, user account stuff. \n", + " * shutil - Helper funcions for moving and copying files, few other things.\n", + " * tar, zip - Open or create zip and tar archive files with these. tar is more common on linux systems. \n", + " * subprocess - Execute programs or commands outside of python.\n", + "* **Data encapsulation and databases...**\n", + " * json - Structured text format of the web and many things. Use format=\"pretty\"\n", + " * yaml - Like json, but more friedly for humans to edit the files. More flexible allowing in line comments in the file.\n", + " * pickle - pickle and unpickle nearly any python object to save in a file. \n", + " * sqlite3 - file based database\n", + " * mysql - open source mysql database connections...\n", + " * pyodbc - odbc based database connections\n", + "* **Network stuff**\n", + " * requests - talk to web servers\n", + "\n", + "### Conventional short names\n", + "Some modules have accepeted conventions for short names to reduce typing and whatnot. Here are a few common ones:\n", + "* import pandas as pd\n", + "* import numpy as np\n", + "* import subprosess as sp\n", + "\n", + "### Importing modules or parts of modules\n", + "\n", + "We can import modules and access their tools my module name like:\n", + "\n", + " import math\n", + " x = math.sqrt(50)\n", + "\n", + "Or we can import specific components of a module:\n", + "\n", + " from math import sqrt,cos,sin\n", + " x = cos(30)\n", + "\n", + "You can import all things from a module into your global namespace, but it's discouraged. What if you import two modules that have components with the same names in them?\n", + "\n", + " from math import *\n", + "\n", + "When we do \"import math\", all of the variables and functions in that module are protected in a private namespace that we access via math.something(). \n", + "\n" + ] }, { "cell_type": "markdown", @@ -448,7 +533,7 @@ "source": [ "That's neat, but doesn't show much of a trend except that we probably have better records of meteorites found since the late 1800s. Maybe it would be interesting to see where on earth we are finding the meteorites. \n", "\n", - "Let's plot them atop a map of the earth. Firt thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", + "Let's plot them on a map of the earth. Firt thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", "\n", "https://geopandas.org/en/stable/docs/user_guide.html" ] @@ -521,21 +606,20 @@ } ], "source": [ - "# initialize an axis\n", - "fig, ax = plt.subplots(figsize=(12,6))\n", + "fig, ax = plt.subplots(figsize=(12,6)) # create a figure and axis\n", + "\n", + "world.plot(ax=ax) # plot the world on the axis\n", "\n", - "# plot the world\n", - "world.plot(ax=ax)\n", + "mets['reclong'] = mets['reclong'].astype(float) # convert reclong column from string to float\n", + "mets['reclat'] = mets['reclat'].astype(float) # convert reclat column from string to float\n", "\n", - "# plot points\n", - "mets['reclong'] = mets['reclong'].astype(float)\n", - "mets['reclat'] = mets['reclat'].astype(float)\n", + "# plot the meteorites on the same axis\n", "mets.plot(x=\"reclong\", y=\"reclat\", kind=\"scatter\", \n", " c=\"mass\", colormap=\"Accent_r\", \n", " title=f\"Meteors around the world!\", \n", " ax=ax, norm=matplotlib.colors.LogNorm())\n", - "# add grid\n", - "ax.grid(True)\n", + "\n", + "ax.grid(True) # turn on the grid\n", "plt.show()" ] }, @@ -543,9 +627,32 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Well that's neat. I extected to see more concentration around the equator. We might need to normalize for population density (people who could see and find an asteroid to report on) to get an idea of where they actually fall. \n", + "Well that's neat. I extected to see more concentration around the equator. We might need to normalize for population density (people who could see and find an asteroid to report on) to get an idea of were most asteroids actually fall. There is a larger version of this dataset at: \n", + "\n", + "We'll look at more actual numerical analysis stuff in Week 4.\n", + "\n", + "#### Exercise\n", + "Open a new notebook and download the dataset for observed meteors from here: https://www.kaggle.com/datasets/ramjasmaurya/fireballsbolides-1988-april-2022. Save it in the same directory as your notebook. If you're working in Google Colab, you should be able to go to File -> Locate notebook in Drive, and then upload the dataset csv file to the same directory in Google drive. \n", "\n", - "We'll look at more actual numerical analysis stuff in Week 4. " + "Copy over the following code to get started, and use the above example for the meteorites to make a couple of graphs for this new dataset.\n", + "* radiated energy vs time\n", + "* altitude vs radiated energy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "csv_file_name = 'nasas fireballs.csv'\n", + "nfb = pd.read_csv(csv_file_name)\n", + "# nfb.head() # Uncomment to see the first few rows of the data\n", + "# nfb.info() # Uncomment to see the column names and data types of each column\n", + "\n", + "# the date/time ... column is a string that we want to convert to a datetime object\n", + "# we're creating a 'date' column for this. We could also overwrite the existing column\n", + "# nfb['date'] = pd.to_datetime(nfb['date/time for peak brightness'])" ] }, { @@ -555,10 +662,11 @@ "\n", "#### Exercise\n", "Go through some of these datasets and find something that looks interesting to you that we can work on next week.\n", - "https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", - "https://catalog.data.gov/dataset/\n", - "https://data.fivethirtyeight.com/ - they have zip files with csv data\n", - "https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download." + "\n", + "* https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", + "* https://catalog.data.gov/dataset/\n", + "* https://data.fivethirtyeight.com/ - they have zip files with csv data\n", + "* https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download." ] }, { @@ -569,7 +677,7 @@ "This week, we can use functions to isolate complex operations into little chunks that are used by other code to perform complex behavior with simple, readable, code.\n", " \n", "#### *Exercise*:\n", - "* " + "* Expand on your turtle code from last week by creating a function that takes arguments for num_sides, size, and wil draw a shape per those parameters. Updaet your code to call the function as needed rather than having the drawing code in line with " ] }, { From 7fad85097b1e66e564bd44f7a86344d0824edaa5 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 19 Aug 2024 15:59:04 -0700 Subject: [PATCH 067/163] content --- 0-coursework/week_3.ipynb | 55 +++++++++++++++++++----------- 0-coursework/week_4.ipynb | 72 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 104 insertions(+), 23 deletions(-) diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index 941ee11..1f2bb5e 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -80,7 +80,7 @@ "\n", "What this means to us with regard to functions is that we should pass data the function needs in as arguments, create any variables in the function that we need without worrying about them polluting the namespace of our greater program, and then return the important data from the function with a return call.\n", "\n", - "#### Exercise\n", + "#### *Exercise*\n", "Let's investigate the nuances of global and local variables in a function. Do this:\n", "\n", "* Run the cell below and not the values of x inside and outside of the function.\n", @@ -171,7 +171,7 @@ "source": [ "In the two lines from Example usage, the fist line skipps passing to_dataframe because the default value is acceptable.\n", "\n", - "#### Exercise\n", + "#### *Exercise*\n", "Write a functon called **prompt_user** that accepts two arguments, **choices**, and **num_tries**. \n", "\n", "It should ask the user to chose one of the choices, and then try num_tries times to let them type in a choice. If what they type in doesn't match any choices, then have them try again. If they don't do it successfully in num_tries, then return False. If they do chose one, then return that choice. " @@ -230,7 +230,7 @@ " if DEBUG:\n", " print(*args, **kwargs)\n", "\n", - "#### Exercise\n", + "#### *Exercise*\n", "Let's make a \"greeting_generator\" function that accepts a few arguments and returns a string with the generated greeting message. Arguments:\n", "* name - required argument, so it should not have a default value. \n", "* greeting - optional argument with a default value of \"Hello\". \n", @@ -309,7 +309,23 @@ " from math import *\n", "\n", "When we do \"import math\", all of the variables and functions in that module are protected in a private namespace that we access via math.something(). \n", - "\n" + "\n", + "#### *Exercise*\n", + "Let's start getting more familiar with pandas.\n", + "* Read through this: https://pandas.pydata.org/docs/user_guide/10min.html\n", + "* Import the pandas module and use dir(pd) to see what functionality is built into it. Or if you have python running in a terminal, type 'pd.' and hit the tab key to show a list of functions built into it. \n", + "* Create an empty pandas dataframe and do the same as above to see what functionality is built into it. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.DataFrame() # An empty dataframe" ] }, { @@ -324,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -465,7 +481,7 @@ "4 NaN NaN " ] }, - "execution_count": 36, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -495,7 +511,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -504,7 +520,7 @@ "" ] }, - "execution_count": 61, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, @@ -533,14 +549,14 @@ "source": [ "That's neat, but doesn't show much of a trend except that we probably have better records of meteorites found since the late 1800s. Maybe it would be interesting to see where on earth we are finding the meteorites. \n", "\n", - "Let's plot them on a map of the earth. Firt thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", + "Let's plot them on a map of the earth. First thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", "\n", "https://geopandas.org/en/stable/docs/user_guide.html" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -549,7 +565,7 @@ "" ] }, - "execution_count": 54, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, @@ -565,10 +581,7 @@ } ], "source": [ - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", "import geopandas\n", - "from cartopy import crs as ccrs\n", "from geodatasets import get_path\n", "\n", "path = get_path(\"naturalearth.land\")\n", @@ -591,7 +604,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -606,6 +619,9 @@ } ], "source": [ + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", "fig, ax = plt.subplots(figsize=(12,6)) # create a figure and axis\n", "\n", "world.plot(ax=ax) # plot the world on the axis\n", @@ -631,12 +647,13 @@ "\n", "We'll look at more actual numerical analysis stuff in Week 4.\n", "\n", - "#### Exercise\n", + "#### *Exercise*\n", "Open a new notebook and download the dataset for observed meteors from here: https://www.kaggle.com/datasets/ramjasmaurya/fireballsbolides-1988-april-2022. Save it in the same directory as your notebook. If you're working in Google Colab, you should be able to go to File -> Locate notebook in Drive, and then upload the dataset csv file to the same directory in Google drive. \n", "\n", "Copy over the following code to get started, and use the above example for the meteorites to make a couple of graphs for this new dataset.\n", "* radiated energy vs time\n", - "* altitude vs radiated energy" + "* altitude vs radiated energy\n", + "* try using .corr(numeric_only=True) on the dataframe to see which numeric columns have the strongest correlation. What can we say about these boloids when they enter our atmosphere?" ] }, { @@ -660,7 +677,7 @@ "metadata": {}, "source": [ "\n", - "#### Exercise\n", + "#### *Exercise*\n", "Go through some of these datasets and find something that looks interesting to you that we can work on next week.\n", "\n", "* https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", @@ -677,7 +694,7 @@ "This week, we can use functions to isolate complex operations into little chunks that are used by other code to perform complex behavior with simple, readable, code.\n", " \n", "#### *Exercise*:\n", - "* Expand on your turtle code from last week by creating a function that takes arguments for num_sides, size, and wil draw a shape per those parameters. Updaet your code to call the function as needed rather than having the drawing code in line with " + "Streamline your turtle code from last week by moving the functionality to draw arbitrary shapes into a function. The function should take arguments for numbers of sides and size and will be called from the ret of your code from last time." ] }, { diff --git a/0-coursework/week_4.ipynb b/0-coursework/week_4.ipynb index f8b9531..17aad03 100644 --- a/0-coursework/week_4.ipynb +++ b/0-coursework/week_4.ipynb @@ -6,7 +6,14 @@ "source": [ "# Week 4\n", "\n", - "Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs" + "Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs\n", + "\n", + "**Fun detours**\n", + "* Use openai chatgpt to do some text AI\n", + "* Web page hosted in python\n", + "\n", + "# How to approach learning pandas\n", + "Start with simple problems. Import a clean excel file. " ] }, { @@ -22,9 +29,7 @@ ] } ], - "source": [ - "print(\"bar\")" - ] + "source": [] }, { "cell_type": "code", @@ -32,6 +37,65 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Creating a Dataframe\n", + "Just skim over this for the general idea on how it works, and come back to each method for importing data as you need it. \n", + "\n", + "## Empty Dataframe\n", + "Why would we want an empty dataframe? I think it's generally not needed... but maybe there's a good case for starting with an empty df... \n", + "\n", + " df = pd.DataFrame()\n", + "\n", + "## From a CSV file\n", + "\n", + " df = pd.read_csv('data.csv')\n", + "\n", + "## From an Excel file\n", + "The sheet name is only needed if we have multiple sheets in the .xlsx.\n", + "\n", + " df = pd.read_excel('data.xlsx', sheet_name='Sheet1')\n", + "\n", + "## From a list of lists or tuples\n", + "We need to specify the column names in this case:\n", + "\n", + " data = [[1, 2], [3, 4], [5, 6]]\n", + " df = pd.DataFrame(data, columns=['A', 'B'])\n", + "\n", + "## From a dictionary \n", + "The dictionary keys are the **column** names, and the each list is a column of data. \n", + "\n", + " data = {'A': [1, 2, 3], 'B': [4, 5, 6]}\n", + " df = pd.DataFrame(data)\n", + "\n", + "## From a database\n", + "Note that a database connection, called \"conn\" here, is a pretty standard thing. You can create a connection to many database types and pass the connectin and query to pd.read_sql_query and it will just work. Sqlite3 is a file based database that doesn't require a server to host it. \n", + "\n", + " import sqlite3\n", + "\n", + " conn = sqlite3.connect('database.db')\n", + " df = pd.read_sql_query('SELECT * FROM table_name', conn)\n", + "\n", + "## From an html table\n", + "Note that you can also generate html tables from dataframes... \n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { From 6f08badf82358a36000d452f542a09cfb1cb0194 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 19 Aug 2024 16:28:15 -0700 Subject: [PATCH 068/163] content --- 0-coursework/week_3.ipynb | 234 ++++---------------------------------- 1 file changed, 23 insertions(+), 211 deletions(-) diff --git a/0-coursework/week_3.ipynb b/0-coursework/week_3.ipynb index 1f2bb5e..9e64a37 100644 --- a/0-coursework/week_3.ipynb +++ b/0-coursework/week_3.ipynb @@ -8,10 +8,6 @@ "\n", "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration.\n", "\n", - "**Fun detours**\n", - "* Use openai chatgpt to do some text AI\n", - "* Web page hosted in python\n", - "\n", "## Functions\n", "A function is a grouping of code that we assign a name and can pass specific data to (arguments) and return data from (return value)\n", "\n", @@ -19,7 +15,8 @@ "* Reduce dupliation in code - use the same function in multiple places in your code.\n", "* Simplify code - breaking down complex code into smaller, separate, problems make the entire code more managable and maintainable. \n", "* Readability - named functions say specifically what they're going to do, so our program is less cluttered and easier to follow. \n", - "\n" + "\n", + "A note about programming in notebooks like this... breaking code up into cells helps to organize it like a function might in a script. And the most improvemint I've seen in notbooks on duplicated code is by organizing data into dictionaries and using loops to work on each group of data one at a time. Functions are very important when writing scripts and larger programs, but a little less so in notebooks, except that when we import libraries, we call functions in the librar" ] }, { @@ -96,9 +93,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "global x is 2\n", + "x in func is: 2\n", + "foo in func is: 2\n", + "now global x is 2\n" + ] + } + ], "source": [ "x = 2\n", "def print_a_value(foo):\n", @@ -340,152 +348,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
nameidnametyperecclassmassfallyearreclatreclonggeolocation:@computed_region_cbhk_fwbd:@computed_region_nnqa_25f4
0Aachen1ValidL521Fell1880-01-01T00:00:00.00050.7750006.083330{'type': 'Point', 'coordinates': [6.08333, 50....NaNNaN
1Aarhus2ValidH6720Fell1951-01-01T00:00:00.00056.18333010.233330{'type': 'Point', 'coordinates': [10.23333, 56...NaNNaN
2Abee6ValidEH4107000Fell1952-01-01T00:00:00.00054.216670-113.000000{'type': 'Point', 'coordinates': [-113, 54.216...NaNNaN
3Acapulco10ValidAcapulcoite1914Fell1976-01-01T00:00:00.00016.883330-99.900000{'type': 'Point', 'coordinates': [-99.9, 16.88...NaNNaN
4Achiras370ValidL6780Fell1902-01-01T00:00:00.000-33.166670-64.950000{'type': 'Point', 'coordinates': [-64.95, -33....NaNNaN
\n", - "
" - ], - "text/plain": [ - " name id nametype recclass mass fall year \\\n", - "0 Aachen 1 Valid L5 21 Fell 1880-01-01T00:00:00.000 \n", - "1 Aarhus 2 Valid H6 720 Fell 1951-01-01T00:00:00.000 \n", - "2 Abee 6 Valid EH4 107000 Fell 1952-01-01T00:00:00.000 \n", - "3 Acapulco 10 Valid Acapulcoite 1914 Fell 1976-01-01T00:00:00.000 \n", - "4 Achiras 370 Valid L6 780 Fell 1902-01-01T00:00:00.000 \n", - "\n", - " reclat reclong geolocation \\\n", - "0 50.775000 6.083330 {'type': 'Point', 'coordinates': [6.08333, 50.... \n", - "1 56.183330 10.233330 {'type': 'Point', 'coordinates': [10.23333, 56... \n", - "2 54.216670 -113.000000 {'type': 'Point', 'coordinates': [-113, 54.216... \n", - "3 16.883330 -99.900000 {'type': 'Point', 'coordinates': [-99.9, 16.88... \n", - "4 -33.166670 -64.950000 {'type': 'Point', 'coordinates': [-64.95, -33.... \n", - "\n", - " :@computed_region_cbhk_fwbd :@computed_region_nnqa_25f4 \n", - "0 NaN NaN \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN " - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import requests\n", "import pandas as pd\n", @@ -511,30 +376,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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vht33303VqxYgTfffBOLFy9GZmamYTwDAgIwbdo0TJs2Dc3NzZg6dSreeOMNLFq0CL6+vqJtzs/PN/mbMYaCggIMHDjQZPuMGTPw4IMPIicnB5999hkGDx6Mfv36SY6JFJ988gkAYPz48QCA48eP4+zZs/j4448xY8YMw3HGUWUcYvdV7pwlCHtDPkIE4SR07NgR77//Pl599VVMmjRJ8LhHHnkEra2t+Otf/2qx78aNGyZJCgMCAniTFj7yyCM4ePAgvvvuO4t9NTU1hvw79913H1pbW/Huu++aHPPOO+9Ap9NhwoQJMntnSkBAgOFaxkydOhWenp547bXXLMLzGWOorKxUdB25Y+rp6QmdTofW1lbDtqKiImzdutXkuKqqKovfDho0CAAM5jTzNnp7eyM+Ph6MMbS0tEi2ecOGDSb+OV9++SWuXr1qMdYTJkxAWFgY/v73v2PPnj2aaIM+//xzfPTRRxg+fDjuvvtuADBo5ozvB2MM//znPy1+L3RflcxZgrA3pBEiCCdi5syZksfceeedePbZZ7Fs2TLk5eVh3Lhx8PLyQn5+PjZv3ox//vOfBl+YxMREvP/++3j99dfRu3dvdOnSBXfddRf++Mc/Ytu2bbj//vvx1FNPITExEQ0NDTh+/Di+/PJLFBUVISwsDJMmTcLYsWOxePFiFBUVISEhATt37sTXX3+NF154Ab169VLVz8TERADA4sWL8eijj8LLywuTJk1Cr1698Prrr2PRokUoKirC5MmT0alTJ5w/fx5btmzBM888gwULFii6lpwxnThxIlasWIF7770Xjz32GMrKypCRkYHevXvj559/Nhz3l7/8BVlZWZg4cSJiYmJQVlaG9957D927d8fIkSMBAOPGjUPXrl1xxx13ICIiAqdPn8a7776LiRMnWvha8RESEoKRI0ciNTUVpaWlWLlyJXr37o05c+aYHOfl5YVHH30U7777Ljw9PTF9+nRF4/Lll1+iY8eOaG5uxuXLl/Hdd99h//79SEhIwObNmw3H3XrrrejVqxcWLFiAy5cvIzAwEP/973958/9w93X+/PkYP348PD098eijjyqaswRhdxwVrkYQ7R3jUG8x+EK9GWvLV5OYmMj8/PxYp06d2IABA9if/vQnduXKFcMxJSUlbOLEiaxTp04MgEko/bVr19iiRYtY7969mbe3NwsLC2Mj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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Graph the meteorites by date and mass\n", "mets['ymd'] = mets['year'].str.split('T').str[0]\n", @@ -556,30 +400,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAEbCAYAAAD0/q8mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACXRUlEQVR4nOzdZXRbV9aA4feKLTMzc+IwMzZpk0LKzMzTlGc6X9tpZ8qddsrMzAxhZiYnMTODbNni+/1wosS1nZgt2+dZK6u1dHV1ZJD2PWefvSVZlmUEQRAEQRBckKKvByAIgiAIgtAWEagIgiAIguCyRKAiCIIgCILLEoGKIAiCIAguSwQqgiAIgiC4LBGoCIIgCILgskSgIgiCIAiCyxKBiiAIgiAILkvV1wPoKofDQVFREZ6enkiS1NfDEQRBEAShHWRZpq6ujrCwMBSKtudN+n2gUlRURGRkZF8PQxAEQRCETsjPzyciIqLN+/t9oOLp6Qk0vVAvL68+Ho0gCIIgCO1hMBiIjIx0fo63pd8HKkeXe7y8vESgIgiCIAj9zMnSNkQyrSAIgiAILksEKoIgCIIguCwRqAiCIAiC4LJEoCIIgiAIgssSgYogCIIgCC5LBCqCIAiCILgsEagIgiAIguCy+n0dFUEQWlfbaGVrThV1JhsWmwOz3YHF5gBApZBQKqRj/1VKqBSKZl/7uWuJ8HXD310j2lMIgtBnRKAiDCqyLFNQ3UiDxU6gpxZfvZpf9hSzNaeakloTBpOVerMNq13G7nBgc8joVEq83FTUmWzUmWwYzTYUCgmNUoFWpUCjavqvVqVEq1agUSrQqZV46lR46lQEeeqIDXBnTLQvvu6abnkd6SUGdubVkF5SR3qJgaxyIw4ZlApQKRQoFFBUY8LukLv8XG5qJRG+bkT4uhHppycp2JN5Q4MJ8tR1wysRBEE4MRGoCAPSxqxK0osNVDVYMVvtVBktVBktHCg2UFRrch4X5q1r9nV3cNcoCfDU4u+uIcRbh4dWTW2jlb2FtRhMNsrqTNSbbNRbmoIek9WBLINMU1AR6atnWLg3h8rq2J1fy96iWjx1auID3YkL9MDfXcMve4rJq2ygusGC+cgsSWelhHjiplFid8jY7DIOWcbLTU2Un55IXz2hPjpqG6xkVRjx0Ws4b0wEOrXS+XhZljE02qhqsFBlNGO1y3jp1Hjr1Xi7qfHQircZQRA6T7yDCP2eze5gW241h0rrsNhl4gPdCfXSYbY5+Hl3EVnlxjYf291ByuR4fy4eH8XEOH8UEuwprCW7wsjKQ+X8tKuoC2du5ECxodvGebz0krpWb9+cXdXitklx/jzZaCWn0khRTSNVRivVDZZWZ24i/dxICfHi7wtSiQ1w7/ZxD3SyLA/IJTe7QyajrJ6i2kbKDCa83TRMivPHW6/u66EJLkqSZbnrc8N9yGAw4O3tTW1trej1M8g0WGw89+chPtmUi8nafFYhwteNoWFehPm4oVUpMNsc+LlryK4wOpdp3LVKlJLE+sxKtudV05lVEk+diismRTMjKYgoPzeWHihj7eEK9hTWUljT2E2v1HV5aFX4uqvxd9cS4KFhelIgaeHeJAV7uvRMSoPFxtIDZZQZTJTXm6k32Yj216PXqNiaU4VOrSTIU0uQl46EIA9SQ7x67IO0zmSl1GDik015rDxYTnKwJ0khntSbbAyL8GL+0BD0Gtf9XrbX/iIDH23M4efdxdSZbM3ukyQYFenDpROiWTg8tNmMnTBwtffzWwQqQr9lszt4f30O3+8spLjGhCRBRb2lzeOnJPgzLNybnfk1bM2pxtaOyEQhgbtGhVatRKdWEOylY0SED/4eGoI8tcxPC8FL1/QBJssy5fVmcisb+GNvCW+vze621+rK5g0J5tGzhhLq7dbXQwGafg5vr8lmb1Et+VUNaFVKZqUEYrXLfLElnzqTlQAPLaMiffDz0BDspWPt4YqmHCSzjXqzFbWiKc9Ir1ES6uPGmSPCmJ0ShFLRczMcsixT02DF202Nogefpy9Z7Q7+8d0evtle2Gb+lJ+7hs+un0hyiCcWmwOVQhqw34/BTgQqgstxOGS251VzqLSeSD83xkb74aZpfuVUWNPIqysyWJ9ZifeRPIlofz0pIV6clhaCQiGxPL2U/KpG/D00TIj1J9BTC8B9X+/iy60FrT53WrgXUxMCUCkU1JttfLopD4u9fbkdo6N8eOfKcc5EWFmWqW20kl/VSEF1A/nVDeRXNZJX1fT/BdWNzt01A919pyZz84x4l1ui2JVfw9+/28O+ohMvl2mUChKDPZidEsR5YyKI9hdLVL3BaLaxK7+GnMoGSg0mSg1NiezuGhWeOjUXjI3g/37cx+bsKjRKBUPCvBgd5cuslECmJQb29fCFbuISgUpMTAy5ubktbr/lllt45ZVXmDlzJqtWrWp234033sjrr7/e7ucQgUr/YLLa+XVPMfuKDDRYbET5uXP1lJhWp3iLaxupNlqxORwUVjeyp7CWgupGhkd4c+3UWPYVGXhh6WHqTFZCvHXcMjMeD52aUC8tmeVGSg1mDCYrVrsDN7WScF83rHaZP/aVoFEqWHmwjF0FtScd84RYP0ZG+jA2xo8ZSYFoVE1lhx7/eT/L08vIrjTSv8P8rvv59qmkhXv39TBaJcsyW3Kq+XJrPrsLajhcVt/s5+WuUfLmFWOZkhCALMs8+Vs6Sw+UolUpuXJyNNMSAwnzcY1ZosGkoLqBV1ZkIkng49aUkO1zJDE7KdiTuECPvh6i0E1cIlApLy/Hbrc7v967dy+nnHIKK1asYObMmcycOZOkpCT+9a9/OY/R6/UdCjhEoNL3KuvNLD1QyrIDZRhMVmQZKo0Wnr9gBMMjfICm2ZSsinoOltQT4q0jPtAdH33XtupmVxjZmFVJo9WOh1bFrORAAv+yZdZktVNQ3cAvu0v479JDQFNeiclqx2pv/Vf/vDERjI325ayR4S1mfI5XXNvImsMVHCg2kF5cR4nBREW9ucX6+0ClkGBWchAPnT7E5ZNlVxws4+nfDzoTkhcOD+V/F41yLuXYHTKF1U2zYiql1KM5KX1NlmVkGZdfTqk32/h+RyHb86o5WFJHXmUDkxP8uXJSDInBns6ZVKH/au/nd49maAUGNp+ie/LJJ4mPj2fGjBnO2/R6PSEhIT05DKEHHL1afWdtFkv2l+KQIcRLx5gYX2L93UkNbVpf/mhDDkFeOsJ9mupwJAz3BOBQaR3XfrAVjVLB8xeOaDO/4XBpHeX1ZjLL6tlVUItDllErFNw6K4HKejPZFUZKDSbqTDa+3lZATUNTjkpcgAf/vXAkuVVGPjuyzHPGiDCqjGbsDhkPrRoPrRI3jQpDo5USg4mSWhN+7ho8tCrcNEqsDgdutB2oBHpoCfbSsTGzkoOldVQZj+XHaJQKVMqm4mkSYLE7WiT89lcqhcQ5o8O5cUY88f3k6nZWchCzkoMoM5gwmGyEeuua5ZsoFRJR/nqi/PV9OMqus9od5FY2UNNgacq3MdmoabRyoNjArvwaimtNWG0Ozh4dzqNnDu3zJTub3dH0NyJJFFQ3sC23GoPJhkKCt9dkk13RfMfeH/tK+WNfKQoJLpsYzcGSuqZZMqkpcA7zdmNklA+jo3wZGubVZ6/P4WgqNqCQ6PPv8UDQazkqFouFsLAwFi9ezN///ncAZs6cyb59+5BlmZCQEM444wz++c9/ote3/WZhNpsxm83Orw0GA5GRkWJGpZfJskyl0UJ2hRE3tZIgLy2BHlokSaK2wcrfv9vDL3uKWzxuSKgXC4eHMizcm7UZFbyzNpsQLx3+HhrqTTYePnMoM5KOBbifb85jQ1YlGWX1zfINnjlvOOePjaSwppG9hbX4u2sYFenDM38e4vVVmQAkBnkwLtaP8TF+6NQK9BoV7lolZQYz+dUNGBptNFrt2B0yOrWSaH89pw4N6VRRNodDpt5iQ6dSolZKrb45ybJMicHEzrwadubX8NveEvKqGjr8XK5k1b0zRV5HH3E4ZA6X1bMtt5q9RbXsK6zlQEkdFpsDtVIi2t/dWXsnNsCdGH93Yvz1BHpqe+3Ds7bRyubsKvKqGjCam+oGbcmp4mBJHWZbU0HFSD837Ha520sFXDEpmn+dldat5zyZ/UUGbvt0O3lVDc5kfZVCwkevIS7AvennEODOvKHBxAW4k15Sh5ebGn93zaDc6eQSSz/H+/LLL7nkkkvIy8sjLCwMgDfffJPo6GjCwsLYvXs3999/P+PHj+fbb79t8zyPPPIIjz76aIvbRaDiOirqzRwsqaO6wYJa2VS5dUduNRuzqzhQZECplEgO9iQu0B0vnRq9RoVeo8TPXcNZI8NQKVu2oNpXVMvKg+XYHTLebmoumRBFtdHCP3/YS0ZZPUaznafOG86ICG/++cM+CqobKKxupKzO3MoIj9GoFM7EV393DZdMiOLueck98n35qz0FtXy6OY/vdhT0y9mWSyZE8c+FQ064PCb0jE1Zldz48TZqGqzO2xKCPDhlSDBzU4MZHuGNupW/o55msTn4YH0OS/aXYjBZOVRa16lt/53h765hZKQPIyJ9GBvty5gYX7Sq3v3dLDWY+HVPMb/tKcFosRET0PQed3S5zSHL+OjV3D0vGZVCYumBUnbm15JRVo9SAcnBnlw2KXrQVH12uUBl/vz5aDQafvrppzaPWb58OXPmzCEjI4P4+PhWjxEzKn0rr7KBx3/ZT351I42WpqqqId46wn2b6pVolArcNEomxvkzIynQeZVQajDRYGnKJQnw6HjvGLtDpqbBgr9H07q0ze5wBjRbc6rYmFWJzSGjUkh4uamJ8HVjVKQvHjoVNQ1WahutSFLTVahaqcDPQ4O7RoVSIdFgtmGXZTy0Kix2Bxqlolena3fm13Dt+1uoNLa9tdrVTEnw5/wxkUyI83OZbckDncMhsz6zkm+3F/Db3hIarU35f6cPD2XxKUm9mmRqszsorTNjttpRKxUoFRIWm4PsCiMPfb+312sInTIkmFOGBJMY5IGvXoNdlp3LklZ70xbnk/1N91SBvdoGKzWNFkK93ZwJ+UITl8hROSo3N5elS5eecKYEYMKECQAnDFS0Wi1arUii6itWh4OcSiOHSuudt5UYTOzMr3F+7e2mprjGxK78GvzcNaSFezMxzh+HQ0Y6bs326BvDxqxKyuvMHCqt45c9xZw3JoJbZiY4z2cwWbny3c3syKvBR6/GZpeZFO/PSxeP4o99Jdz5+c5mY/R2U7P4lCSmJwZS22jlvXXZrDxYTlmdieQQT969ahzfbS9k9eFyDpfWk1fVwIXjIpmaGMCD3+yhptGKXqMkMciDU9NCuHBsVI8mVo6M9OHbWyZz9XtbyKpou4puXwv3ceP0EaF46dSE+7hxxoiwHq0rIhwjyzI78ptywlYcLAeacsIePWso84d2LsdPlmXK6sx46dQdmhVbn1nBZW9v6rWZkvZYsr+UJftLnV97u6kZEurF/mIDtY1WZz0kd62K1FBPbpudgE6tPPZPpeCKdzdTamjKUzsaUAwL92bBsFCmJgR0KohZc7icJftLqTPZ0KkVnDE8jMkJAd32ugeLXplReeSRR3jjjTfIz89HpWo7Nlq3bh1Tp05l165dDB8+vF3nFrt+ek9meT0XvL6h1St/jUrB5ROjCfDQ8PveEvYVGZxrtPGB7igkibyqBkK9dSwcHsqOvBoOldZz36nJ1JlsPPbzfgDSwrz45LoJeB/ZEbQxq5KPNuSSXWFk/3El5L10KhYOD+PmGfEs+N8a6s02zh0dwR1zEojw1aNUSJhtdi54fUOzrchKhcTkeH/WHK5o8RpGRfnwzhXjWJdZQV6VkQ2ZVcQHujMxzp+piQF46np2F0hJrYn5L6ymttF68oN7kUKCc0ZHHEl8VPDcBSP6ekiDiizLvLM2m8d/OeC87bwxETxy5tBOV/+1O2Que3sTG7IqgaadcCkhnnx54yQkSeKt1VkEeWk5a2Q4tY1WCqobnLvk/PQaFr26rlny+ED32fUTmRTv36HHfLElj4825lJvsuGj1+CjV+Or1+Dt1vRfH736yD8Nvno1Pm4awnx0rS59D1QuM6PicDh47733uPLKK5sFKZmZmXz66acsWLAAf39/du/ezV133cX06dPbHaT0tEOldZQZzCQEeRDs1TsJaA6H7LLbBg+V1DE1MYCtOdXNpna1KgVLF88gt7KBxV/ubJEXknlcr52cyqYaCUc9+O0eFgwLdX69t8jAf5ce5pEzhwIwMc6fiXH+ZJTV88vuYt5dl01toxVPnZpADw0qpcSclCAsdgcjIr3x99A6r/KVkkROZfNkVbtDbjVIAdhdUMvox5c0u21tRgUfbMhFo1Iwf2gI/z47jcLqRtRKiYQgz458+07I4ZD575JDBHlq8dGrya10jSRbSQKHDF9vKyDIU8vVU2IxWe2DMvGvr7y0PIOXV2Q0uy3IU4t7J3OD0ksMPPvHIWeQAtBgsXPZxGjyqhr4YH0uP+ws5KHTU7n8nU2szahoVn/GQ6siwtdt0AQqbmol5fVm5wywLMu8sTqLUG8do6N8KaszkVvZQKCnloQgD6qNVnIrjVQZrewtPHJx1c6/5+ER3jx4WipjY3z7JMeoNWabHYvN0eMXaifS4zMqf/75J/Pnz+fgwYMkJSU5b8/Pz+eyyy5j7969GI1GIiMjOfvss3nooYdcpo7KV1vz2VNYS5SfnjNHhBHk1b0JTg6HzKGyOnbk1QCwM6+G3/YWo1A0JZtePimaijozWrWSU4YEE+DhOkteP+wsxGS1MzTMm8RgD2fSWnFtI4//fID9xQbyqhpQKyXUSkWHaovo1AoeODWF2SnBLbaLyrJMg8WO+5EryUlPLKP4uN0CwV5a3rpirLN+S86RNfO1Ga0HJ50lSXDBmEgmJ/iTGNSUGNwdH965lUa25FSTUVbP1pwqdhfUtruCbk/QKBW8ecUYvtleyM+7i9CqFDxxzjDOHhXRZ2PqDZX1Zt5Zm011gxWNUqLOZKOothG1UsHYaD/GxfgyMsqn13rw2B0yh8vqePznAzRYbDRaHUT4unHd1FgmxLX/Sv/tNVnNZmaOd/aocP59dhrP/3mIt9dm46lVoVBILjfD11eGhXszPSmAKqOVzzbn9ehzeepUTE8KZHyMH3aHTIPFhtFip+FIt3VvfdNOoZnJQSSHdN8F01+V15l57s+DXDYxukcKO7pcMm1P6W9LP3UmK++uzWHJgRJyKxqoM7f/A9zbTY1KIdFotRPlpycu0J0gTx16jRJfvYYgLy3FtSbc1ErSwr1JCPToUG5FbaOVLdlVZJbXo9eqGBfjy4Pf7iHKT89dc5OI9tezNqOC8bF+aJQKCmsacdeoWmzndThkfthVSHZFA+V1JqBpGWZrTnWHt+PGBbgzOcGfG6bFO4OW5emlNFocTE0I4M4vdrD6UHmz9fKRkT58fsNEZ+BQ02Ahs7yeMoOZwppGMsrqya4w0mCx02CxYTDZMBx5M/bVaxga5oUMbM+rbrar4kTUSonzxkTwf6cP7dIumJs+2sbv+0qcX3vqVDRa7O3qS9QTZiYHEuHrhkqhwFOn4vwxkf2+1sjxzDY7ewtr2VNQy4HiOuyyjAT8treE+hP8bYb7uPHcBSMYFu7tbHjpCupMTb+vHlpVqzPAORVGZj+3stX8Eje1kv3/ms+bq7N44rf0nh6q0A3c1Er2PTq/Q7PwDofMN9sL0KgUBHho8ffQ4KVryv0z2+z4uWucmxZ6mghUukF3ZoHLsuws/b70QOnJH9BNPHUqIn31xAa4My0xgFkpQQR5atmUXcX3OwrZmV+DTq1EkpqWPtpqFKZSSCQEeZBeUsf8ocGU1ZmdM0Ex/nqmJASQEupFfKA78YEeGBqtvLwiA41SQVaFkT0nmBnQKBXEBbrj76HBbHWQVWF0TitPiPXj3vnJpIR6oVcreXddNi+vyECrUlBltHD9tDguHh/FYz/v588jyXR+7k1rvbfPTmRUpA8V9RaGhB373fhzXwk3fLTN+bpiA9w5a2QYN86IbzHduj6zghs/2tbuGaHrp8Xyj4VD2nVsaw6X1rHkQCmy3BRwRfvrmfrUik6fr6tCvHTMSgnitLQQJsX7u8x0dFfVNlj5eFMu76/PofwkW9jb4ueuwWi2YXfIzEwOYmqCPwGeWvzdtYR464jx1/d6sa/XVmby36WHUCkkgr10R3a/+TApPoBxMb4YTDZ+3FnIp5vzmiXEA6SGevHbndO48t3NbM+t7tBFlNB34gPdSQr2pKimqRyDzSGjlCSCvLQEeWqx2mXqTFaGhHlx26xEvN3U3P7ZjhN+Dvm5a0gM8iA11IuZyYFMjg/okR1LIlDpBo/8uI+imkbmDQ1hbmpQh0u+y7LMoz/t55ttBVgdrlOZVKWQevwKXatS4KNXI8tNFSSnJwawNqMCd21T0zFPnQovnRoJma+3FWAw2aioNxPpp+eaKbHEBrpTeaQT8l/Ls2/LrWbN4XIifNxIC/cmJdSLl5Yd5rklh5odNy7Gl/1FBowWO0+fO5wLxkUiyzL3f7O7RfPC0VE+fHLdxBazIfUmG2szyqkyWtiZX8PSA2Wtrs1rlAoumRDFWSPDGB7h0+XdMHsKavl9XzG/7ilpUZ2zpwR5agnzcSPcx40hYV7MSg4iNdRzQFXWzK9q4L11OXy+JY8Gi/3kD+iCcB83ZqcEMSc1iIlx/i2WBvcW1rK7oJYwH92RGdKW24tNVjs78mrYlF3JlpwqTk0L5ayRYSw/UIbZZsdkdbA9r5r04jqunBxDSW0jb6zOwtxKU0xfvZq5qcHMGxrC6CgfLnhjQ7P8MYAFw0L430WjuPurXfyws6h7vyFCn9OoFAwN82JvYW2bLURa8/YVY5k7JLjbxyMClW7wwDe7+XxLPtA0tT8nJZjzx0YwIymwQ5nZZQYTn23O543VmT3+5uhqfPRqTh8eSqSvHocMjRYbDRY7xUfK1V82MZpn/khn6YGyZo8L93HDbLMzPMKHCbF+SBKUGczYZZmd+TXO2ZyLxkWy6lA5FfXmE/7hXTs1lrvnJfH07wd5f31Oi/unJPjz4TUTWgQY13+4lSX7SzllSDBvXTEWm93Bv37ez4cbWjbbPMpTpyI+0IOUEE/unJvY4TojuwtquOCNDT0e2M5ICuS22QkMC/dGpZAG9G6D2kYrj/64jx92FbU5a9iT9BolZwwP4+8LUp3LsUU1jcx+biV2h8y8ISHcf2oKUf56VhwsY1NWFdtyq9iV33ImsjsuNCSJVhtq3jknkb/NTeT5JYd4aXlGywOEQUkEKl3UW4HK8RYOD2V0lC/5VQ3OAmaLRoWfcMalqSmfkR92FvLt9sJeL4gkNH1YtBYopoV7ce7oCK6eEtvivj0FtdSZrIyO9kWnVlJnsvLAN623B2iNh1bFlZOjCfDQMm9oCOHt6Ma7PL2Uaz/Y2mOdmbUqBX+bm8SN0+NcdodZd8ooq+OGD7f1aI0aX72aKD89WRXGNpcJlQqJj64Z76yjUdto5dZPtrM1t4r/XjCSQE8t6SV1PPT93h4bZ1v83DU8c95wRkT68NbqLN5YndXrYxBclwhUuqgnA5Wnfk/nUEkdy9KbX+1LUlNi6/GJlu4aJbfNTuSmGXFIUlOVxq05VazLrGBHXg278mvwdddw/bQ4qhssvLEqy1lZUug9njoVn10/kfI6MwqFRIy/vt29aoxmG2e9so6MsvpW75+aEMB102KprLfw1O/pzbZpp4V78cUNk5y7lU4kvcTAGS+t7dDU7Il4alXEB3kQ7a9n3pAQZiYHtmscxyurM/HvXw5QWN1IiLeOq6fEEuih5fudhRjNNhKDPdmcXcny9DIsNgc3zojn1lkJJz9xD1uyv5S7vth5wsTYvwr20hIX4MGh0rp2VwvWKBUsGhXGrbMS0KqUHCyt41BJHYdK61ApFSQEeTA+xo/1mRV8ta1p2XFGUiA/7Cyior5zOTLdaXyMH+G+bny3o7CvhyK4oL4OVHpnb10/Femr5845ify0qwidWkm92cZrKzPJq2pwBilxge7cOScRH72G8TF+zvX8rIp6PtqYy297j+3gMFoaefjHfX3yWgQI9NTy4TXjueWT7cxNDWJ0lC8h3q1vObc7ZD7fkke9qam8vtFso7qhqT5CWw6X1VFRb+GMEaGcMjSY99bm8MueIs4aGc4N0+PanYiaEuLFz7dP4+aPOz8LMD0pkKunxJAQ6EGEr1uX80ysdpkFw0LZU1DLqysz+Hn3iWeU3lqTRWyAe7MaOb3JZnfw7HENKtsjKdiD/108ipQQL+c5Hvt5Px+cYJnvKIvdwZdbCwj20nH3vGSCvbRE+em5ekoMKqWCsjoT8/67utnFTVsBb1/YnFMFOX09CkFonZhR6aDaRis782v4fW8J6zIqmJUcyKMn6NC57EAp2/OqKa8z46vXUGowEeWnJybAncd/OTBoiib1tRER3vz77GHYHTJnvbLOebuHVsW0xAAuHBfJzOQg5+3bcqu5+8udTcfoVHhoVYyO8mXFwXIOHFchtzWeOhVnjQzjoYVDulRb5fk/D/K/TuQJ+Ltr2PKPud26rONwyOwurGVTViXvrsum1ND2LECgp5ZFI8O4fU4iXn1QJCqrvJ4Hvt3D5uyqDj3u7wtSuGF6PA6HzLL0Ml5dmeHMhWqv2SlBPL4oDUmC817bgKHRyoQ4PxKDPflxZ5FY8hX6jbHRvkxJCGBinD/jY/16pF2GWPrpRTkVRnYV1KBSKJgc79+irshf5Vc1UGey8dD3e9jewTdCof0uHh/JtVNj8dKpCfDQYrLZeX99Dp9tzqOgupGpCQHcMjOB3/YWk1VuRK9R8uhZQ0+a/JpZXs/zSw7xy3GzCgoJYvzdm82AdHWrcpXRwnmvre/wrMptsxK4Z37PdIDOr2pgQ2YlRbWNFNeYKKptpLbRSkqIJ2Nj/Bgf40d0H2zLBSiobuClZRl8vb2gQwmzk+L8uXNuIhPj/FmXUcGjP+1rsXW3o+IC3DGYrFTUiwsRof+679TkZn3XupsIVHqRwyFjc8hkVxjZnF3JrJQgInybF8X6fHMen27Ow1evYW1GRZ/sPBgshoR6MS7Gl1tnJ7TaLj2nwohapSDUS8cve4oprzNz5siwDlX+rTNZ+X5nEX/sLWFzThWWI0W/rp4cg5ebmk3ZlcQGuHPv/JQuvRaj2cYjP+5z5jWcyOR4f+6el8yYaN8uPWd/klNh5Pd9Jfy+t6RZY8z2WDg8lJtnxDsrbn68MbdPElkFwVUpFRL/OTuNC8dF9cj5RY5KL1IoJDQKieQQz1bLGT/1ezqvrWz/WrnQOZIE95+awvXT4k44TRlzpC5LcW0j2RVG5qYea0/w6soMkoM9mZMazFkvr6WsrqnX09HAM7O8noXDQjl/bASXT4zm8onRNFrsbMut5nBZHdkVRhQKiVcvHdMtr8ldq+KZ80cQ6afn+b/UifmrYRHegypIee7Pg7y8IqNTu6NSQjx56aJRzZbHahrE7IfQv3nqVHx+w0RWH6rgqd87Vl1Yo1IwPsaPqYkBTE0IwM9dQ3FtI95ufV91WQQqPazOZGVbbnW3nCvES4dGpehwGfrB4qlzmoq6tVeotxt3zElsdtvlE6OdfYs8dCp2FdQ26yUEsDm7iv8uPcS/Fw0jMdgDX72m6Y87sefat98yM568qga+PsHMSkoP9vxwRSsOlnV6C/cZI8Ja5PCMjBw8QZ7QPyUHe3LttFhi/N2J8tOzv7iWa97fikap4IwRYVw/PRYfNw1vrG7fhbG7RsnF46O4aHwUMf76FrWUwtpRTqE3iKWfHlRU00hhTSMqhcRdX+xs0cm3I/6+IIUl+0vZmlvtfHO+a24S89OCWZdRyZL9TVPfrlL9trddODaSp87r3q7bJ2rgdryFw0N55ZLRLW5vtNjRqBTdmoRWUmui0WrHIcv8vreEV1dkYLTYSQnx5Nc7pg2KuihH3frJ9nbXs/krjVLB/50xhIvHRzl/PodL6/jf8gx+2nWsIqunTkVamDcBnlr0aiW7C2tPmkwtCN1NqZC4eUY8t89JcF5IHfXTriImxvlT29hU9uKHnUUtigRKEoyO8iU+0J2fdhXjo1dz3bQ4zhsTgbdb33VFFks/LsBic7Azr4aZyYEsu3smv+wpRpZlzFYHD3y7u9XGYH81PtaPu+YmYXM4+M+v6YR66zg1LYQhoV5MSQggzMeNlBAvrp0ai9XuIKOsHrVSwu6AfUVNJbp35DfVcRnIemKPf2po+wLfglZmuEoNJi5+ayPTEwN5+Iwh3ZZcevx26ltnJXDphChqG634umsGVZACTaUBWqNUSCfNAbPYHTzzx8EjTReblvUSgz156eJRnDs6HEmS8NI1vT2arA4i/ZquLJfuL+XpPw4OugrTQs/Tqpo2YzRY7KSX1DXrWv30ucM5d0zrHctnJAfywpLDfLAhB7tDZnpSIJPi/FFITbvQdhfUMiM50Lm8/cBpqTRa7e0qPukqxIxKH6hpsLDwf2uZnRJEXlUD23Kr8XVXE+ihZUd+TbPp7AdOS+GmGfFNOwjqzMT4u3fqA2lbbjUvLD3EmsMV3fhKXMcVk6KZFOfPjORA9Jqux9/7imo597X17ZqhkiT411lpzE0NItTbjbI6E9e8v4W9hU1X3rfMjOfe+ckDqmdOd7PYHKiVEmabA61K0a7v1fa8as55dX2z204fHsrfF6TywfqcNqurKhUSs5IDuW5aHBPj/Fs95sI3NrCpg9ubBaEtc1ODODUtlAAPDQEeWgI9taiVCoxmGwaTlXqTjZQQL2d7hVdWZLCvqPZIg1U3EgI9OGVIcIu/izWHy7nnq13OcgFDw7x496pxBHu1Xh/K1YhdP/2ELMvUm2146tT8d8khXlx2GGgq9372qHCunBSDQgEJQd2Tf5BRVs/m7CqqGyzY7DIGk5UP1uf0eJPC3vLgaSncOCO+y+eRZZlf9hRz/9e7Mbbz6tnPXcPoKB9WHCxvcUV/44w4Hjg1RQQrrSipNXH+G+sprG7k5pnx3DOvfUHd0Y7kP+0uwkOjYnKCP2Oi/YCmwGfO8yvJr2pZt2RMtC/f3Dz5hOfOLK/nwU7UYhGE40X6ufHIGUOZk9p9M77ldWYyy+v5fW9Js75l4T5uLF08o0VjVVcmln76CUmS8NCq+HVPMZ9vycNdo+S5C0YwLTGQ//thH6e+uJpT00J46tzheHZD8ayEIA8Sgpp3aVUpJd5YNTB6e7y6MpNxsX5U1Jnx0KoYGeXTqRkWSZI4fXgYALd9uqNdj6kyWlo0VzzqjVVZ+LhpuHlm14OogebFZYfJr2pEo1Sw7EAZ320v5KVLRp90B5MkSaSFezu3F5fVmVhzuJz31uXwv4tH8Y8Fqdz08fYWjxsd5dPq+fYXGfi/H/YyMtKHxfOSRDFGodM0SgU3zYznlpnxXSr6+FcV9WYWvbKu1cKBhTWNjP/PUr66aZKzuvJAIQKVPvbrnmLeWJVJWZ2Zm2fEc9qwUOe03d3zkrh7XlKPZ14/cGoKw8N9eODb3W02VOsvahutzZYDlAqJ0VE+XDw+ikUjwzu8bDYy0qfbxrYttwoQgcpfaZRNPxOL3UF6SR1zU4MZEeHdoXM4HDILXlxDRb2FMG8dBdUNnJoWykXjIps1FtWoFFw2MbrVc/zn1wNsza1ma241b6/N7vwLEga1qQkBPLYojdiA9vUQay+LzcEZL61tsQvxeHUmG+7dsPTtagbeK3Jxsiyz8lA532wrQH2kB8jISB+unBxDXGDzmY7e2homSRILh4eyM7+at9YMrDdou0NmS041W3KqeWdtNlMTApiTGsy4GN+TLi8UVDdw+2ftm01pj6UHyrj4zY3cdUoS42P9uu28/d0F4yI5VFrPhqxKAMw2O0sPlHFqWki7zyFJUH2kj879p6VQbbRw5bubnTVzUkI8+faWydgccptl/bWq9vViEoTWBHpq+efpQzhjeGiPLPGuzSg/YZAyMzmQ/108Cs8ONhztDwbeK3JRpQYTn27KY2d+DUPDvLh9dmKrxeH60t8XpHJqWgh/+2Jnq2v7/d2+IgP7igy8sTqLAA8NHloVek1Tr58HF6QCTYHN6sPlrEgv46utBd3e4XpDViUb3tjA5Hh/kkM8mRIfwJzUoEGXu3KotI6Xl2egViq4Y04CN82Mp7i2kfzqRtYcrmBbbjUJQVNbLFO2RZIkLp8Yzfvrc4jxdycp2JPxsX5MTwzkoYWpzRpC2h0yewprsdkdDIvwprzOzGeb88god50mgUL/Mj0pkP+cnUa4T9cbgLblZLPdQ0K9+qS3Vm8QybS9JK+yAW83tTOr25U4HDLf7yzEV69hVkoQ324v4KHv9w6aLZgLhoU4K8nKssw7a7PbVT+lu7x39ThmHdcQcSCrM1l5fskhPtyQ60w4fnxRmnM5Zmd+DRe9uQGT1YFSIXHv/GRuamdy9K97irnlk+24a5ScPzaScB83VhwsY2y0L5dOjGZjViVLD5Sx+lC5c+tnXIA7RovthE0WBaG9bp+dwA3T4/htTwlZFUYWDgtlWIQ3sizz296SLnUTLzWYmPCfZS1un5YYwPMXjCTQs/0tQFyF2PUjtJssy9zx+U68dCr+ffYwoCmwmv7Mij4eWe/w0avZ+OAcZ9KbxeZg7ONLMPRSvo5GqWBCnB8fXD1+wNdCMZisTH96BTUNx2pE/HTbVIaEefHIj/tw0yh5Z222M4hx1yhZfs/MFtstjWYbSw+UsiGzkuJaE+klBqx2WSTACi5Fo1Tw8JlDUEoSLy3PYMni6V0qnzD72ZXNmpRG+DbtKuqJOlK9ob2f3z26KPvII48gSVKzfykpx5q0mUwmbr31Vvz9/fHw8ODcc8+ltLS0J4cktEKSJP530UhiA9zJP1K8LMpfz2NnDWVo2MAP/moarLyw9LDza41Kwehe7JljsTtYc7iCOnP/TmRuD4UkNauEecqQYIaEeWG1O9ieV82bq7Oabe02WuzMf2E1N320rdl5/u+Hfdz5+U4+35LPqkPllBrMIkgRXI7F7uC/Sw7x3Y5CCmsa2ZFX06XzTU8KdP7/e1ePY+39s/ttkNIRPZ6jMnToUJYuXXrsCVXHnvKuu+7il19+4auvvsLb25vbbruNc845h3Xr1vX0sIS/kCSJ66bFYTuu9PLlk2LQqpXc9/XuPhxZ73hjdSYWm4O75yVRYjCxthcL40X56bloXCQNZluflrPuDXsLa5kc78+pQ0NYMCyU4RHeSJLEN9uLMJptaFQKLLbmRfZqGqyMOG731epD5Xyz/eTdpAXBFVw6IZrDZXUAmLqY8zZvSDDvr89hwbAQJse3XqxwIOrxQEWlUhES0jJ7v7a2lnfeeYdPP/2U2bNnA/Dee++RmprKxo0bmThxYk8PTWjFX5tSjY32ZWKcH9tyq7Ha+/Uq4QnJMry7LpsfdxVR22jp8QJ4UX56bpudwOhIH95fn8OPu4q4fFLr22YHkolx/q1Wg50Y689Pu4oorGlErZRwyE3fI0+dCg+titRQTx75cR9bcqrYVyR67Qj9g6dOxZ1zEjlcVs+ve0r4aVdRl4q/TYr359PrJjA5oecaoLqiHg9UDh8+TFhYGDqdjkmTJvHEE08QFRXFtm3bsFqtzJ0713lsSkoKUVFRbNiwoc1AxWw2YzYfS3wzGMSbVk+RZZn/Lj1MqcHM5PgAYgPc2ZhVSXpJXV8PrcdU1Hc9qfK0tBAmxvmjVSmorLeABJX1FqobLHi7qYn003Px+Ej0GhUfbczly20F3DU36aT9aQaqinozr63K4IzhYVwxKYaJcX5oVApn87Uqo4UXljYl4ApCfxLgoUWhkPA5sonix11F3DIrgaTgzu34lCRp0AUp0MOByoQJE3j//fdJTk6muLiYRx99lGnTprF3715KSkrQaDT4+Pg0e0xwcDAlJSVtnvOJJ57g0Ucf7clhC0dIksRLF49y7tT4dFMeF42L5MJxkXy0MZescuPJTzKIjIn25YKxEUxNDKTUYMJTq8Ihw1db81GrJO6am0SUv955fEF1A0/+egCLzcFTv6dTajChkCSGR3izaFR4H76S3hXgoeWJc5p3vv5hZyEHiuvYV1TL+szKQRvECf3b2CO5bkfrn4yP9eOVFRm8cOHIQVeSoCt6NFA57bTTnP8/fPhwJkyYQHR0NF9++SVubp0rZvbggw+yePFi59cGg4HIyMguj1Vom6dOzcNnDOXc0RH8sKOQ9ZkV/H7nNM56Zb1oeX/EPxakEuCp4bNN+dz/zR4AfPVqvrtlCg+dPqTF8ZX1Zs5/fUOzPkJH+3YMj/AmzMdt0BWF+78f9rIlpxofNzVuGiXL01tvRyAI/cUpRxJdD5fWMSTUi8+uFykNndGrBd98fHxISkoiIyODU045BYvFQk1NTbNZldLS0lZzWo7SarVotf1vv/hAkBbuTZCnllnPruSGj7ZxypDgQR+oaFQK7pufzM+7i9mZX9PsvsXzkp2VUf9qb5GBEG+dc2oYYH9RLZG+enIrG3h5RQYfxo7v6eG7lHExflQ3WFl+oLTdjSAFwVU9cFoK84Y2fZb56jWMjPIRsyid1KuBSn19PZmZmVx++eWMGTMGtVrNsmXLOPfccwE4ePAgeXl5TJo0qTeHJXRAkJeO2anB/LSriEMDOFelPRQSnDMqnLfWZLVaMGzVwXISgzyYEOvnfIOqqG9qljgjKZAZx201NFntfLk1n3NHR3Dmy2uJ8uud9gmu5IwRYZwxIoyC6gau+2Brv8iF0qoUmP+yS0khgbebmtkpwXjqVGSW17OmE7vItCoFp6WFoFYqyKtqILO8nop6sQW7P7hnXlKzQoXVDRa+2prPqEgfzh8rVgA6qkcLvt1zzz2cccYZREdHU1RUxMMPP8zOnTvZv38/gYGB3Hzzzfz666+8//77eHl5cfvttwOwfv36k5z5GFHwrfe9viqTJ39L7+thuDyFBLfOSkCtVOCmVrBoVDjXfrCVi8dHcfH4qDYfJ8vyoL/yqqw3c85r68mtbOjrobTK203Nz7dPpdFq5+ddRWzLq2ZdRiUjI31464qxziqhj/60j/fW5XTo3BqlgpcuGcX0xEDcNMc67z72837eEc0SXd6YaF8+vX6CMxkcYFd+DW4aJYZGK2NjBteS7om09/O7R2dUCgoKuPjii6msrCQwMJCpU6eyceNGAgObriT/+9//olAoOPfcczGbzcyfP59XX321J4ckdAM/d01fD8FlaVQKhoR64atXY7TYeWl5Bjp105bvl5ZnMHdI8EnrHwz2IAXA30NLlJ++y4HKZROjuGhcFDd8uJU6s61buoOrFBKfXj+BSL+mxOizR0ewJqNpxiS/qoEP1ucwPSmQHXnVfNSBnUpKhcQT5wxj3pBgfPTH/sZ+31tCWZ2J3QU1XR670LPOGBHGM+cNbxakABgtNqL89J3e7TPY9Wig8vnnn5/wfp1OxyuvvMIrr7zSk8MQullxTdsdPAezAA8N102L44ZpcTzx2wE+2ZRHsJeWC8dGMjs1mGHh3igHeIn87lRe17Gt4u4aJVaH3Kxg3OT4ANLCvfntzunsyK/mqve2dGlMIV46Prl+AvHHdTqPDXDnsbPSePbPg1w0LooZSU0zIUpFUzLl8vSyFstDrblyUgwXHLcsUGey8v2OQp76/SD1g6BqcX93++wE7pqb1GobjJeXZ1BiMPHihaMYFuGNyWp3tuwQTk50TxY6LKtCdJk9SqtScNnEaGanBDEh1g+VUoEsy6zLqOTqKTHcPjtRvCG1Ymd+DRV1ZsJ83FAompZSQrx02BwyCkkiq7yenMr2bX/XqRWcOzqC++an4DjSVPLlFRlA03KJLMPC4aFMTwzk+mmxvLWm88sns1ODmgUpR6WFe/P+1c2Tn8dE+zEm2o/8qgbu/2Y36zMrT3jujzfmctqwEMYdWRrw1Knx0WtEkOLiFBI8cc4wLhzX+nKu3SGzK78Go8XOGS+vZUioF9UNFlbeO7PFzIvQOtGUUOiQRoudsY8vEbsyjnjhwpGDquZJd2gr10KpkE5aLyUlxJMHF6QyJNSLKqOF3EojqaFeRPrpsTtk9hcZiAnQM/OZlVQe1/vn65smOXMDimsbeXtNNp9sysVkPflMx1Fp4V58f8uUFtWb28PhkPlmewHvr885YWXdhxamct20OOfXsizz5uosvttR2C+SiweDCbF+XDIhik825REX4M41U2PbXNK57+td/LGv1NmtG+CaKbGMifZlTmrQoL+IcYkcFWHg0aoU+HtoMVa5ZpJjbwvw0FLbYMVbP7B79HSnUG9dq7e3p6jbsHBv526pQE8tySHHPiB+2VPMJxtz+eLGSXx/6xRu+3Q7uwpqAbji3c08fMYQJsUFEOWv55+nD+HOuYm8tjKT11dl0p7LNXeNqtUgRZZlsiuMVNRbsDtkhoZ74aVr/vugUEicPzaSU4YEM+bxpW2+1mf+OMjwCB9nDR1JkrhxRjzR/nqe+v0g1Q2WZp2nhd4T7KXlb3OTuGhcJJIkcdbIE1+gyLLMDzuL8NSpWX3vLL7eXoCvXs3VU2J7acQDhwhUhA5RKCTiAt3JG8SBSkKQB6HeOkZF+VJU08iwcO++HlK/Eu7T8a3X3m5qxsf6sXheUpvHTE0IQKdqCiQi/fR8ffNk3luXzS97StiVX8P93+xBq1Lw/AUjmTc0GC+dmvtPTWFFelm7Zis2ZVfxyI/7uHJyDHaHjJebij/3lfLKigxn5VEAN7WSs0aGceaIMMbE+KJWKGiw2nHIMp9tzj9hQGa2Objm/S18ct2EZo0YI/30/HjbFNYeruDOz3disbd/JkjoHo+dleasi9IekiTx77PTKDGYCfd1Y/Epbf/uCicmAhWhw3IqBmfpfIUEN0yPJy7QnbHRvsS1kqsgnFxIGzMqbTlvTATPnDf8pLuh/u+HvWzLrWZyQgAeWhVqpYIbpsdzw/R4Vh8q56nf09lXZOBvX+xgbLQfF42P5KyR4ZT9JWnXV69GrWwKaHz0ar7Ykk92hZHzx0bg567hojc3tFo356hGq53Pt+Tz+ZZ8tEcCp/Yk0x5Vb7ZxyyfbeWzRUGanNFU2TQ725I7Pd+Cr16BTK0Sg0g1CvHTcOjuBynozLyw9fMJjzxwRxpgj5fA74u012aSX1DWbCRQ6TgQqQoddND5qUNZR8XZT87e5Ijm2q37f13Yvr79KCfHkqXNPHqQAaFVKimtNtHbk9KRARkb5cMdnO3DI8NYVY9ieWwPAK5eM5op3Nzm7g986K4EgLx1Dwrzwc9cQ4q3jlk+2c+fnO9s97qM6EqA0fy0KJscfaz5nc8h4aFV8simvU+cTmjtzRBj/OWcYGqWCU19cTYiXjpnJgYR46/h1TzGHSps2DIyM9OHfZ6cxJNSrU2UDjj5mRXqZCFS6QAQqQoedPjyU5/88NGiu6kK8dIyO9uHG6fEiSOmiRoudN1Zltfv4AA9tu7d0z00NYkZyIO7a1t/WvHRqHjgthSve2cyhknomHalnMynen1tmJvDisqar6vfX57Dq3lnO53VTK7ul/kpHXDstttnvmk6t5JIJ0WzKrnLZInj9wY3T45iWGMjEuKYdeuV1Zq6ZEss5o8PRa5p+b0ZF+XLlu5sBkAEfvaZTQYrBZKWophFo6t8ldF7H09eFQS/CV8+LF41E04ndD/2NVqVg4fBQNEpFs5wBoXN0akWH1uovGNf+cuOnDQvlzBFhzW7LLK9n9aFyVh0q54steaw9XMGrl45m2F8+OP42N5EpCU2BS2FNI9d/uNV5nyRBSW1ju8fRHY6fTTlqZKQPPm4iabsrTFY7ScEezqToAA8Nl02MdgYpAB+uz3EGqbvya7jg9Q3UdjCB2WZ38PTv6dQ2WrlqcgznjI7ovhcxCA38TxqhR5w2LJRrpw387HWzzUGkrxuPnpXW10MZECRJYv6RhMQTXaT6u2v4z9nDWDgs9ITnM9vsVBstOBwydofM+owK0ksMHK26UNNg4cMNOVz7/hYe+/kA10yJbbWEuSRJnHvkw2RUpA8Pn3Gs47Veo+KzGyaiVvZesb57vtrFxxtzsf5l1tJXVIXukg825HL2q+tZn1nBP77bw4xnVvKfXw9QVncsGfqFi0ay7aG5zlmQwppGHv1p30nP7XDIlNWZmvKZ3tjAxxubluniA1tvTCq0n6ijInRabYOV2c81r1cxEE1LDOCjayf09TAGjDqTleJaE8FeOnIqjJzz2nq83dRcPD4StVKBQpKYmxrMkLCmv+cqo4UV6WVkltdTYjBhaLRiNNvxc9ew6lA59WYbEb5uNFrsVBothPs07bA4d8yxq9hGi51l6aWcPjysrWFhsTl4bslBHA6Zfywc0uL+n3YVkVVu5OfdRRwuq+eWmfHUm218tjkPq10mwEPLzTPj2VdYy3c7C9u15flk4gLdGRLqhYe2qbnh7oLaTue9CC2dNTKM09JCmZLgj+dxW8qNZhsXvrmBvYVNNW9UComM/yw44bm+3JLPf347gNnqoNF6rM7U8rtniMT7Nog6KkKP89arefGiUVzz/pYBna+yM7+mr4cwoHjq1M4PhRGRPtwzL5lwX7dmyzY2u4Pf9hSzq6CWDzfk0HCSAoMF1ceWZgprGvHUNX9rc9MoTxikQFOfpgdPSwWgzGAi0FPbLDfhjCPju3VWU4BytB/PLTMTsDkcuKmV+LlrqDJa+HFXEbZuiFSyyo1klQ/OXXY9yc9dw11zE7l0QnSrJe/dtapmy0EOWW7RLLTOZCWnooGyOhOh3m489Xt6ixo3KoWEv4e2517IICECFaFLpiYG8NDpqfzfDyefGu2P1EqJW2cl9PUwBqySWhMvLz+M0WLn6d/TkSRIDfEiq8JIRlnnWzWU13esT1Brj191qJz9xQYWDgtttlykUiqaNQ3clF3JKysyeHBBKrOSg2iw2LG1o3id0Hf+7/QhJ60obTzSumBaYgCLRoY7gxSHQ+bJ39N5c/WJk8JHRvpw04w4vEVeUZeJQEXosgvGRhLkqWN9ZgW/7imhoosfEq5AqZC4anIMi09JanMXidA1jRY7D36729mO4eisSH5V1xJXpyUGcHEbfVfaa2iYN0PD2rdT4/ThYcwfGuLcpbPuSCdlwXXd+/UuGq12Lh7f9u/Jw2cMxc9dTULQserHuwtq+Of3e6mot3D5xGhsDpmJcX7847u9qJUSL1w0irHRvujUStGAtBuJHBWhWxXXNvLEr+n8uKuor4fSaUnBHnx2/UQxZdtDLDYHH27I4e012ZQYur8Tt0ohceaIMB5blNbrQabJamfSE8uoFmXuXV64jxvL75nRrsaADofMm2uyeGt1FvOGhnBaWgiLv9zJKUOCOS0tFJVCItJPT6SfvhdGPnCIHBWhT4R6u/HfC0eyIauS8rr+N7NyxaRo7p6XLKZre9AD3+7m2+2FPXZ+m0Pm2x2F/LynmHExvuhUSkZH+7JwWCgxAa3vwNiYVcmnm/LQqhRMSwpssc25vb7aViCClH6isKaR/y07zL3zU056rEIhYbY6MJis/LGvhMVzk3j7ynGMFCULeoWYURF6xEvLDvPckkNAUyO5g6V1WFx8t8KjZw7lyskxfT2MAa28zsykJ5b1WQ7HD7dOaVEP50CxgdNeXOP8WpIgJcSLkZHeXDguCj+9hkBPLW6aY1fedoeModGKt5u6WTLm+a+vZ0tOdY+/DqH7vHH5GOeW+RNxOGTG/XspZ48K56HTW+4KEzpOzKgIferqqbF8tDGXmgYrn98wEaPFxvz/rnbZq81wHzeumBTd18MY8FYcLOvTRNOr39/CpDh/ZiQFMjs1iAAPLYq/FHSR5abg5UCxgc825wOgUSqYEOfHnJQgAF5dmUlZnZlh4d6khnoyLNybzHKjCFL6GYVEh2Z+HzgthdNOUttH6H4iUBF6hIdWxb3zk7n3693sLaxlQpw/p6aF8tnm3u1VEu7jxvXTYpEk6ciWUjXfbS9ka241cYHuzq2fjVY7snziImRC18X3cT2JKqOFX/YU88ueYjTKpqrDm7OrTvo4i93BmsMVrDncPFF2T2Etewpr+XJrQbeNMcLXjZGRPhwuredg6cm7Ogud5+2mZtaR4PNkFAqJ88e2v1Ky0H1EoCL0mHNHR7C/2MC9X+/mw2vGc+/8ZP7cV9LtBeLcNUr+NjeJSfH+1DZaqTJa2JFXw1fb8okJ0HP5pJhmGfjnjYkgu8JISogXr6zI4Jk/DlJltLA2o4LponFYj7HYHLy5OrOvh+FksTv4bkfXc2WGhXuzp7AWaOpN1NVdb59dP5FIPz2NFjuznl3ZIwnHQpPqBiuP/riPN68Y29dDEU5AlNAXeoxCIfHwGUO5bVYCl7y1EbtD5t75yd12fklqakT3/a1TuH56HGnh3kxJCOCMEWH83xlD2PPIfD65bmKLbYJalZKUkKb10FtmxjMktOn/n/vzYLeNTWguo6ye019awx/7Svt6KN2uusFCUnDTTNG4GN8un2/FwTKgqUjdPxamdvl8womNj23ZUkFwLT0aqDzxxBOMGzcOT09PgoKCWLRoEQcPNv8wmDlzJpIkNft300039eSwhF5UZ7JyoMRAUa2JJ39L58Jxkbx71VgSgrq+BPDapaN5+8pxJAZ7nvzgNkiShOlIuetdBbUDogaMK1lzuJyL39zIolfWcai08wXcXFlBdSPjY/24Y04i102LJdCza9va31mb7WyCd8aIMO4+JYlwH7fuGKrwF48vSuNykZvm8no0UFm1ahW33norGzduZMmSJVitVubNm4fR2Lwk9PXXX09xcbHz39NPP92TwxJ6kadOTWqIF2HeOr7ZXsB763KYnRLMQwtT0ag6/+sX4qXj1LTuSWq7dOKxN6pvthVgd8jsKajlYIkBu6gw2mmlBhO3fLydDVmV1B+p8jlQ/biziOunxTIm2o8XLxzZpVyn3MoGzn5tHbmVTe+Tt89JZNndM7h8YjSqI7ODE+P8uGN2QpeDosFs3pBgLp0Q1a46KkLf6tFA5ffff+eqq65i6NChjBgxgvfff5+8vDy2bdvW7Di9Xk9ISIjzn9hmPLBcMC6SNffP5rFFaTz9Rzo782uYmRzElzdO6vQ5jWZbt213vnJSNKlHln+qGpryZ6obLHjo1Kw+VN4tzzHY7C8ycPGbG6kb4AHKUQaTjQ/W5wAwOSGAKyZ27So9q9zIYz8foM5kxWCyolMreWxRGjsfnsfSxTP45LqJzEgO4uJxIrmzM9w1Sh49a2iz3j2C6+rVHJXa2qaEMz+/5muCn3zyCQEBAaSlpfHggw/S0NDQ5jnMZjMGg6HZP8H1KRUSl0+MZnZKkDOhMi7QnXNGhXfq6lOhkLA5uidQUSkVfHDNOII8tYyN9kOpkJgU74+/u4aZySK5tjNeWn6YrIrB1UzvpeUZ5Fc1vXfde2oKyV1YkgRILzHw9O8H+WTjsZ1yHloV0f567vlqFxlldVw7LY73rx7X1LtmZBhDw7zQqRVoVQoifN2ID3QnOdiTSXH+LBoZho9eFDIEeOj0IYR6u2G22akzuWbJBOGYXtv143A4+Nvf/saUKVNIS0tz3n7JJZcQHR1NWFgYu3fv5v777+fgwYN8++23rZ7niSee4NFHH+2tYQvdbHJ8AP/6eT+HSutICvbk+QtHkhrqxb9/PdCh85yWFtKsu2lXBXnq2PT3Oc4rrD2Ftfyxr8TZTVdov7I6E5vaseV3oDHbHNz91S4+uW4CHloVZ40K4+nfO5+gXVDdyNfbCvjvhSOctzVa7Nzw0VbWHK7AaLZx4bgoZiYHMfO4HHWHQ0aSaHW2YH+RgTNfXjuomyZeNjGKi8ZFYrE5uO6DrUyM8xeNR11cr1Wmvfnmm/ntt99Yu3YtERERbR63fPly5syZQ0ZGBvHx8S3uN5vNmM3HEh4NBgORkZGiMm0/klFWx22f7uAfC1OZltg0Y/HL7mLu+mInFnv7Zkn+sSCV66fH9eQw+WlXEWd0spT6YFVRb+asl9dRWNO1xoL92fMXjOCc0RHY7A5+3l3MfV/vbvfvdWuCvbQEeeqw2h3Um23O5o0AZ44I49S0EKYkBLS77cP767KdBesGE1+9mn+dlcbpw0ORJIk3VmXyxG/pLL97BnF9XN9nsHKpyrS33XYbP//8M6tXrz5hkAIwYcIEgDYDFa1Wi1YrEsj6s4QgT964fAyfbMpzBioLh4ciI3PbpzvadQ4vt67/6lpsDlYdKmdvYS1Gsw29RsmYGD+mJQSgUEgiSOmEjzbkDuogBSDvyPKPSqlg0ahwdubX8P6R/JXOKDWYKTW0HlT8uKuIH3cVkRLiybe3TG7XLONVU2JZNCqce7/ezZL9vbNd3M9dQ73J1qWArbN0agWLRoZz/6kp+LprnLcfLK1jTLSvCFL6gR4NVGRZ5vbbb+e7775j5cqVxMbGnvQxO3fuBCA0dHCUKa5psGCxOQjy0vX1UHpVtL87f1/QfFnl9OFhrDpYzlfbTl7ls6vLPmV1Ju7/ejejo3y5dlosz/5xkC2Hq3llZSZjonzx1Km4ZVY8Y6JFjYX2qjfbWHpg4NVJ6agXlh6m1GDm34vSUCgk5g0N7lKg0h7pJXU8/MM+njl/xMkPBnz0Gm6ZGd/jgYqPXk2jxc6H14ynttHKpW9v6tHnOyraX8+1U2OZEOtPUrBHq8tg10yJpVQU0+sXejRQufXWW/n000/54Ycf8PT0pKSkBABvb2/c3NzIzMzk008/ZcGCBfj7+7N7927uuusupk+fzvDhw3tyaC7DR69BlmWyyutRKxX4umvw6OXW9K7kllkJ7QpUPtqQ264Zj9xKI5uyqqhusGC1O7huWhw6tRK9RsWrl45xNpr711lNeVN5lQ2sy6zgq635XPDGRu6am8jF46Pw9xCzeCfz8cZc9hWJ5HaAzzbncd6YCMZE+xLYC7873m7qDi+FpoR4MTM5kJUHm3a2hfu4dctsWKCnlrvmJhHh68aICB/0WiVqZdO+jQhft2ZLV10R46/njjmJ1JttvLcuB5VCYv7QEKYmBjA+xq9Zs8jWpIV7kxbu3S1jEXpWj34ivvbaa0BTUbfjvffee1x11VVoNBqWLl3KCy+8gNFoJDIyknPPPZeHHnqoJ4flciRJIi7QA4dDJrO8Ho1KQbR/6+3oB7qidr5Rbs6pIrvCSGxA29+nb7YVcPdXu5xfxwW6c920pjfztoLBKH89Uf5RTIrz57Mteby+Kotn/zzE9dNiOWNEGMMjfNr/YgaZaYkBvL5KTY2LNp7sbdYjyxyJwZ6cMzqcb7d3vVx/a4I8tTx57jCSOrjLyE2j5M3Lx/LLniLCffQMj/Bm6MN/dLl2UEqIJ5dMiGr1vssmRvPkb+ldOj/ApROi+OfpQ9Cpmy40Vh0s59wxESwQDQMHpB5f+jmRyMhIVq1a1ZND6FcUConEYE/eXpOF1S5z88yWOToDnVqpQCFBe94rr/1gC7/fOb3NwnG7C2qaff34ojTnG9vJxAS4c8WkGHQqJQpJwmSzk11hZGiYNx9vzMXXXUN5nZkoPz1TEvy7dQdSfzU0zJtTUoPbNSM2GFQd19PqmfNGMCTUi8d/6djutvb4+LoJHQ5SjtKoFJw96ljeoF6t7HTtG0+tissmRXPjCWZ2bpweR4PZxuurszpdB2nBsBAeOyvNOWOyIr0ML52Knfk1IlAZoMS7qwuK9NO3aD0/WIyP9eP1y8bwxG/pZJ+kDkdWuZG31mRx04z4Zv18rHYHy9PLWjSc89Vr/nqKEwr3ceOuU5Ja3J4W7s35r693BlMJQR7cPjuBM0eEDfoCUn7uHfseD2RrDlc4PziVConrpsWx+nBFtxYRTAv3wq2dwXd76DSdC1Si/PR8ddMkgk+SaydJEovnJbMhq5ItOdWdGuOikeHOIKXaaOHq97cA8JZoLDhgiUDFBc0fGtLXQ+hT846sMz/y4z6Wp5dRUd92t+Vn/jjIG6syuXFGPBX1Zg4UG9hdUEuDxd7suPPGRJAS0v6rzsp6Mw9+u4cwHzdumRlPkJeOvYW1fLejkMQgD+akBrMrv4YzR4QR6acnp6KB2kYrh8vqeXtNFmeOCGfh8MF3dRfhK3rSHPX9jkKGhXtz8fhIZwB784z4bgtU5qYG8dYVY7s1OB4V6cOfHUywjfbX8/G1E04apBzv6fNGMPu5lXSmOMazfx5kelIgOrUSD52Ke+YlEe7rxpyUoA6dp7bByh2f72BYuDd3zk105tEIrqfX6qj0lPbuwxb6r2UHSvm/H/Z1KdHvtUtHc1oHp4XL6kw0WuyEeru1uryUUVbfLc0VB5JXVmTwzB+iC/XxPr1+ApPjA5xff7Qhh3/+sK9L5/z59qkkBXt2qV9Wa15fldmhHJJTh4bwxDnDmm37ba95/13V6UaVV0yKdibAd9aPu4q447MdaJQKNjw4WyTM9wGXqqMiCF0xJzWY6UmB/LmvlGXppSzZX0qdqWPT0yHeHd/+HeR54seIIKUlsT25pTdWZTULVC4eH8X3O4vYltv+pY8ADw2nDAnh9OGhRPnpifTT98RQGdGBZPGpCQG8dtnoTs3o2B2yszaMj17NOaMieHdddrsf/+GGXNLCvblgbOd7HZUfKXhnsTuobrCKQMWFiUBF6BfUSgULh4eycHgoBpOV3/YUs2R/KXaHzMXjo/DQqvhsSz4/7Spq8dgJsX4U1ZjIqSxArVSQXlyH8shWxiFhYhauu1jtjnbv2hpM1mdWkFleT/yRwmIqpYIhoV4dClT+d/GoZsFOTxke4Y2fu6ZZIvBfzU0N5pIJkcxICur0slODxcZpaSE4ZJl756cQ4KHhlz1FbRa2a819X+9mf5GBR84c2qkxvLU6C4CHzxgiLjpcnAhUhH7HS6fmwnFRXDiu+RbIyQkBDA3zajF1vSm7qtXeM6+uzOD/Th/C5ZNienK4g4LdIfP8kkMd+qAZLKx2mXNeXc+/z07j9OFNtX8c7Vhxj/B1Y3ZKEOeMjmBkpE8Pj7KJu1bFI2cO5Y7P2q4Q/eCCFGfQ1VmeOjVPntu8VlZ8oEeHf3/eX5/DgmGhjI/teGFGP3cNJQbToMwl629E9pAwoNw0I55nzx+Bp+7kMbjVLpNb2XanbqH97A652wp5DUS1jVZu+3QHD32/B4dDbjNhXiGBp07F0+cOZ819s/jXWWm9FqQcdcbw0BMmnleeILm9K0ZH+XbqcWsPdy45+c0rxhDmrePVFZl8uCGHMlGl1mWJQEUYcM4bE8Gu/5vHxgfncOecRNLCvfDSqVpt2ja7gzsFhNZpVApunjH46v501Mcb8/jXz/uZHO/vvE2pkJgc78/5YyL47pYp7HlkPheMi+yzre6SJDE2pu2goaC6Z4L7M0aEoTmy82ZKgj+Bnu3LGdnagSW049kdMueNiWBWShCrD5Uz89mVNP5lt6DgGsTSjzAgKRQSId467jolyVkL5cFvd/PZ5vxuOb/dIWO1O9pdQG4w0GvE96I93l+fg6HRyjVTYjHZ7Jw+LJTJCT2ff9IRE2L9+XhjXqv3dSYxvT2SQzxJDPZgX5GBR88cyo87i1h1uIJd+TUnfJzyJKXy2xLq7cbOglrunJvEjKRAVh8qZ11GBSHeOlFa38WIGRVh0Pj3omGcMyq82W0jo3w6fJ5qo4U7PtvBv385QLXRwh/7SrpphP1btL+eeUOC+3oY/cLB0jrunZ/Mf84e1maQUlDdwKsrM3p5ZE0WDGt9+SfAQ8ukOP9WHtE99Bol3m5qIv30LJ6XzPe3TOb6aSduZuvfySKDGpWCd64cS3FtI7WNVqYlBjAhzo+bP9lGca1YxnQlIlARBg2FQuKZ80c4p9199ep2VwAuNZh4dWUGd3y2g7nPr2LVoXJmpQTyyE/7uOOzHZzx0lryTpLvYrbZqagfuMmmkiTx6qWjeeniUXi1I0doMDtUWsfy9DLn1za7g/QSA6+syOCiNzcw5cnlTH1qBb/t6ZsgWKmQ+PfZw1rcrlUpenRJKj7QgzNGhKJVNc3OSZLEzTMT2qx4PCcliIfP6Piun225Tcn1aqWCbbnVLHhxDZnl9aw8WMa4GD8MjZ1rIyD0DPFuIgwqSoVEUrAnm7KrqG6w8ubqLO6Yk3jSx93+6Q425xzbOeSrV7M+o5IfdjZth95TWMvl724i2EtHtdHCBWMjGRHpw1O/p5NVXs/ZoyII9mpac79xAOdyqJQKzhgRRm2jlYe+39vXw3FZVrvMPV/tYtmBUvYVGThcVtdqf6thEX23BDE6yoekYI9mRdnOHR1+gkd03cHSOv55+pBmt/m5a/jljqmsPFjOf345QJ3ZhpdOxYsXjWJWJ3LM9hbWcqC4jjHRTTuFxsX4cdcpSVz7wVY+v2EiDrlpGUpwHWJGRRh07js1mfevHse0xACeX3KI11dlOu/LrTTy/JJDLN1f6ux+m1FWx76i2mbniAv0aPEmmVvZwObsKg6X1fPvXw9wwRsb2JZbTXWDlXfXZfPO2mzCB0mJ+csmRvPEOS2vyIVjGq12vt1RyMHS1oMUoE+X0iRJYuGwMOfXScEe3HVKEs//eRCzrfuTTmVZprLe0upsXKi3GxePj2JEpA8BHlo+unZCp4KUA8UG9hbWctnEaOdtYT5ubMqq5MpJMYR6uzF/aAgfrM/pyksRupkooS8MWrIsM/WpFZQaTExNDEAhSezKr+GZ84fz9ppsJAlmpwTzzB/pmKwtO71qVQrMHewAGxfgztPnDWdMtO+gaGB40Zsb2JjVsoaNcHKBnlrW3T+728vkd0RRTSNnv7qOYC8db18xlgaLnZnPruTWWfHcOz+lW58rv6qBaU+vAJpaBLSW0PrV1nxmJAeetGp0a+pMVrbmVjMruWWAY7LaOFxaT5iPGzd/sp3N2VXsenheqzsFhe4jSugLwklIksQfd02nqt7CdzsKeWdtFi9dMpoZSYG4qVVc/NZG1mVUtvn4jgYpAFkVRs57fQPTEgN4+ZLRA/6NcG5qsAhUOunyidF9GqRA02zDFzdMwiHLBHnpWHEkr+adtdlcOzWuW7tle2hVvHDhSO77ejc/7SpqNVA5vwsl8z116laDFIPJyqVvbaK6wUKZwYzFOZNaz5joztV2EbqXWPoRBjUPrYoofz13zk3kg2vGExfgDsC4GF8WdrCJYUesOVzBE78ewNHWnP8Ace3UWO6Zl4SHVlwTdYSHVsWVk2P6ehgAxAS4E3ekEm2YT9PSpcnqILuicw0F2+LrrmHRqHDuOzWZH3YWkVnefed3OGRyK42t3renoJbbZifw653TGB3tg0JqquNSbxYJta5CBCqCcMSoKF9nszeVUsEDp3Xv1PZffb4ln5s+3obJ2rTe32ixD7jARZIkbpudyLK7Z5Ac3PkERQ+tisnx/pw9KpxzRod36Vz9wa2zElxyti0hyIMx0b7MTQ0iOaRnltqvnBxDlL+eOc+t4v6vd3dLEbaPN+VyyvOrWw1+piQEMH9oCF46NZG+eiRJYvEpyUyM63hZfqFniBwVQWhDZnk9c55b1ePPo1UpCPdxI6vCiK9ezZSEABaNDGfuAKtJYrLaee7Pg7y1pv1dcucPDeaCsZFMTwpErTx2XVVvtnHWy2vJLG/9Krk/i/HX88dd051bdAeylQeblpIifPXEB7o787b+/t0ePt3UVHBuRlIg7101DkUnCrvJssyHG3J59Kd9OOSmvJ/zxkRw55zEVos1yrLMmsMVjI/1E8Uce4HIURGELmpvCe+uMtscZFU0feBWN1j5eXcxP+8u5tIJUTy+KG3AJN3q1Er+sXAIIyN9ee7PgxTVNjJ/aAjnj4lkSJgXvno1GWX1ZFcYOVBcx9whQQwNa317rodWxd8XpHLtB1vRqRVE+Orx0KrYeZIqpq5Oo1Tw0sWjB0WQApBdYeTRn/YDsPiUJGepgNPSQpyByqpD5SxLL+OUDgbuDRYbt3yynZUHj/UCKq8z4+Ombhb0Hk+SJKYnBXbmpQg9SAQqgtAGu13GQ6vqs7XqTzblIQP/aaXwVn+2cHgoC4aF4JBblj9PDPYkMdiTeW007TvenNRg1t4/C0+dGm83NfVmG5e+tZFdBbUnfayrevzstD6tndLbrp4SS73JxnNLDvH8kkNIwG2zExgT7YuPXk1NgxVoCjo6wuGQuf+bPc2CFID/O30IV0+JGTDB/2DhEjkqr7zyCjExMeh0OiZMmMDmzZv7ekiCwIqDZX2eUPf55rwBWc1WkqRO92g5XoSv3pnL4aFV8dF1E9CpXeJtrcNum5XABV3Y1dJf3T4nkafPGw7Ac0sO8bcvdqJRKpoF6NXG9nVsbrDY2JBZyd+/28NPu4qa3eelU3Hx+CgRpPRDff4X/cUXX7B48WIefvhhtm/fzogRI5g/fz5lZWUnf7Ag9JAXlx7mgW/29PUwcMiwdH9pXw+j35BlWq1548oUEjy0MJW75yX19VD6zPljIrj8SBG2H3YW8c8f9pEU7MHdpyShUSp4ZWUmBpO1zccfTbW85v0tXPzWRj7f0rL5qMFk48Vlhzs0LrtDxtKJMgRC9+rzQOX555/n+uuv5+qrr2bIkCG8/vrr6PV63n333b4emjBIGc02vtiS56yn0Nee+C2dPf14OaM3rTlcfvKDXEhikAff3jKF66bFDeorfUmSeGxRGjcdaS/x2eY85j6/ml/2FPPmFWPwdlOz7nBFq49ddaicGc+s5Jr3t7Alp/qEz7PmcDlldSbn18a/zJiarHbWZxx7nq+25vPkb+n08z0n/V6f5qhYLBa2bdvGgw8+6LxNoVAwd+5cNmzY0OpjzGYzZvOxqXCDwdDj4xQGjw2Zldz95U6Kak0nP7iXuGuUzj5Bwol1x1bW3nLRuEgeOXOo2F1ynGumxPDG6kyOxgXpJXW8ujKTn2+f2ub36YcdheRVNZBXdeKmoNDUw2d/kYGgZB0vLz/Mi8sOMzbajwhfN6x2BwXVjTx7/gjn8UU1jby7Lpt/LExFOXjjyD7Xp4FKRUUFdrud4ODm2dzBwcGkp6e3+pgnnniCRx99tDeGJwxCn2zKdakgBSApxJMNWZUEeeqYdKTzs9C69ZltVxJ2JTfOiOOBU1MG9SxKa4K8dFw3NbbZFvbN2VXc+sl23rlqXKuP6Uj13v+cPQydWklupRE/dy37Hj0VjUqBLMsUVDcS6KltFhCNjvbl3avGtsincjjkTm2XFjqn3+36efDBB1m8eLHza4PBQGTk4EtAE7rfodI6ft1T3NfDaGHlwXJWHixHo1Tw8JlD2JZbzeyUIOamBour8ePUNlhd8uf3V6cPDxVBygn8fUEq5XVmvt95LBnWIcsU1zYS6t2yqefC4aGt5qT8VVyguzPg+Hl3MaUGE41WO19szafBbOOUIS3/nqYnBrKzoMb59bbcan7bU8xPu4vw1Kk5e1Q4t85K6OQrFdqrT3NUAgICUCqVlJY2TxYsLS0lJKT17YlarRYvL69m/wShO2zJqWqzi60rsNgd/OO7vXy7vZDbPt3BuMeX8sSvB8T6+RFebqpW+8O4kqRgD/6xMFUEKScgSRL3nZqC9riZkhUHy7nri52tHj8tMZB75yef8Jxh3jp+uX2as37KqkPlfLghl+lPr2Dt4XJOHxHmbBNwPIVCYnTUsX4/sQHuRPnrabTYySir5+XlGc2qSedUGPlyaz7b86rF32U36tNARaPRMGbMGJYtW+a8zeFwsGzZMiZNmtSHIxMGo1h/dxaNDDv5gS6izmzjjdVZfLO9kDdWZbIxq3JQ71CQJIknzxmGu8Y1Z5lOGRLML3dMa3VWQGguzMeN22c3n6nYmFXFQ9/vabUM/tzUExeDC/DU4nbk9yK/qoFdRwoDWu0OUkK8CPdp38/Ez13DFZNieO2yMZw1MgwfvZr86qbcmJeXH2bu86u47+vdnPPqeha9so7312Wzo4NBS3FtIyUutvzc1/p86Wfx4sVceeWVjB07lvHjx/PCCy9gNBq5+uqr+3powiAzKd6fP/vhVuB7vtrl/H+9RomPmxqHDBeMi+TG6XG4D6KGgInBnrx62Riu/3CrSwVtGqWCx85Ka7MiqtDSzTMT2Fdk4Le9Jc7bPt6YR7XRyiuXjm52bFygO59dP5F6s40PN+QwKsqXVYfKSS82YLY5GBHh4zy2wWJHp1Zy3pgISg1m/rf8MJdPiibA41jCen5VA++szWbxvCSe+i2d/OpGvHQqZzsHlUJiyf5SGix2rnpvCwuGhfDKisxmY9pVUOssPpgQ5MFF4yI5NS2ECF/9CV93oIeWZellbMyys2hUeGe/fQOKS/T6efnll3nmmWcoKSlh5MiR/O9//2PChAnteqzo9SN0l4e+38PHG/P6ehjdKtzHjfeuHkfSAG/i91crD5ZxzftbXGYp77KJUTy+aGBVGO4NJqudc15dz/7iY7s7b5uVwD0nWeo5atmBUsw2B6OjfAnx1jlv/3JrPhuzKrlsYjSXvb2Jv81N5Ibp8c77ZVkmt7KBaH99s2W6inqzM6B5a3UWs1KCeOr3dJZ04AJnSKgXf1+QytTEgDaPKTOY2FlQQ7XRwoXjotp97v6mvZ/fLhGodIUIVITuYLLaGf7ony51Fd5dPHUq/nn6EGYkBeLnrhk0V/WvrMjgmT8O9vUwCPXW8cdd0/HSuV435P7AZLXzv2WHeW1V07blR88cypWTY7p0zg/W57A5u4pXLh3NRxtz+XpbAe9cObbZrEpHFNY0siOvmvfX5bA198S1XKCpyN//Lh7F6cObLzXXmax46tS8tjKTguoGrpkaS3ygByarfUAmzoumhILQATq1krmpQfy6p+TkB/czdSYb9329G4BZyYG8d/X4Ph5R77hmSiyvrczs8zYIZ48KF0FKF+jUSu47NYX4QA9eWZmBp05FldGCt5u6020Yov31+LprALhsQhRalaJTPyOHQ2ZNRgUzkgIJ93Hj9OFh/LmvhBs+2nbix8nw9O8HsdodzB8aQlGNiU835XGg2ICXmwq9RsU985OduTO/7ilmZKRPqwm/g8HguLQShHaYmhCI3kUTMbvLmsMVLapxDlRuGiUzXKATrtnmaLYzROicc8dEsOSuGXy+OZ/Rjy1h+tMreHdttjNRdW9hLYdL69qVuDozOYgzRzTNZkiSxAVjIztUj+WowppGCqqbF5qbNzSEsdG+bTzimLyqBu76YhdXvbeF2AB3rp8ey6JRYdw2K5H/XjiyWYLvKUOCefyXAxTVNAzIWd+TEUs/gnCcfUW1nP3Kepcpn98TPrxm/KBpZZ9f1cC0p1f09TD4+fapLr91uj+w2R0U1jRy/ze72ZZbjdUuo1RIuGuUmGwOLDYHwV5avr91Sq/srnI4ZCSJZnksdofMPV/t4rsdhe06x9LF00kIOnkOWb3Zhk6pYGl6KXNSgymuMRHlf+LEXFcnclQEoZP+9dN+3l2XffID+6lld88gfhBNIS/83xr2FfVdqw21UuLQ46eJ2indzGS1U1DdgEqhYGNWJUsPlHKguI7yejNapYIATy1jon25aUY8CUFNv++5lUZ89Bq83dQYTFaUkoReoyS3soGYAPdm52+w2NAoFag6mNP1/J8HeXVlJpPi/dmZV0PdcTOY42J8uW12IgEeGr7fUchba7Lx0at564qxjIvx69DzbM+rZntuNVdNjsHmkPtlDovIURGETrr/tGR+2VNEqcF88oP7mSBPLXF/eUMeyGRZ7nQeQ3exO2Qyy43OD0uhe+jUSudMREyAOxeNb747JqOsnp35NXi7NeWePP17OrmVDQwJ8+KWmfG8vDwDo9lGbIA7Q8K8iAlwp85k5dWVmaw6WM7cIcHcMD0Ojw4GKrfNTuTOuUkoFRIF1Q1c98FWsiqMWGwOLpkQ5VyOHBrmTV5VA3/sK+XuL3fx+Q0TCWtnPReA0VG+DA/3RgbeX5/jbOg4EIkZFUFoxdtrsnj8lwN9PYxupVJIvH3lWGYmB/X1UHqNLMuc9uIa0kvq+nQcF46N5KnzhvfpGIQmDofMa6sycThkbp2V4OzZk1FWz9mvruMfC1I5d0xEt+6Ok2WZ8nozQZ66Zrc3Wuzc8fkOluwvxUev5oULR3bo77OszsR/lxzmonER+HtoT1qjxdWIpR9B6AKj2ca0p1dQZbT09VC6hVop8fIlo5k/tPXWFAPZT7uKuP2zHX06BrVS4o3LxzA75cQVVIXe4XDIrD5czqR4f7SqpiWTXfk1WO0OxnZwCaa9bHZHq8tIDofMpuwqsiuMbM+rZnK8P+eMjujQuR0OmS+35nP26HDn6+kP2vv5LXb9CEIr3LWqAdVs7N9nDxuUQQo0NQFUK/t2+cdql9mac/L6GkLvUCgkZiYHNftQHxHp064gRZZlft5dxN7C2nY/X1FNI/d9s7vNsUyK9+eSCVE8e/6IDgcpR89x1shwlAM0D0oEKoLQhssmRrW7B4grGxXlw3mdePMbKIpqTVjtfT9xbO/AFuW8yoaTHyT0OrtDJqvCiFalZNEr67jnq128vSaL5emlvLj0MOV1ree1/bqnmKX7S6ms77m8NzeNssOJv/2FSKYVhDZoVUoeWzSUa97f2tdD6bRofz2vXDLauQ4/2Jisdv72ed8u+xxV1M5Gc7Isc8bLa/nulsmDtsCXK7I7ZK54dxPrMiqdt329rcD5/zq1grNGhhHo2bK67e6CWgwmGx9syGXxKUm9Mt6BZGCGX4LQTWanBDM0rP/mPr1+2ZgO7SQYaN5ek8UWF1lysdjsJz3GaLbx7J8HqW208u329tXhEHqGwWTFfNzPbMn+EtZnVrZ5/GuXjmmxxfmoo8tE+4vav1wkHCMCFUE4iWmJ/bc4WlArV3eDiSt92Je0Y7v7rvwaZxfew2V9u1NpsKptsPL4z/sZ/a8lnPbiGvIqG7A7ZB74dg9tbT0ZGelzwiKKRzuYb8yq4vk/D3KotPd+tgOhkq1Y+hGEk7hnXhIyMm+tznKZbrzt1Wg9+VX8QFVU00hWhbGvh+EU5q074f3f7yjk/uMSLjdnV2G1OwZNE0lXYDBZufK9zezMrwEgq9zIwv+tIdRHR6Ol7b8lhyxTYjC1mdN2tDx/vdnG/5Zn8NveEpYsntHt42/Nl1vzGRnp068rI4u/gBMYKFtTha5RKRU8eFoqP942lRGRPn09nA7Rawbvtcif+1ynwaRWpeDOuYktbi8zmPhuRwHXvr+Fu77cifm4q9/HFqWJIKUX1ZttvLkqyxmkHFVntnGotL7Zz+avdhfUMvvZlfzjuz0YTNZm91XWm9me13z5sbCmEWsvtek4b0xEsyWsjmq02KnowSTg9hB/BSfgru0/+9GFnpcW7s13N0/mlUtGk9gPqowGeWrxO9IhdjAqbmfyak8bFeXDB9eMJyWkZa7Tv37ez11f7GJZelmzZQWlQiIuwPV/xwaK99Zl892OQl5ekdHpc5htDj7ZlMeiV9bx/Y5CbEcCkd/2lrRYMmqw2Pl1T3FXhtxuOrWSEG+3TjXG3JVfw2srM3D0cbm1wXu51Q79qXCO0DsUComFw0M5NS2Ee7/e5VI5EH+VHHLyRmcDWZDXiZdaetqkOH8eXJDC8AifVu+vN9v4pY0Pq9RQT4b04yTu/kSWZZ78Lb3N/JOOyio38rcvdvLLnmKmJwXyahvBz2srMzlrZHj3POlJdLTMgtlm55Ef9zM0zIvF85J7aFTtJwIVQegEpULimfNGEO3nzn+XHurr4bTq8onRfT2EPjUrOZAXlqqoM9lOfnA3Oy0thBcuGnnCix29WolOpWw1j2hYP84n6G/+3F96wmWdzlqyv5Ql+0vbvL+mwYrDIbtk6QCNUsH4WF+X+T0USz+C0ElKhcTpI0L7ehhtGuxX5HGBHjy+KK3Xn/ehham8eunok87IKhQS84e2XlL/9OFhPTE04S9yK43c2Ud1dkoMJu7/Zjf5Va5X3E+SJM4eFeFs+tjXxIyKIHSBq1aunZUcSJi3a46tN52aFoK/u4bKXkqMv3d+MtdNi2v38Z46dYvbgjy1TIzz785hCccprGnkx51FZJbX88e+EkzWvtu++9W2An7cVcQ985K5Zmpst3X6Ti8xEBvgPmDSF0SgIghdoFUpUCqkDpVH72lBnlr+e+FIl5xS7m1alZLLJ0XzwtLDvfJ8J9rC+ldldSa+3Jrf4vbTh4d12weW0JSDsuJgGSvSyzlYWsfm7Kq+HlIzZpuDf/96gFAfXbfNpBnNdi54YyMvXDiS2DaK0PUnYulHELpAlsHVPlMmxfvjox+8u33+6obpcUT763vlud5ck0XdX7antuXOz3a2mhuxYNjgbB7Z3ax2B9kVRu7+chfXvL+VjzbmulyQcryHvt/bpW3ExxsT7csjZwzh5o+3nTBPpr/okUAlJyeHa6+9ltjYWNzc3IiPj+fhhx/GYrE0O0aSpBb/Nm7c2BNDEoQeUWJwjYZ3R81OCeKhhUP6ehguRa9R8eQ5w3vluSw2B6sPVbTr2P3Fhha3BXhoGR3l293DGpTeXJ3FRW9u4Nsdrrsz73g1DVZu+mgbm7LaLtPfEaOifPnm5skUVDf0++q0PbL0k56ejsPh4I033iAhIYG9e/dy/fXXYzQaefbZZ5sdu3TpUoYOHer82t9frM0K/UduH3e59dCqmJsaxPhYf4K9tAyL8G61KdpgF+Hbe/k6WlX7rv+mJPjz657mRemmJwWIJbtuklleT2k72ha4khUHy6kyWvjhtqndcj53rYqrp8R2y7n6Uo8EKqeeeiqnnnqq8+u4uDgOHjzIa6+91iJQ8ff3JyRETHUK/VN2H5VoTw314vThoZw7OoKQk5RmF5oCut6iUrYv0JieGNgiUJmb2vouIKFjTFY7f+x1ncrEHbGroJanf0/nnnnJImg9otf+emtra/Hz82tx+5lnnonJZCIpKYn77ruPM88884TnMZvNmM3HomSDoeX0qSD0lqzy+l5/znvmJXHTjHhUorx6u/m6a4jwdaOgurHHnmNmciBXT4llxgma0x1vdLQvGpXCOS0fH+jOnNSgHhvfYKJUSAR768gqd51eTx3x6spMSmpNPHv+CBGs0EuBSkZGBi+99FKz2RQPDw+ee+45pkyZgkKh4JtvvmHRokV8//33JwxWnnjiCR599NHeGLYgnFRvN71bfEoSt81u2TNGOLnxsX4UVHd/vkKErxvvXDmuw5WAk4I9WXf/bL7als+EWD9GR/kiSeJDqTsoJYlrp8byj+/29vVQOu3bHYWMifHl0gmDu3AjgCTL7S8c/MADD/DUU0+d8JgDBw6QkpLi/LqwsJAZM2Ywc+ZM3n777RM+9oorriA7O5s1a9a0eUxrMyqRkZHU1tbi5TW4C1wJve+0F9dwoJWkyJ6gUkjs/9epzk6sQsf8uqeYWz7Z3u3n9XfXsPHvc0QDQRfSaLFz/hvr2VvYv2fcFw4L5ZVLR/f1MHqMwWDA29v7pJ/fHZpRufvuu7nqqqtOeExc3LFiR0VFRcyaNYvJkyfz5ptvnvT8EyZMYMmSJSc8RqvVotWKZEHBNZTX9V6yns0h02CxoVGJrcedMT7WD41SgaWbu9YGeelEkOJi3DRKZiQF9vtARUywNelQoBIYGEhgYPvWXwsLC5k1axZjxozhvffeQ6E4+R/yzp07CQ113ZLkgnC87Apjr7Y/12uUrVYyFdonwEPL305J5OnfD3brecfFiO3ErujMEeG8siKzr4fRJcsOlFFZb8bfY3BfnPdIjkphYSEzZ84kOjqaZ599lvLycud9R3f4fPDBB2g0GkaNGgXAt99+y7vvvnvS5SFBcBXvrcvu1ee7dVaCqFjaRTfPiCenwsiXWwu65XyeOhXnjYnolnMJ3Ss5xJMrJ0XzwYbcvh5KpzVa7RhMNhGo9MRJlyxZQkZGBhkZGURENP8jPj4l5rHHHiM3NxeVSkVKSgpffPEF5513Xk8MSRC6XUMHyqV31S0z47l1VkKvPd9AJUkS985P4ZfdxRi7+PML89bxxY2TiPTrnaq3QsddMzW2XwcqIV46osXvV89Upr3qqquQZbnVf0ddeeWV7N+/H6PRSG1tLZs2bRJBitCvmKy9E6jE+Ou5Y47Y6dNdAj213bJz6slzh4sgxcUFemrR9OP8oamJogAgiF4/gtBpuwpqevw5PLUqnr9wJDr1wOiC6iqunRpLWnjndwneMSeR6e2slyL0Hb1GxQXj+u/SXJCoMg2I7smC0GlRfnryq3qugFhCkAcvXzKKlBCx7b67aVQKbpoRz22f7ujwYx84LYWbZsT3wKiEnnDRuCg+3pjXoceolRI6lZJATy0zk4OYkRxIaqgnnlo11Q0WPtiQw4HiOlYfKj/5ybpgwTCxuQREoCIIndb+CkQdp5Dg7SvGEjMAWrS7qsOlHasq7KVT8Z9zhnH68LAeGpHQE2yO9v+hRvvrWTgslCsnxxDs1XprCjeNGw+elgrA7oIazn51PfbjnqM7tsArFRJ/m5NIWrh3l84zUIhARRA6wWi2sTWnukfOLUnwr7PSRJDSw4aEtT5TJUngpVNT22jFTa0kLdyL+UNDOGd0BH7uooZNf2KxOfh8c9uzKVqVAvORFgY6tYK3rxhLYnD7KwwPj/DhnSvHcu0HW7E7ZGYmB5Ic4skbq7K6NO4LxkZwu8hLcxKBiiB0wu97S7p81TQxzo8wHzcOldY5C1OpFBJ3nZLEZRNF2eyeNiUhgIvHR/HV1nwSgjyYkxrE/KEhpIV5o1BI1DZa8dKpkGVEQmM/5ZDlpp+fBEcnPQI8tJw3JoIbp8fho1djaLSB1JQP1pmf88zkICbH+xMb4M7fF6Qy9/lVSFLnZ1x1agWLT0nu3IM7Iau8nrhAj157vs7oUAl9V9TeEryC0F1kWeaMl9d2S9XLOSlB/O/iUZTXmak32/B2U4udJL2spNZEgIdGNHkcwPYXGdicXQnAuWMiur1wotlmx2JzsLfQgN0h84/v95Bb2dCpc507OoLnLhjRreM7kZeWHabBaueGaXH49vKMYXs/v0WgIggdtCu/hrNeWddt51txz0xixTKPIAwIVruDHXk1vLk6i6UHSjv0WJVCYtPf5/RqgTe7Q+aOz3YwMtKH66fHnfwB3ai9n9/iEkIQOujLrfnder5Hf9rXrecTBKHvqJUKxsf68ez5wztcSXpUlE+vV6FVKiRevGgkqw6V89XW/F6rD9URIlARhA5Yc7icz06QnNdRaqXE4lOSuu18giC4Bh+9hoXt3F7splYS6q1jTmpwD4+qdSqlgkWjwrnvm918t6MQu0PmYEkdhTU9V36hI0QyrSB0gK9eQwd2O57Q+Fg/rp8Wx/AIn+45oSAILuW5C0ZwaloIG7Mq2Zlfw+6CWm6cEYdCknhzdRYSTXV5Lp0QjZumb4s6qhQSsgwPfruHR37ch80h88l1Ewj3cevTcYEIVAShQ1JDvdBrlB3u8+PtpubVS0djtTsI9tIR5u2Gt150QhaEgUytVLBgWKizcFttg9X5d3/B2EiMZptL1ErZmV/Df5cecn4d5uPG7JQgxsf49eGojhGBiiB0wG97izvVjNBdo2RyvD+SJLa5CsJgdfzFiSsl0McFunPD9Dge/XE/FruD88dGcMtM12mCKnJUBKED1h6uaPexMf56fI68MUWILceCIBzxw85CMsrqMVntbMqq5HBpXZ+MY3dBDX/sK0GtUHDu6AiCvbUkBHlw9eTYPhlPW8SMiiB0wIHi9tdO+dvcJE4bFoLZ5sCrm+s2CILQf608WM6dn+9ErZSw2uVer50CYDBZufer3ZTWmXA4ZL66cTLTEwO5flpcn+fL/JWYURGEdjLb7FQ3WDlnVHi7jn97bRbP/3mIqnpLD49MEIT+5O55TTv9rPamzPy22jn0FFmWefiHfRwsraOmwcrpI8JICvHg32cPc8nWHSJQEYR2Kqk1cWpaCKmh7XtTUUgSZ40Md8k/fEEQ+k64jxsLhoUAcP6YiHZvY+4OtY1W7vu6aRsywFkjw/jXmUNdOn9OVKYVhHYymm1oVApu+mgby9LLTnr8yntmiiBFEIRWmax2CmsaiQtw75UgoazOxA87inhjdSYV9RZ0agVnjQjngnGRjIn27fHnb017P79FjoogtNNXW/N5Ydnhk+76kSQI8tQS4dv39QcEQXBNOrWS+F5qBrj6UDl3fL6Dmgar87ZHzxzKheOieuX5u0oEKoLQTrsLapv9obdmYpwfL108mkDP3i2DLQiC0JqNWZVc9d7mZoUqYwPcOXtURN8NqoNEjoogtMNXW/P5fmfhSY87e1S4CFIEQXAZSoXETTPiSQ31QqmQOHVoCB9eMx6Nqv98/PfYSGNiYpAkqdm/J598stkxu3fvZtq0aeh0OiIjI3n66ad7ajiC0CWzU4K4durJawv8/bu9PP7zfvYW1vbCqARBEE5sXIwf952awm93TiPzPwt4/fIxRPazuk49uvTzr3/9i+uvv975taenp/P/DQYD8+bNY+7cubz++uvs2bOHa665Bh8fH2644YaeHJYgdNjajAreWpN90uPsDpm312YzOtrXJUpjC4Ig9Hc9Gqh4enoSEhLS6n2ffPIJFouFd999F41Gw9ChQ9m5cyfPP/+8CFQEl/Puupx2HZca6sVT5w4TjQYFl7dkfykT4vxEMULB5fXoItWTTz6Jv78/o0aN4plnnsFmsznv27BhA9OnT0ej0Thvmz9/PgcPHqS6urrNc5rNZgwGQ7N/guAqnjhHBCmC66s32/j7d3tY9PI6yupMfT0cQTihHptRueOOOxg9ejR+fn6sX7+eBx98kOLiYp5//nkASkpKiI1tvuYfHBzsvM/Xt/V93U888QSPPvpoTw1bEFoV6qVj1wnuHxHpw8NnDGFkpE9vDUkQOs1Dq2LLP+b29TAEoV06NKPywAMPtEiQ/eu/9PR0ABYvXszMmTMZPnw4N910E8899xwvvfQSZrO5SwN+8MEHqa2tdf7Lz8/v0vkEoT2unx53wvsvmxDF6Kj2FU0qqTVhstpZn1GB1e7ojuEJgiAMWB2aUbn77ru56qqrTnhMXFzrb+gTJkzAZrORk5NDcnIyISEhlJaWNjvm6Ndt5bUAaLVatFqx/VPoXY0nKfL2+ZZ8Fg4PRa858Z/U++uyWZZeRlFNI6HebtynU4mlIkEQhBPoUKASGBhIYGBgp55o586dKBQKgoKCAJg0aRL/+Mc/sFqtqNVNyVxLliwhOTm5zWUfQegrUxL8efniUby3PodtucdyqGYkBRIboMfmkKkz2U4aqFw2MZqrprhWC3VBEARX1iPJtBs2bOCFF15g165dZGVl8cknn3DXXXdx2WWXOYOQSy65BI1Gw7XXXsu+ffv44osvePHFF1m8eHFPDEkQukSSJKYlBZIU7MHZo8IZGuaFRqlgdJQP76/P5eONeTz1W/pJz6NS9p8iS4IgCK6gR5oSbt++nVtuuYX09HTMZjOxsbFcfvnlLF68uNmyze7du7n11lvZsmULAQEB3H777dx///0dei7RlFDoTXaHzGeb83htZSZ+7mr2Fhk4/i9oWmIA10yJZUyMr9j2KQiCcALt/fwW3ZMFoRMsNgc/7y5ibUYFO/JqyK4wAjAs3Jsofz2GRivPXzBSlNMXBEFog+ieLAg9SKNScM7oCM4ZHYEsy+RUNtBgsZEa4oVC0fMt2wVBEAYLEagIQhdJkkRsgHtfD0MQBGFAEpl9giAIgiC4LBGoCIIgCILgskSgIgiCIAiCyxKBiiAIgiAILksEKoIgCIIguCwRqAiCIAiC4LJEoCIIgiAIgssSgYog9BGLzUG10dLXwxAEQXBpouCbIPSi2gYr6SUGVh4q56ddRUyK8+ffZw9DoxLXDIIgCK0RgYog9CBZltmUXcXewlqCvXToNUqGR/gQ5KXjzjmJ6NTKvh6iIAiCSxOXcYLQQ6qNFq56bwsXvbkRs83BGSPCmJMaTKCnltgAdxGkCEI7ZFcYqaw39/Uw2uRwyPyws7CvhzGgiRkVQehmuZVGXlh6mJ93F2G1y0T4umFotCLLMpIkGhYK7ddgsbE8vYz1mZWkFxsorGnEbHPgq9cQ7a/ntlkJjI3x6+thtlDbaKXMYCIx2LPT5yisaeTVFRl8ujkPCZidEsTf5iaRFu7d+nM2WPlhVyGHS+spqmmk0mjhgrGRnD82ArXyxNfkdSYrDhm83dRAU/DhkGWUCsn5N2uy2imobqC20YZDlrHYHJTVmdhTYOC99dlE+ukZHeXb6dcrtE2SZVnu60F0RXvbRAtCb/jfssO8vDwDi93ByEgf/nn6EMZEizcvof0q6s1syKykwWLj8y357MirafPYAA8tF4+P5PwxkYT56FCd5AO5O1lsDnIqjbhrVTSYbRTVmqg32QD4YH0O6SUG7pybRGqoJ25qJRX1Ftw1SnQaJXUmG7IsMyzcG4fcFNiYrHZKDSb8PbT8vKuI99bnYHe0/HianhRIaognCoWE2eqgxNBIQXUjB4oNWO0tj/fVq9FrVCQEeTAtMYAhoV4EeGpxyDKHSuv5eEMum3OqgKZAxc9dQ3FtIyarA71GSYi3DommmZ1WhuOk1yiZPzQEf3cNRosdm92Byeag0WJDlsEuy0iAVqXEU6diQpw/542J6I4fRb/V3s9vEagIQjc67cU1HCg2MCbaly9vnIRSIWZQhLaZrHa25FSx6mA5xbUmbA4Hy9PLWv3APRmFBFMSAjhzRBhxge6UGcx8t6OQg6V1pIV5E+HrRrivG4EeWrRqBaMiffF113ToOWx2B/uLDfy0q4hPN+VhtNg7PE6hia9ezYOnpTIxzp9IP7dBOdsqAhVB6AVGsw29RokkSdSbbZz50lqyKowoFRK3z07gnFERRPnr+3qYQg/LrjDy1dZ80sK9WTAstNVjZFnmcFk9K9LLyCirJ6O8ngPFBkxWRy+PtsnEOD8+vnZCu2ZhLDYHT/x2gK+3FVB3ZNZE6D4BHlqGhXsR7e9OhK8bEb5uxAS44+OmobCmgcxyI6ekBnc4sHR1IlARhB4kyzJXvLuZNYcruGZKLP88PZUzX17HnsLaFsdOSwzgpYtH4aMfWG8yg53dIVNZb2ZDViUP/7iPmgYrAMnBnkT761ErFVw6MYqhYd78sbeE//x2wHmMK1ArJTb/fW6rH36yLGOyOigxmMipNPLRhlyWp5f1wSiFozQqBTOTAhkV5Yu/h4YgTy3DI3zw68fBiwhUBKEHORwycX//1fn1o2cO5eONuRwuq2/1+DNGhPHChSPFUlA3kmWZsjozW3Oq+WJrPrH+eupMNi6ZEMXYGD9kWearrQUsSy/FapcZG+NLg9nOttxqqowWzDY7CknCy01NoKeWAA8NN82IJ9rfnUaLHaPFdiSpEqz2psTJgupGssqNrDpUzv5iAxZb38yGdIWnTsXji9I4ZUgwek3z/RS5lUau+2Brm7/HgmsJ9NRyWloI0xMDmZ0ShKKfvb+IQEUQupksy+RUNlBqMJFX1cB9X+923qdRKvjwmnFc/9G2NqfGzx0dwXMXjOit4bocs81ObaMVbzc1WpWSKqOFjzfmkhTswalpTcslRxMqK40WNEoFySGeSEBWhZHMsnoKqhsprGnkYEkduwtqWs2RkCSYFOdPYU0juZUNHRqjQmqahi+rc93tsF2lkCA11IuXLxlNbIA70BR4f7O9gBeWHqawprGPRyh0hqdWRaSfHqVCQqmQcFMrccgyWrUSX72acB830sK9GRHpQ5i3ziVyYtr7+d0j25NXrlzJrFmzWr1v8+bNjBs3jpycHGJjY1vcv2HDBiZOnNgTwxL6IYPJyjtrsvFyUxPgocFDqyLIU4enToXZ5iA5pPPbHzuiwWJj0SvrOFTadKWp+suVi1alID7Ik4cWpnL/N3taPcfSA6XYHfKgnFVZnl7K3V/uorrBiq9ezSlDgsmuMLIlpxoAf3cNCoVERb2Z4y+dUkO9KK5t7NCSiSzD+szKTo3TITOggxRoeo3XT4tzBil1JiuP/Lifb7YX9PHIhK6oM9vYX2xo17Gh3jq+uGFSv8mf65EZFYvFQlVVVbPb/vnPf7Js2TIyMzORJMkZqCxdupShQ4c6j/P390etVrf7ucSMysAkyzIrDpbh7aahsLqBAyV1SECwlxa1UolSAZIkcWpaCF66tn9fygwmMsrqmZwQ0OUxFdU0UmW0EO7jxuGyevYV1RLqrSMhyINQbx1FNSb+8+sBVhwsb/Mcz5w3nPPHRnZ5LK7O4ZDJqjCyKbuSX3YXdzpwEHqOp06FTq2kfIAHZkJzCgmePGc454+N6PNZlT6dUdFoNISEhDi/tlqt/PDDD9x+++0tvjH+/v7NjhVcT0W9mV/3FOPtpmZCrD8h3joAluwvpaLeTLSfnmBvHY0WO0NCvVqsk8qyjCzTofVTSZJYfaiC99fntLgvJcST22YnEO3nTk6FkZJaE/nVjeRVGikxmHDXqEgM9qTRYuOb7YUU1jQS6edGpK8eo8VOjL+eeUNC0KkV+Og1hPu4EeylZWd+De+vz2FWchAyMgpJYnSUL5F+TVcdIV46jGYbv+0tIbfSSKnBxPJ0C+V1ZgprGtu1G+L7nYUDOlDZlV/Ds38eZGdeDXVmsTvEldWZbGIHzyDjo1fz2FlpnDEirK+H0iG9kqPyzTffcMEFF5Cbm0tERFOBm6MzKpGRkZhMJpKSkrjvvvs488wzO3RuMaPScQ6HTEF1I9mVRjy0Srx0aqqMFmyOpiqqbmolVodMeZ0Zo9mGt5saH70ad42S2kYbOrUCrUqJzeFga041FfVmFAoJP72GQ6X1FNY0EOSpI8BDQ05lA2sOl+OQ4aWLRzE0zItKo4UAD+1Jx2m22flqawEltSZ+3VNMVoWxx74nnlpVqx+skgSjIn0wWR3kVzd0+o3dU6tibIwv/zorzRn4DETpJQbu/2YPu/Jr+noogjDo6TVKJscHMCrKh8smROOtb/9qRW9wqWTaBQsWAPDrr8d2SVRUVPDhhx8yZcoUFAoF33zzDU8//TTff//9CYMVs9mM2XxsqtJgMBAZGTnoA5XaRis2uwN/Dy2yLFNUa2J/kQGT1Y7Z5qCmwUJ+VQPpJXXsLzL0ydWuQmrKUi81mIkLcCct3JtATy3DI7yJ9NPTaLFTVmeiqMaEJIGbWkmQp44Qbx3+7houf3cT+VX9K9FvQqwf/z47jYSg3sml6Qt2h0x6iYE/9pXy866iHg0oBUFon+lJgTy0MJWkLrQx6Gk9Eqg88MADPPXUUyc85sCBA6SkpDi/LigoIDo6mi+//JJzzz33hI+94ooryM7OZs2aNW0e88gjj/Doo4+2uH0wByofbsjh/37Yh0alIC7AnYLqRurFtHuv8nZTkxDkQVKwJ1F+emL89YyL9WvXzFF/YrLaya1s4FBpHfuKDOzKr2lz940gCL1Po1Tw3tXjmNINeXk9rUcClfLyciorT5wUFxcXh0ZzrADNY489xksvvURhYeFJk2RfeeUVHn/8cYqLi9s8ZqDOqHR0N0idycq6jAoOltSTW2nk2x2ie2dPGBnpg5ebGqUE7loVGpUCm13G7pBRKyWCvXRcNjGaCN/+XwJblmU2Z1exp7CWwppGygxmimsbqW20YrXL1DZaqW10nYJlgiC0dPrwUF6+ZHRfD6NdeiSZNjAwkMDAwHYfL8sy7733HldccUW7dvLs3LmT0NDWy08fpdVq0WoH1lUqwM+7i3hrTRZjonwxWuzUNFipMprx0Ws4e1Q4JqudSqOFjLJ69hUZOFhiOGGDLKF7VBkthHjpiPbXMz7WjxlJgb3a+K0nORwyxQYT23Kr2ZRVyfrMSrLFso0g9Gtbc6rZW1jbZpfp/qhHdv0ctXz5crKzs7nuuuta3PfBBx+g0WgYNWoUAN9++y3vvvsub7/9dk8OqU/JsszKQ+VYbU25JENCvXDTKAGYmRTEivQyvt5W0GIaXZSu7htp4V6MivTF201NvdnG9rxqEoI8iPZ37/WxyLLMDzuLWH24nILqRirqzYT7uDE0zJszR4QxJOzks4myLPPuuhy251aTUVZPbpWxz/rMCILQM0oMJq77YCs3zojD30NLQqBHu94fXFmPBirvvPMOkydPbpazcrzHHnuM3NxcVCoVKSkpfPHFF5x33nk9OaQ+ZbXLFFQ18NySQ9Q0WNGpFSwYFso/Fw7B113DCxeNwmZ3sCWnmk825VLbaKXOZMPQaKWqwYLRbOtUV1Whcx47K41RUb59PQzK6kz87fOdLWqRZJUbWXO4gjdWZ/L1TZMYE+13wvMYGm089vP+Fre7qZWolBIOhyxyTYT/b+/eg6Ks/z2Av1nYK7AssAsLyNUULwkIxQ5Ndk5BguNpLP015nFMm8pSy19pltZ4bUySGZ2p0azOJM00o+Wc0/WYpSh5zA2LIFKJHyqKxi7EZd3lsuyy+zl/8PP5uXLxwsI+C5/XDCPu891nP+/n2V0+++xzYX4qWRuMiGAZgiS9X0m3djggDZSg0WrH5JhQv/5qmk+h7wOOHjcqL1tgutoFjUqGqbHqW97p0u0mdDpdwinEf7tswcHfzXC4+JPxcMibHI3Nc6YiTqMc8ryICN9UmWC1OzEvcxwU0sABx3Z09+ByWyd+qPkLHxy/gJYOx6Dz/nvuBLz88MSb1nCppQNOlxtAANTKIGiUMsiCer/K+sNsxX9+WIbWmzwWY0xclj6QgrUFk0bttX6GdYsK658sSILs5ME//Q5EIglAiDwIWYnhGBeuhEYlRXl9m98dtusvjlQ34kh1I5IiVYgKVUCjkkIfpkCyNhgTo0ORNi4MoTecGdflJnxT1YAj1U240tbZex4apRQNV+04VdeKZG0w/pY1bsDHfOXAb/iy8s8+W8+CZYGIUiv+eRl4FcbrgjFeF4KpcWpEhSpuKU9iZDBcboL1nzvGmixWtHY60NbhgOmqHZkJ4ThS3Xj7C4ox5hP/kRaDVQ9P9Lsm5XbwFhWRsTtdqG1sx88XW3G89q9/HWlBQHq8BrpQOc41taPGbOOLh4lAQEDvJtdJ+lCM14VAo5JBrQhCmFKKaLUCMRoFtMFy4U3E7nTBTdTnqrU36u5xobPbBYfLjR43QaOUIlgeNOhZfokIZ01WVF25CkunE24iEBGs9h6YrtphvtqFBosdZqsdLt4Tm7FRIUUbjH9L1WH1zFSEyP1r24OoTvg2nEZbo3K95vZu/KPRho9PXsR3Z/hTrr+SBUqQogtGqj4Uk/RqTIoJxb1JEX3eVIgIpqt21JhtuNTSgSttXahv7cSF5g7Ut3R6fL0nD5IgVBGEUIUUUaFyxGmUaLjahZ8utN748IyxMSBcJcXfssbh31OjkJkQLhyoIWbcqIwSLe3deHyPkc/2OcqEKaX4e+4EJGlVOP6PZpw1WfGHyQorX3uFMTZEQZIATI5RIyNeg2lxYUjSBiMpUgVdqFxUO9VyozJMiMhjRVs6Hbja5YS1qwc2uxNRajnG60K89mSoqG/D/1aZ0NrpQHO7A2UXWtDdwzvOMsYYuz1TY9VY8eBd0KikCFfJoAuV+/Ts2dyoeMGpulas/Z8qKKWBmBgdiostHTjTYMU9ieGYEqPG/9U2o6bR1ud+2hAZMhPCkZGgQZxGCW1I75NBr1YM+aJQze3dONtgRVunA5ZOJ9o6HbA73XATwe0muAkwW7tw8HfzkB6HMcbY6JedFIEwlRR/2brR3N4Nu9ON+AglEiNUSIwMRpJWhQcm6BA5DA0NNypesPa/q7D/58tenadGJUViZDCiQ+UIVUihVvbuZ6BWBMHudKHJ1o2/bN1o63RAHhQIlSwQKlkQguW9/+rVciREqjAuXAW70wXTVTtMli6Yrd1ostrRZOtGXXMH72jLGGPMK/7ryXuQNyXa6/Plw5NFytLphKXT4usyGGOMMb8wOi5awhhjjLFRiRsVxhhjjIkWNyqMMcYYEy1uVBhjjDEmWrwz7SDmZY3D9ASNr8tgjDHGfGZyrG9PpsqNyiDuTYrAvUl3dvFAxhhjjA0df/XDGGOMMdHiRoUxxhhjosWNCmOMMcZEixsVxhhjjIkWNyqMMcYYEy1uVBhjjDEmWtyoMMYYY0y0uFFhjDHGmGj5/QnfiAgAYLVafVwJY4wxxm7Vtb/b1/6OD8TvGxWbzQYAiI+P93EljDHGGLtdNpsNYWFhA04PoJu1MiLndrvR0NCA0NBQBAQE+LqcYWe1WhEfH4/Lly9Drfbt9RdG2ljNPlZzA2M3+1jNDXD2sZSdiGCz2RAbGwuJZOA9Ufx+i4pEIsG4ceN8XcaIU6vVY+KJ3J+xmn2s5gbGbvaxmhvg7GMl+2BbUq7hnWkZY4wxJlrcqDDGGGNMtLhR8TNyuRwbN26EXC73dSkjbqxmH6u5gbGbfazmBjj7WM0+GL/fmZYxxhhjoxdvUWGMMcaYaHGjwhhjjDHR4kaFMcYYY6LFjQpjjDHGRIsbFZHaunUr7rvvPqhUKmg0mn7HBAQE9PnZv3+/x5jS0lJkZmZCLpfjrrvuQnFx8fAXP0S3kr2+vh6zZ8+GSqVCVFQU1qxZg56eHo8x/pj9RklJSX3WcWFhoceYqqoqzJgxAwqFAvHx8di+fbuPqvWuXbt2ISkpCQqFAgaDAadOnfJ1SV63adOmPut30qRJwnS73Y4VK1YgMjISISEhmDdvHhobG31Y8Z05fvw4HnnkEcTGxiIgIABffPGFx3QiwoYNGxATEwOlUom8vDzU1tZ6jGltbcXChQuhVquh0Wjw9NNPo729fQRT3JmbZV+yZEmf50BBQYHHGH/N7i3cqIiUw+HA448/jmXLlg06bu/evTCZTMLPo48+Kkyrq6vD7Nmz8eCDD6KyshIvvfQSnnnmGXz33XfDXP3Q3Cy7y+XC7Nmz4XA4cPLkSXz88ccoLi7Ghg0bhDH+mr0/W7Zs8VjHL774ojDNarVi5syZSExMRHl5OYqKirBp0yZ88MEHPqx46D799FOsWrUKGzduxK+//or09HTk5+ejqanJ16V53dSpUz3W74kTJ4RpL7/8Mr7++mscOHAAP/zwAxoaGjB37lwfVntnOjo6kJ6ejl27dvU7ffv27XjnnXewZ88elJWVITg4GPn5+bDb7cKYhQsX4syZMzh8+DC++eYbHD9+HEuXLh2pCHfsZtkBoKCgwOM5sG/fPo/p/prda4iJ2t69eyksLKzfaQDo888/H/C+r776Kk2dOtXjtvnz51N+fr4XKxw+A2U/ePAgSSQSMpvNwm3vvfceqdVq6u7uJiL/z35NYmIi7dy5c8Dpu3fvpvDwcCE3EdFrr71GqampI1Dd8MnOzqYVK1YI/3e5XBQbG0vbtm3zYVXet3HjRkpPT+93msViIalUSgcOHBBuq66uJgBkNBpHqELvu/F9y+12k16vp6KiIuE2i8VCcrmc9u3bR0REZ8+eJQD0888/C2O+/fZbCggIoD///HPEah+q/t6zFy9eTHPmzBnwPqMl+1DwFhU/t2LFCmi1WmRnZ+Ojjz7yuFy20WhEXl6ex/j8/HwYjcaRLtOrjEYjpk2bhujoaOG2/Px8WK1WnDlzRhgzWrIXFhYiMjIS06dPR1FRkcdXXEajEQ888ABkMplwW35+PmpqatDW1uaLcofM4XCgvLzcY/1JJBLk5eX55fq7mdraWsTGxiIlJQULFy5EfX09AKC8vBxOp9NjOUyaNAkJCQmjajnU1dXBbDZ75AwLC4PBYBByGo1GaDQa3HPPPcKYvLw8SCQSlJWVjXjN3lZaWoqoqCikpqZi2bJlaGlpEaaN9uy3wu8vSjiWbdmyBQ899BBUKhW+//57LF++HO3t7Vi5ciUAwGw2e/wxB4Do6GhYrVZ0dXVBqVT6ouwhGyjXtWmDjfG37CtXrkRmZiYiIiJw8uRJrFu3DiaTCTt27ADQmzM5OdnjPtcvi/Dw8BGveaiam5vhcrn6XX9//PGHj6oaHgaDAcXFxUhNTYXJZMLmzZsxY8YMnD59GmazGTKZrM9+WtHR0cLzfDS4lqW/9X396zkqKspjelBQECIiIvx+WRQUFGDu3LlITk7G+fPn8frrr2PWrFkwGo0IDAwc1dlvFTcqI2jt2rV4++23Bx1TXV3tsTPdYNavXy/8Pn36dHR0dKCoqEhoVMTE29n92e0si1WrVgm3paWlQSaT4bnnnsO2bdv4NNujwKxZs4Tf09LSYDAYkJiYiM8++8xvmmk2NE888YTw+7Rp05CWlobx48ejtLQUubm5PqxMPLhRGUGrV6/GkiVLBh2TkpJyx/M3GAx488030d3dDblcDr1e3+cIgcbGRqjV6hF/E/Rmdr1e3+cIkGs59Xq98K9Yst9oKMvCYDCgp6cHFy9eRGpq6oA5gX8tC3+j1WoRGBjYby5/zXSrNBoNJk6ciHPnzuHhhx+Gw+GAxWLx2Koy2pbDtSyNjY2IiYkRbm9sbERGRoYw5sYdqXt6etDa2jqqlgXQ+9rXarU4d+4ccnNzx1T2gXCjMoJ0Oh10Ot2wzb+yshLh4eHCJ+2cnBwcPHjQY8zhw4eRk5MzbDUMxJvZc3JysHXrVjQ1NQmbRA8fPgy1Wo0pU6YIY8SS/UZDWRaVlZWQSCRC7pycHLzxxhtwOp2QSqUAenOmpqb65dc+ACCTyZCVlYWSkhLhKDa3242SkhK88MILvi1umLW3t+P8+fNYtGgRsrKyIJVKUVJSgnnz5gEAampqUF9fL4rnsbckJydDr9ejpKREaEysVivKysqEI/9ycnJgsVhQXl6OrKwsAMDRo0fhdrthMBh8VfqwuHLlClpaWoSmbSxlH5Cv9+Zl/bt06RJVVFTQ5s2bKSQkhCoqKqiiooJsNhsREX311Vf04Ycf0u+//061tbW0e/duUqlUtGHDBmEeFy5cIJVKRWvWrKHq6mratWsXBQYG0qFDh3wV65bcLHtPTw/dfffdNHPmTKqsrKRDhw6RTqejdevWCfPw1+zXO3nyJO3cuZMqKyvp/Pnz9Mknn5BOp6Mnn3xSGGOxWCg6OpoWLVpEp0+fpv3795NKpaL333/fh5UP3f79+0kul1NxcTGdPXuWli5dShqNxuNIr9Fg9erVVFpaSnV1dfTjjz9SXl4eabVaampqIiKi559/nhISEujo0aP0yy+/UE5ODuXk5Pi46ttns9mE1zEA2rFjB1VUVNClS5eIiKiwsJA0Gg19+eWXVFVVRXPmzKHk5GTq6uoS5lFQUEDTp0+nsrIyOnHiBE2YMIEWLFjgq0i3bLDsNpuNXnnlFTIajVRXV0dHjhyhzMxMmjBhAtntdmEe/prdW7hREanFixcTgD4/x44dI6Lew9MyMjIoJCSEgoODKT09nfbs2UMul8tjPseOHaOMjAySyWSUkpJCe/fuHfkwt+lm2YmILl68SLNmzSKlUklarZZWr15NTqfTYz7+mP165eXlZDAYKCwsjBQKBU2ePJneeustjzcwIqLffvuN7r//fpLL5RQXF0eFhYU+qti73n33XUpISCCZTEbZ2dn0008/+bokr5s/fz7FxMSQTCajuLg4mj9/Pp07d06Y3tXVRcuXL6fw8HBSqVT02GOPkclk8mHFd+bYsWP9vqYXL15MRL2HKK9fv56io6NJLpdTbm4u1dTUeMyjpaWFFixYQCEhIaRWq+mpp54SPryI2WDZOzs7aebMmaTT6UgqlVJiYiI9++yzfRpyf83uLQFE1x3PyhhjjDEmInweFcYYY4yJFjcqjDHGGBMtblQYY4wxJlrcqDDGGGNMtLhRYYwxxphocaPCGGOMMdHiRoUxxhhjosWNCmOMMcZEixsVxhhjjIkWNyqMMcYYEy1uVBhjjDEmWtyoMMYYY0y0/h+KmnTi0EcwiAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import geopandas\n", "from geodatasets import get_path\n", @@ -604,20 +427,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7IAAAHiCAYAAADVkfAqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wUdf748dfM9s1m03uFhN4JVboUBcTeDj275/1EPfVOT+88T++8s915eh6e3vcUz4K9F0RARHrvEAglhfS6Sbbvzvz+WLIQkkACCUng83w8MGZ2duazk93Zec/n83m/JVVVVQRBEARBEARBEAShm5A7uwGCIAiCIAiCIAiC0BYikBUEQRAEQRAEQRC6FRHICoIgCIIgCIIgCN2KCGQFQRAEQRAEQRCEbkUEsoIgCIIgCIIgCEK3IgJZQRAEQRAEQRAEoVsRgawgCIIgCIIgCILQrYhAVhAEQRAEQRAEQehWtJ3dAEEQBEEQBEEQhHORy+XC4/F0yLb1ej1Go7FDtt0diEBWEARBEARBEAShnblcLmKSY6ivrO+Q7cfHx3P48OHzNpgVgawgCIIgCIIgCEI783g81FfW88CXD2AIMbTrtt12N/+49B94PB4RyAqCIAiCIAiCIAjtyxBiwGBp30BWEMmeBEEQBEEQBEEQuqWRI0fSv39/5s+f39lNOetEj6wgCIIgCIIgCEI3tHHjRqxWa2c3o1OIHllBEARBEARBEAShWxGBrCAIgiAIgiAIgtCtiEBWEARBEARBEARB6FZEICsIgiAIgiAIgiB0KyKQFQRBEARBEARBELoVEcgKgiAIgiAIgiAI3YoIZAVBEARBEARBEIRuRQSygiAIgiAIgiAIQrciAllBEARBEARBEAShWxGBrCAIgiAIgiAIgnBS+/btY+jQocF/JpOJzz//vNPao+20PQuCIAiCIAiCIAjdQp8+fdi2bRsA9fX1pKenM3369E5rj+iRFQRBEARBEARBEFrtyy+/ZOrUqYSEhHRaG0QgKwiCIAiCIAiCcI776aefmDNnDomJiUiS1Oyw4Pnz55Oeno7RaGT06NFs2LCh2W19+OGHXHfddR3c4pMTgawgCIIgCIIgCMI5zm63M2TIEObPn9/s4x988AEPPvggf/zjH9myZQtDhgzhoosuoqysrNF6tbW1rFmzhlmzZp2NZrdIzJEVBEEQBEEQBEHohmpraxv9bjAYMBgMza47c+ZMZs6c2eK2XnjhBe68805uvfVWAF599VW++eYb3njjDR555JHgel988QUzZszAaDS2wys4faJHVhAEQRAEQRAEoRtKSUkhLCws+O/pp58+re14PB42b97MtGnTgstkWWbatGmsXbu20bpdYVgxiB5ZQRAEQRAEQRCEbqmgoACr1Rr8vaXe2FOpqKjA7/cTFxfXaHlcXBzZ2dnB3202Gxs2bOCTTz45vQa3IxHICoIgCIIgCIIgdENWq7VRINvRwsLCKC0tPWv7OxkxtFgQBEEQBEEQBKEbGjlyJP37928xgVNrRUdHo9FomgSppaWlxMfHn9G2O4rokRUEQRAEQRAEQeiGNm7c2C49snq9nqysLJYtW8bll18OgKIoLFu2jHvuueeMt98RRCArCIIgCIIgCIJwjquvr+fAgQPB3w8fPsy2bduIjIwkNTWVBx98kJtvvpkRI0YwatQoXnzxRex2ezCLcVcjAllBEARBEARBEIRuaOTIkWg0GubNm8e8efNOuu6mTZuYMmVK8PcHH3wQgJtvvpk333yT6667jvLych5//HFKSkoYOnQo3333XZMEUF2FpKqq2tmNEARBEARBEARBOJfU1tYSFhbGI8sewWA5vWzCLXHXu3lm6jPYbLazmuypKxHJngRBEARBEARBEIRuRQSygiAIgtCCN998E0mSyM3NPa3n5+bmIkkSf/vb39q3YV1IW45Reno6t9xyS4e3SRAE4XzRXlmLuyMRyAqCILRCw8W6JEmsWrWqyeOqqpKSkoIkSVxyySWntY9XXnmFN9988wxbKnSGb7/9lieeeKKzm9Et/fjjj0iSxI8//tjZTREEQeh2Nm7cyJ49e045P/ZcJAJZQRCENjAajSxcuLDJ8hUrVnDkyBEMhtOfAyMC2e7r22+/5cknn+zsZgiCIAjCeUMEsoIgCG0wa9YsPvroI3w+X6PlCxcuJCsrq8sWDT8VRVFwuVzn3b6F02e32zu7CYIgCMJ5TASygiAIbfCzn/2MyspKlixZElzm8Xj4+OOPmTt3brPPURSFF198kQEDBmA0GomLi+Ouu+6iuro6uE56ejq7d+9mxYoVwSHMkydPDj5eU1PD/fffT0pKCgaDgczMTJ599lkURWm0L7vdzq9//evgen369OFvf/sbJyaolySJe+65h3fffZcBAwZgMBj47rvvAHj//ffJysoiNDQUq9XKoEGDeOmll055bP72t79xwQUXEBUVhclkIisri48//rjJeifb99atW5k5cyZWqxWLxcLUqVNZt25do+c/8cQTSJLUZLvNzdVMT0/nkksuYdWqVYwaNQqj0UjPnj156623mjx/9+7dXHjhhZhMJpKTk3nqqaeaHN/m3HLLLcG5SQ1/u+ba95///IeMjAwMBgMjR45k48aNTdbJzs7m6quvJjIyEqPRyIgRI/jyyy9P2Ybhw4dz5ZVXNlo2aNAgJElix44dwWUffPABkiSxd+/e4LLWHPOGY7tixQruvvtuYmNjSU5ObrE9qqry1FNPkZycjNlsZsqUKezevfuUr0MQBEFom/N5jqyoIysIgtAG6enpjB07lvfee4+ZM2cCsGjRImw2G9dffz3//Oc/mzznrrvu4s033+TWW2/lvvvu4/Dhw/zrX/9i69atrF69Gp1Ox4svvsi9996LxWLh97//PUCwbpvD4WDSpEkUFhZy1113kZqaypo1a3j00UcpLi7mxRdfBALBw6WXXsry5cu5/fbbGTp0KIsXL+ahhx6isLCQf/zjH43a9cMPP/Dhhx9yzz33EB0dTXp6OkuWLOFnP/sZU6dO5dlnnwVg7969rF69ml/96lcnPTYvvfQSl156KTfccAMej4f333+fa665hq+//prZs2efct+7d+9mwoQJWK1WHn74YXQ6Ha+99hqTJ09mxYoVjB49uu1/MODAgQNcffXV3H777dx888288cYb3HLLLWRlZTFgwAAASkpKmDJlCj6fj0ceeYSQkBD+85//YDKZTrn9u+66i6KiIpYsWcLbb7/d7DoLFy6krq6Ou+66C0mSeO6557jyyis5dOgQOp0OCATS48aNIykpKdiGDz/8kMsvv5xPPvmEK664osU2TJgwgffeey/4e1VVFbt370aWZVauXMngwYMBWLlyJTExMfTr1y+4z7Yc87vvvpuYmBgef/zxk/bIPv744zz11FPMmjWLWbNmsWXLFmbMmIHH4znl8RQEQRBab+PGjedt+R0RyAqCILTR3LlzefTRR3E6nZhMJt59910mTZpEYmJik3VXrVrFf//7X959991GPbZTpkzh4osv5qOPPmLu3LlcfvnlPPbYY0RHR3PjjTc22sYLL7zAwYMH2bp1K7169QICwVNiYiLPP/98sAf2yy+/5IcffuCpp54KBsPz5s3jmmuu4aWXXuKee+4hIyMjuN19+/axc+dO+vfvH1x2//33Y7VaWbx4MRqNpk3HZf/+/Y0Cv3vuuYfhw4fzwgsvNAlkm9v3FVdcgdfrZdWqVfTs2ROAm266iT59+vDwww+zYsWKNrXn+H399NNPTJgwAYBrr72WlJQUFixYEMwm/Oyzz1JeXs769esZNWoUECgQ33C8T2bs2LH07t2bJUuWNPnbNcjPzycnJ4eIiAgA+vTpw2WXXcbixYuDycF+9atfkZqaysaNG4Nzre+++27Gjx/Pb3/721MGsv/85z/Zu3cv/fr1Y/Xq1ej1ei666CJWrlwZTAKycuVKxo8fH3zeY4891qZjHhkZybJly0763igvL+e5555j9uzZfPXVV8He6d///vf89a9/PemxFARBEITWEkOLBUEQ2ujaa6/F6XTy9ddfU1dXx9dff93isOKPPvqIsLAwpk+fTkVFRfBfVlYWFouF5cuXn3J/H330ERMmTCAiIqLRNqZNm4bf7+enn34CAgmHNBoN9913X6Pn//rXv0ZVVRYtWtRo+aRJkxoFkgDh4eHY7fZGQ6db6/ggtrq6GpvNxoQJE9iyZUuTdU/ct9/v5/vvv+fyyy8PBlQACQkJzJ07l1WrVlFbW9vmNgH0798/GMQCxMTE0KdPHw4dOhRc9u233zJmzJhgENuw3g033HBa+zzRddddFwxigWB7GtpQVVXFDz/8wLXXXktdXV3wb1xZWclFF11ETk4OhYWFLW6/YXsN74WVK1cycuRIpk+fzsqVK4HA8PRdu3YF1z2dY37nnXee8gbH0qVL8Xg83HvvvY2GWN9///0nfZ4gCIIgtIUIZAVBENooJiaGadOmsXDhQj799FP8fj9XX311s+vm5ORgs9mIjY0lJiam0b/6+nrKyspOub+cnBy+++67Js+fNm0aQHAbeXl5JCYmEhoa2uj5DcNI8/LyGi3v0aNHk33dfffd9O7dm5kzZ5KcnMxtt90WnL96Kl9//TVjxozBaDQSGRlJTEwM//73v7HZbE3WPXHf5eXlOBwO+vTp02Tdfv36oSgKBQUFrWrHiVJTU5ssi4iIaDRHOS8vr9ne1+ba0x5taAhqG9pw4MABVFXlD3/4Q5O/8x//+EeAk75X4uLi6NWrVzBoXblyJRMmTGDixIkUFRVx6NAhVq9ejaIowUD2dI55c++ZEzW8z048njExMY2CeUEQBOHMiTmygiAIQpvMnTuXO++8k5KSEmbOnEl4eHiz6ymKQmxsLO+++26zj8fExJxyX4qiMH36dB5++OFmH+/du3er23285uZ/xsbGsm3bNhYvXsyiRYtYtGgRCxYs4KabbuJ///tfi9tauXIll156KRMnTuSVV14hISEBnU7HggULmi1X1Jq5py1pLpESBHoYm9NSD+KJCbA60qna0JBU6je/+Q0XXXRRs+tmZmaedB/jx49n2bJlOJ1ONm/ezOOPP87AgQMJDw9n5cqV7N27F4vFwrBhw077dZzJ300QBEFof2KOrCAIgtAmV1xxBXfddRfr1q3jgw8+aHG9jIwMli5dyrhx404ZBLQUoGVkZFBfXx/sgW1JWloaS5cupa6urlGvbHZ2dvDx1tDr9cyZM4c5c+agKAp33303r732Gn/4wx9aDKY++eQTjEYjixcvblRLd8GCBa3aZ0xMDGazmX379jV5LDs7G1mWSUlJAY71ZtbU1DS6gXBij3NbpKWlkZOT02R5c+1pTkt/u9ZqGNqr0+lO+XduyYQJE1iwYAHvv/8+fr+fCy64AFmWGT9+fDCQveCCC4JBdVuOeVs0vM9ycnIaDVkuLy9v1AveYPLkyWf1poIgCIJwbhBDiwVBEE6DxWLh3//+N0888QRz5sxpcb1rr70Wv9/Pn//85yaP+Xw+ampqgr+HhIQ0+v34baxdu5bFixc3eaympiZY03bWrFn4/X7+9a9/NVrnH//4B5IkBbMsn0xlZWWj32VZDma8dbvdLT5Po9EgSVKjXtHc3Fw+//zzU+6z4fkzZszgiy++aFQ+p7S0lIULFzJ+/PjgHeeGhFUN80EhUHboZD3GpzJr1izWrVvHhg0bgsvKy8tb7Ek/UUhICECzf7/WiI2NZfLkybz22msUFxc3eby8vPyU22gYMvzss88yePBgwsLCgsuXLVvGpk2bGs0Vbssxb4tp06ah0+l4+eWXGwWoDdm1T2Sz2cjOzsbhcLR5X4IgCML5S/TICoIgnKabb775lOtMmjSJu+66i6effppt27YxY8YMdDodOTk5fPTRR7z00kvB+bVZWVn8+9//5qmnniIzM5PY2FguvPBCHnroIb788ksuueSSYNkYu93Ozp07+fjjj8nNzSU6Opo5c+YwZcoUfv/735Obm8uQIUP4/vvv+eKLL7j//vsbZSxuyR133EFVVRUXXnghycnJ5OXl8fLLLzN06NDgXNvmzJ49mxdeeIGLL76YuXPnUlZWxvz588nMzGxUx/RknnrqKZYsWcL48eO5++670Wq1vPbaa7jdbp577rngejNmzCA1NZXbb7+dhx56CI1GwxtvvEFMTAz5+fmt2teJHn74Yd5++20uvvhifvWrXwXL76SlpbWq/VlZWQDcd999XHTRRWg0Gq6//vo2tWH+/PmMHz+eQYMGceedd9KzZ09KS0tZu3YtR44cYfv27Sd9fmZmJvHx8ezbt4977703uHzixIn89re/BWgUyELrj3lbxMTE8Jvf/Iann36aSy65hFmzZrF161YWLVpEdHR0k/U/++wzbr31VpYvX96odrIgCIIgnIwIZAVBEDrYq6++SlZWFq+99hq/+93v0Gq1pKenc+ONNzJu3Ljgeo8//jh5eXk899xz1NXVMWnSJC688ELMZjMrVqzgr3/9Kx999BFvvfUWVquV3r178+STTwZ73mRZ5ssvv+Txxx/ngw8+YMGCBaSnpwdL9LTGjTfeyH/+8x9eeeUVampqiI+P57rrruOJJ55AllsexHPhhRfy+uuv88wzz3D//ffTo0cPnn32WXJzc1sdyA4YMICVK1fy6KOP8vTTT6MoCqNHj+add95pVM9Up9Px2Wefcffdd/OHP/yB+Ph47r//fiIiIrj11ltbta8TJSQksHz5cu69916eeeYZoqKi+OUvf0liYiK33377KZ9/5ZVXcu+99/L+++/zzjvvoKpqmwPZ/v37s2nTJp588knefPNNKisriY2NZdiwYTz++OOt2saECRP46KOPGpXYycrKwmw24/P5mtSFbe0xb6unnnoKo9HIq6++yvLlyxk9ejTff/99kzJMgiAIgnC6JFVMTBEEQRAEQRAEQWhXtbW1hIWF8ciyRzBYDKd+Qhu46908M/UZevfujUajYd68ecGa4ecL0SMrCIIgCIIgCILQDZ3PWYtFsidBEARBEARBEAShWxGBrCAIgiAIgiAIgtCtiEBWEARBEARBEARB6FZEICsIgiAIgiAIgiB0KyKQFQRBEARBEARBELoVkbX4OIqiUFRURGhoKJIkdXZzBEEQBEEQBOG8pqoqdXV1JCYmnrSe+flq5MiR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Z8/G9OnT2Tn3Ei6V94CAADz77LOYNm0awsLCkJeXhwULFiA+Ph6pqakAmHfqXD15jiyX36EONXPmTLz//vuttm/fvh3jxo3Dli1bsHjxYuTm5kIQBMTHx+PJJ5/Eo48+Cqn0l6baO3bswLx583Dy5ElERUVhyZIllx3e2ZNdLu8AcPbsWTz55JPYsWMHvL29MWPGDKxYsQJy+S/Xt5j3q/fjjz/iqaeeQk5ODsxmM3r37o0HHngA6enpLvNjjx49irS0NBw4cABBQUGYM2cOFi5cKGLk3cOaNWuwatUqlJeXY8iQIXjjjTd4J8SNpk+fjp07d6KmpgbBwcEYM2YMXnzxRcTFxQEATCYT5s+fjw8//BBmsxmpqal48803OazyCu3YsQPjx49vtX3GjBnYsGEDBEHAsmXL8Pbbb6O+vh5jxozBm2++ib59+zqPra2txezZs/HFF19AKpVi2rRpeOONN6DVajvzpXiUS+X9rbfewtSpU3H48GHU19cjIiICkydPxvPPP+/SeIt5J4DL73Q0FrJERERERERuxkK2Y3EdWSIiIiIiIg/EdWSJiIiIiIjIo/TkObK8I0tEREREREQehYUsEREREREReRQWskRERERERORRWMgSERERERGRR2EhS0RERERE5IHYtZiIiIiIiIg8CrsWExERebiCggJIJBJkZWWJHQoRERF1MBayRERERERE5FFYyBIRUZdgsVjEDoGIiIg8BAtZIiISxbhx4zB79mzMnTsXQUFBSE1NxfHjxzFlyhRotVqEhobigQceQHV1tfM5DocDK1euRHx8PFQqFWJiYvDiiy9e9HN8//33GDlyJFQqFcLDw7Fo0SLYbDaXGJ5++mksWLAAAQEBCAsLw/Lly13OkZOTgzFjxkCtViMpKQnbtm2DRCLBpk2b3J0SIiIiaicWskREJJr3338fSqUSu3fvxooVK3DTTTdh6NChOHjwILZs2YKKigrcfffdzuMXL16MFStWYMmSJTh58iQ2btyI0NDQNs9dUlKCW265BcnJyThy5AjeeustvPvuu3jhhRdaxeDt7Y19+/Zh5cqVeO6557B161YAgN1ux9SpU6HRaLBv3z68/fbbeOaZZzouIURERNQu7FpMRESiSUhIwMqVKwEAL7zwAoYOHYqXXnrJuX/9+vWIjo7GTz/9hPDwcLz++utYs2YNZsyYAQCIi4vDmDFj2jz3m2++iejoaKxZswYSiQT9+vVDaWkpFi5ciKVLl0IqbbmWO2jQICxbtswZz5o1a5CRkYFJkyZh69atyMvLw44dOxAWFgYAePHFFzFp0qQOywkREVF7JScnQyaTIS0tDWlpaWKH06lYyBIRkWiGDx/u/P+RI0ewfft2aLXaVsfl5eWhvr4eZrMZEyZMaNe5s7OzMXr0aEgkEue2G264AQaDAcXFxYiJiQHQUsieLzw8HJWVlQCAU6dOITo62lnEAsDIkSPb/wKJiIg6UE9efoeFLBERicbb29v5f4PBgNtuuw2vvPJKq+PCw8Nx5syZDolBoVC4PJZIJHA4HB3yuYiIiMg9OEeWiIi6hGHDhuHEiRPo1asX4uPjXT68vb2RkJAALy8vZGRktOt8/fv3R2ZmJgRBcG7bvXs3fHx8EBUV1a5zJCYmoqioCBUVFc5tBw4cuLIXRkRERG7HQpaIiLqEtLQ01NbW4t5778WBAweQl5eHb775BrNmzYLdbodarcbChQuxYMEC/OMf/0BeXh727t2Ld999t83zPfXUUygqKsKcOXOQk5ODzz//HMuWLUN6erpzfuzlTJo0CXFxcZgxYwaOHj2K3bt3489//jMAuAxZJiIios7FQpaIiLqEiIgI7N69G3a7HZMnT8bAgQMxd+5c+Pn5OQvPJUuWYP78+Vi6dCn69++Pe+65xzmf9UKRkZHYvHkz9u/fj8GDB+OJJ57Aww8/7CxE20Mmk2HTpk0wGAxITk7GI4884uxarFarr/1FExER0VWRCOePuSIiIqJL2r17N8aMGYPc3FzExcWJHQ4REXVRer0eOp0OM2fOhFKpdOu5LRYLNmzYgIaGBjZ7IiIiotY+++wzaLVaJCQkIDc3F7///e9xww03sIglIiISEQtZIiKiS2hsbMTChQtRWFiIoKAgTJw4Ea+++qrYYREREfVoLGSJiIgu4cEHH8SDDz4odhhERER0HjZ7IiIiIiIi8kDJyclISkrC2rVrxQ6l0/GOLBERERERkQc6cOBAj232xDuyRERERERE5FFYyBIREREREZFHYSFLREREREREHoWFLBEREREREXkUNnsiIiIiIiLqIBaLxSPO6WkkgiAIYgdBRERERETUnZhMJvTu3Rvl5eUdcv6wsDDk5+dDrVZ3yPm7OhayREREREREHcBkMnXY3VOlUtlji1iAhSwRERERERF5GDZ7IiIiIiIiIo/CQpaIiIiIiIg8CgtZIiIiIiIi8igsZImIiIiIiMijsJAlIiIiIiIij8JCloiIiIiIiDwKC1kiIiIiIiLyKP8PzjDwfldpWrsAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", From b9c5bf229c7ff9d33bd1a748eafff84e5bb922d4 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 20 Aug 2024 22:02:48 -0700 Subject: [PATCH 069/163] pandas content --- 0-coursework/week_4.ipynb | 55 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/0-coursework/week_4.ipynb b/0-coursework/week_4.ipynb index 17aad03..40899df 100644 --- a/0-coursework/week_4.ipynb +++ b/0-coursework/week_4.ipynb @@ -6,14 +6,65 @@ "source": [ "# Week 4\n", "\n", - "Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs\n", + "**Pandas week!**\n", + "\n", + "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to a particular type of data that is multidimensional, involving measurements over time. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", + "\n", + "**Pandas** are playfun and memorable, just like **Pandas**!\n", "\n", "**Fun detours**\n", "* Use openai chatgpt to do some text AI\n", "* Web page hosted in python\n", "\n", "# How to approach learning pandas\n", - "Start with simple problems. Import a clean excel file. " + "Start with simple problems. Import a clean excel file. \n", + "\n", + "## Basics\n", + "We use pandas to make **DataFrame**s and **Series**. A single column of a dataframe is a series, and it has some different built in functinoality than a dataframe. \n", + "\n", + "## Pandas Objects - DataFrames and Series\n", + "The DataFrame is the primary pandas opject we will work with. \n", + "\n", + "## Note Regading inplace=True\n", + "changed_dataframe = df.some_modification()\n", + "\n", + "Pandas is phasing out inplace modification. It can still be done by passing the 'inplace=True'\n", + "\n", + "## Selecting Columns\n", + "a_series = df['some_col'] \n", + "a_dataframe = df[['a_col', 'another_col']]\n", + "\n", + "## Selecting Rows\n", + "\n", + "## Iterating over rows\n", + "\n", + "## Type Conversions\n", + "Freqently string to numeric\n", + "String to datetime\n", + "\n", + "### Datetime Conversions\n", + "\n", + "## String Operations\n", + "\n", + "\n", + "## Concatenation\n", + "When we read in multiple files, we can concatenate them into a single dataframe. \n", + "Example should show adding an identifier row and pulling date from file name.\n", + "\n", + "## Join Operations\n", + "\n", + "## Stack and Unstack (sort of like a povit table)\n", + "**Stack** - This function pivots the columns of a DataFrame into its index, effectively \"stacking\" the data vertically. It converts a DataFrame from a wide format to a long format.\n", + "**Unstack** - This is the reverse of stack. It pivots the index of a DataFrame back into columns, converting it from a long format to a wide format.\n", + "\n", + "What does this mean and why!!!???\n", + "\n", + "## Plotting\n", + "\n", + "## Exporting files\n", + "### Plain Excel\n", + "### Multiple Sheets Excel\n", + "### Other" ] }, { From e354d5cdff86242a76d3e444f433c7825cec602d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 16:51:26 -0700 Subject: [PATCH 070/163] Reorganizing --- 0-coursework/grades.csv | 2 + 0-coursework/nasas fireballs.csv | 916 ++++++++++++++++++ 0-coursework/simple_text.txt | 1 + 0-coursework/stundent_grades.json | 1 + EXAMPLES/.hangman.py.swp | Bin 12288 -> 0 bytes fireballs.ipynb | 390 ++++++++ .../1-git_and_github}/.ignore/git-model.png | Bin .../.ignore/graph_reference.png | Bin .../1-git_and_github}/README.md | 0 .../2-python_basics}/README.md | 0 .../2-python_basics}/problems.py | 0 .../3-files_and_paths}/README.md | 0 .../3-files_and_paths}/problems.py | 0 .../4-system_and_env}/README.md | 0 .../4-system_and_env}/problems.py | 0 .../5-data_manipulation}/README.md | 0 .../5-data_manipulation}/problems.py | 0 .../6-exception_handling}/README.md | 0 .../7-unit_testing}/README.md | 0 {8-pandas => legacy/8-pandas}/README.md | 0 {EXAMPLES => legacy/EXAMPLES}/args.py | 0 {EXAMPLES => legacy/EXAMPLES}/hangman.py | 0 {EXAMPLES => legacy/EXAMPLES}/loop_else.py | 0 {EXAMPLES => legacy/EXAMPLES}/readfiles.py | 0 .../EXAMPLES}/universal_nogui_widget.py | 0 .../EXAMPLES}/variable_scope.py | 0 {EXAMPLES => legacy/EXAMPLES}/wordlist | 0 {EXAMPLES => legacy/EXAMPLES}/writefile.py | 0 0-coursework/week_1.ipynb => week_1.ipynb | 0 0-coursework/week_2.ipynb => week_2.ipynb | 0 0-coursework/week_3.ipynb => week_3.ipynb | 0 0-coursework/week_4.ipynb => week_4.ipynb | 0 week_5.ipynb | 38 + 33 files changed, 1348 insertions(+) create mode 100644 0-coursework/grades.csv create mode 100644 0-coursework/nasas fireballs.csv create mode 100644 0-coursework/simple_text.txt create mode 100644 0-coursework/stundent_grades.json delete mode 100644 EXAMPLES/.hangman.py.swp create mode 100644 fireballs.ipynb rename {1-git_and_github => legacy/1-git_and_github}/.ignore/git-model.png (100%) rename {1-git_and_github => legacy/1-git_and_github}/.ignore/graph_reference.png (100%) rename {1-git_and_github => legacy/1-git_and_github}/README.md (100%) rename {2-python_basics => legacy/2-python_basics}/README.md (100%) rename {2-python_basics => legacy/2-python_basics}/problems.py (100%) rename {3-files_and_paths => legacy/3-files_and_paths}/README.md (100%) rename {3-files_and_paths => legacy/3-files_and_paths}/problems.py (100%) rename {4-system_and_env => legacy/4-system_and_env}/README.md (100%) rename {4-system_and_env => legacy/4-system_and_env}/problems.py (100%) rename {5-data_manipulation => legacy/5-data_manipulation}/README.md (100%) rename {5-data_manipulation => legacy/5-data_manipulation}/problems.py (100%) rename {6-exception_handling => legacy/6-exception_handling}/README.md (100%) rename {7-unit_testing => legacy/7-unit_testing}/README.md (100%) rename {8-pandas => legacy/8-pandas}/README.md (100%) rename {EXAMPLES => legacy/EXAMPLES}/args.py (100%) rename {EXAMPLES => legacy/EXAMPLES}/hangman.py (100%) rename {EXAMPLES => legacy/EXAMPLES}/loop_else.py (100%) rename {EXAMPLES => legacy/EXAMPLES}/readfiles.py (100%) rename {EXAMPLES => legacy/EXAMPLES}/universal_nogui_widget.py (100%) rename {EXAMPLES => legacy/EXAMPLES}/variable_scope.py (100%) rename {EXAMPLES => legacy/EXAMPLES}/wordlist (100%) rename {EXAMPLES => legacy/EXAMPLES}/writefile.py (100%) rename 0-coursework/week_1.ipynb => week_1.ipynb (100%) rename 0-coursework/week_2.ipynb => week_2.ipynb (100%) rename 0-coursework/week_3.ipynb => week_3.ipynb (100%) rename 0-coursework/week_4.ipynb => week_4.ipynb (100%) create mode 100644 week_5.ipynb diff --git a/0-coursework/grades.csv b/0-coursework/grades.csv new file mode 100644 index 0000000..6ef211c --- /dev/null +++ b/0-coursework/grades.csv @@ -0,0 +1,2 @@ +name,math,science,history +Stanley,85,90,92Casey,75,80,85Taylor,95,100,100 \ No newline at end of file diff --git a/0-coursework/nasas fireballs.csv b/0-coursework/nasas fireballs.csv new file mode 100644 index 0000000..9814ea4 --- /dev/null +++ b/0-coursework/nasas fireballs.csv @@ -0,0 +1,916 @@ +date/time for peak brightness,latitude,longitude,altitude(km),velocity(km/s),velocity in x direction,velocity in y direction,velocity in z direction,radiated energy,total impact energy +2022-04-21 22:15:28,55.5S,68.9W,28.4,12.7,-4.2,11.6,3.2,3.9e10,0.13 +2022-04-12 21:59:12,8.2S,57.8E,23.8,20.6,-19.3,-6.3,3.6,5.2e10,0.17 +2022-04-04 00:30:39,3.2S,64.3W,31.5,19.7,-17.6,5.3,-7.2,2.7e10,0.095 +2022-03-30 18:19:18,45.9S,171.4W,74.0,2.0e10,0.073,,,, +2022-03-28 10:20:24,7.7S,74.3E,29.0,19.6,-16.6,-10.4,0.1,37.8e10,0.98 +2022-03-24 03:43:42,1.9N,20.6W,56.7,18.2,-12.4,11.4,6.9,7.6e10,0.24 +2022-03-11 21:22:46,70.0N,9.1W,33.3,17.2,-11.5,-5.3,-11.7,185.1e10,4 +2022-03-06 15:06:15,4.1S,99.5W,2.0e10,0.073,,,,, +2022-03-03 00:03:03,50.4S,45.9E,72.0,2.1e10,0.076,,,, +2022-02-17 12:08:06,33.5N,38.9W,41.0,2.7e10,0.095,,,, +2022-02-17 03:53:24,5.4N,56.4E,32.4,21.5,-4.4,-19.6,-7.7,6.5e10,0.21 +2022-02-07 20:06:26,28.7S,11.4E,26.5,13.1,-8.9,-7.3,-6.3,348.0e10,7 +2022-02-03 19:50:40,13.3S,142.2E,36.0,22.8,17.6,9.7,-10.8,15.2e10,0.44 +2022-01-30 02:06:18,50.0N,38.0W,36.6,20.0,-10.8,16.8,1.0,5.4e10,0.18 +2022-01-28 05:04:45,4.5S,73.9W,37.0,34.1e10,0.9,,,, +2022-01-11 03:33:13,58.4S,160.2W,40.8,22.8,-2.5,5.3,22.0,126.4e10,2.9 +2022-01-01 20:23:04,66.1N,152.6W,35.5,14.5e10,0.42,,,, +2021-12-29 03:15:35,69.7S,115.0E,44,22.0,7.4,-8.6,18.8,2.0e10,0.073 +2021-12-23 21:27:58,4.9S,29.6W,37,2.1e10,0.076,,,, +2021-12-20 23:15:55,62.7N,60.3E,56,18.2,10.3,-7.1,-13.2,3.2e10,0.11 +2021-12-10 01:19:06,47.5S,172.6E,27.5,5.0e10,0.16,,,, +2021-11-28 18:06:50,32.6N,113.5E,38.4,19.7,0.2,-2.2,-19.6,4.0e10,0.13 +2021-11-17 15:53:21,6.8S,119.1E,35.0,23.0,7.0,-18.3,-12.0,2.4e10,0.086 +2021-11-08 05:28:28,33.8S,7.7W,36,3.3e10,0.11,,,, +2021-10-28 09:10:30,4.1S,138.7W,35.2,3.0e10,0.1,,,, +2021-10-21 10:32:02,51.5N,51.4E,30,15.9,-14.1,-7.0,-1.9,3.7e10,0.13 +2021-10-20 08:41:50,13.8N,140.4W,28,6.0e10,0.19,,,, +2021-10-20 00:43:57,59.0N,154.3E,31.4,27.5,12.9,4.2,-23.9,2.0e10,0.073 +2021-09-29 10:50:59,53.9N,148.0W,28.0,21.2,-3.5,-9.0,-18.9,13.7e10,0.4 +2021-09-06 17:55:42,2.1S,111.8W,26.0,13.6,-4.4,6.9,10.9,3.1e10,0.11 +2021-07-30 08:06:34,7.8S,90.1E,63.0,14.6e10,0.42,,,, +2021-07-29 13:19:57,42.4N,98.4E,26.4,14.7,-1.6,-11.9,-8.4,3.7e10,0.13 +2021-07-07 13:41:14,3.3e10,0.11,,,,,,, +2021-07-05 03:46:24,44.3N,164.2W,43.4,15.7,0.7,15.7,-0.5,74e10,1.8 +2021-06-09 05:43:59,17.9S,55.3W,2.3e10,0.082,,,,, +2021-05-16 15:51:08,52.1S,171.2W,37.0,3.8e10,0.13,,,, +2021-05-06 05:54:27,34.7S,141.0E,31.0,26.6,9.6,-24.4,-4.6,2.1e10,0.076 +2021-05-02 14:12:49,12.3N,43.4W,2.5e10,0.089,,,,, +2021-04-13 02:16:47,26.8N,79.1W,44.4,14.1,-2.8,12.6,5.6,2.1e10,0.076 +2021-04-02 15:52:58,71.2N,106.7E,40.0,-8.9,6.3,-9.0,13.7e10,0.4,14.1 +2021-03-06 08:43:06,48.6S,90.4E,31.1,12.7,-4.7,12.0,14.1e10,0.41,18.1 +2021-03-05 13:50:01,81.1S,141.1E,32.5,10.1,-8.4,19.2,3.9e10,0.13,23.3 +2021-02-28 03:47:37,9.2N,64.1W,2.8e10,0.098,,,,, +2021-02-09 23:27:29,75.8N,92.8W,31.0,-5.2,6.3,-10.3,3.0e10,0.1,13.1 +2021-02-02 10:03:21,48.7N,80.1E,20,4.0,-6.7,-10.1,3.1e10,0.11,12.8 +2021-01-31 02:59:39,5.3N,115.2E,39.4,14.0,-5.8,1.7,26.7e10,0.72,15.2 +2021-01-29 16:12:47,38.8N,51.3W,30.0,-14.2,1.9,-.6,7.7e10,0.24,14.3 +2021-01-25 03:01:37,38.5N,47.6W,19.1,7.5e10,0.23,,,, +2021-01-24 07:33:43,45.0S,95.5E,37.5,13.3,-3.7,13.3,6.1e10,0.2,19.2 +2020-12-29 20:32:22,14.9N,158.2W,33.0,-3.0,10.2,-9.7,4.9e10,0.16,14.4 +2020-12-28 17:27:53,36.8N,54.7W,28.3,1.5,3.5,-14.7,5.7e10,0.18,15.2 +2020-12-22 23:23:33,31.9N,96.2E,35.5,13.6,-2.6,5.9,-12.1,489.8e10,9.5 +2020-11-28 16:34:11,33.3N,135.1E,28.1,19.6,1.8,-16.5,-10.4,2.6e10,0.092 +2020-11-25 12:20:50,30.5S,81.0W,2.1e10,0.076,,,,, +2020-11-07 21:27:04,59.8N,16.8E,22.3,16.7,-10.8,1.2,-12.7,11.1e10,0.33 +2020-10-26 15:09:10,5.9S,160.4E,28.5,17.6,10.9,-13.8,-0.1,11.4e10,0.34 +2020-10-23 20:51:39,30.0N,71.9W,48.0,8.0e10,0.25,,,, +2020-10-22 17:39:33,22.0N,133.5W,40.0,17.6,-9.4,14.1,-4.9,4.4e10,0.15 +2020-10-21 18:57:33,12.9N,150.2W,2.2e10,0.079,,,,, +2020-10-21 06:38:49,29.7S,93.9W,39,2.7e10,0.095,,,, +2020-10-19 07:05:47,48.6N,93.9E,40.7,2.1e10,0.076,,,, +2020-10-18 10:52:43,11.4S,135.8W,36.0,16.4,15.6,1.5,4.9,3.6e10,0.12 +2020-09-18 08:05:27,2.4N,169.7W,46.0,11.7,10.2,2.9,-4.9,4.1e10,0.14 +2020-08-30 16:08:22,26.0N,133.5E,27.8,23.4,7.8,-21.7,3.7,6.4e10,0.2 +2020-08-02 16:36:25,35.1S,34.2W,38.0,11.1,0.5,6.0,9.3,7.4e10,0.23 +2020-07-22 02:55:40,20.0S,103.8W,36.0,2.2e10,0.079,,,, +2020-07-20 21:25:09,51.8S,11.2W,31.6,14.1,-2.9,-1.0,-13.8,5.0e10,0.16 +2020-07-12 07:50:32,48.7S,74.0E,29.4,18.3,-5.0,-13.0,-11.9,7.5e10,0.23 +2020-05-27 17:30:18,40.8N,41.7E,29.3,14.9,-6.0,-7.3,-11.5,5.7e10,0.18 +2020-05-18 01:11:09,38.7S,77.2E,25,16.2e10,0.46,,,, +2020-05-12 23:22:56,15.9N,174.2E,8.3e10,0.26,,,,, +2020-05-09 09:37:15,7.2N,44.2W,52.5,4.1e10,0.14,,,, +2020-05-09 02:56:11,44.8N,131.0W,31.2,14.5,-13.0,-4.0,-5.0,4.1e10,0.14 +2020-04-28 05:43:17,20.1N,109.4W,2.1e10,0.076,,,,, +2020-04-18 13:08:38,12.5N,49.8W,2.7e10,0.095,,,,, +2020-04-14 11:11:16,65.6S,45.6W,2.0e10,0.073,,,,, +2020-03-26 23:27:56,38.3S,23.5E,26.5,20.7,-10,3.2,17.8,12.4e10,0.37 +2020-03-23 16:51:51,24.4S,67.9W,25,13.3e10,0.39,,,, +2020-03-22 06:44:29,2.5e10,0.089,,,,,,, +2020-03-04 20:25:59,53.3S,90.8E,24.3,19.8,-5.2,2.2,19.0,39.4e10,1 +2020-02-28 09:30:34,45.7N,15.1E,34.5,21.5,-18.2,-11.3,-2.1,11.5e10,0.34 +2020-02-24 22:21:28,3.6N,96.0W,2.0e10,0.073,,,,, +2020-02-10 23:48:17,28.2N,76.7E,41.7,31.7,-27.8,-14.3,-5.2,2.7e10,0.095 +2020-01-27 05:39:15,30.4N,1.5E,32.5,19.8,-2.0,-16.6,-10.6,4.4e10,0.15 +2020-01-24 11:13:31,28.0N,35.8W,32.0,21.2,-18.6,-9.0,-4.7,2.6e10,0.092 +2020-01-21 20:07:44,33.1N,34.3E,43.3,27.4,-7.5,-23.5,-11.9,2.8e10,0.098 +2020-01-17 21:29:49,19.4N,66.0W,14.5,15.5,-13.2,8.1,1.2,9.7e10,0.29 +2020-01-16 09:31:42,71.7S,116.4W,27.8,12.9,9.8,-4.5,7.0,5.9e10,0.19 +2020-01-15 06:31:39,23.7S,125.2W,31.5,19.6e10,0.55,,,, +2020-01-06 11:03:50,70.4S,17.5W,4.5e10,0.15,,,,, +2019-12-21 14:30:52,56.5N,147.6W,35.5,22.2,14.9,-8.1,-14.3,6.5e10,0.21 +2019-12-11 01:19:11,47.7N,161.7E,37,17.8,13.7,-10.9,-3.3,3.9e10,0.13 +2019-12-06 10:19:57,3.3S,37.7W,19.5,4.6e10,0.15,,,, +2019-12-03 06:46:27,5.6N,52.2W,61.5,4.2e10,0.14,,,, +2019-11-28 20:30:54,35.7N,31.7W,35,13.0,-11.6,-2.5,-5.4,2.7e10,0.095 +2019-11-28 13:22:10,2.6e10,0.092,,,,,,, +2019-11-28 11:55:02,22.1S,25.7E,22.5,24.7,-22.8,-5.5,7.6,2.5e10,0.089 +2019-11-05 11:24:51,10.4S,143.3W,38.0,27.4,5.2,12.3,23.9,11.0e10,0.33 +2019-10-22 22:21:15,12.0N,76.0W,40.7,2.7e10,0.095,,,, +2019-10-10 16:16:36,44.3N,122.9E,47.3,14.1,1.5,-12.9,-5.4,20.6e10,0.57 +2019-09-28 10:40:20,12.5S,107.2W,52,20.4,-10.1,11.2,13.7,2.3e10,0.082 +2019-09-27 13:35:46,25.7N,28.4W,3.4e10,0.12,,,,, +2019-09-14 12:39:34,38.6S,33.5W,38,15.9,-12.9,8.1,4.6,10.9e10,0.33 +2019-09-13 02:02:04,18.6S,126.9E,27.4,13.5,5.2,-8.1,9.5,4.2e10,0.14 +2019-09-12 12:49:48,54.5N,9.2E,42,18.5,-18.1,-0.4,3.7,16.9e10,0.48 +2019-09-12 02:34:58,24.9N,47.8W,30.6,17.2,-11.7,11.7,4.6,5.9e10,0.19 +2019-08-24 12:02:59,21.9N,130.4W,39.8,13.4,11.1,-5.2,5.4,4.0e10,0.13 +2019-08-22 21:47:29,24.4S,92.9W,30.2,2.0e10,0.073,,,, +2019-08-16 20:36:05,38.9N,7.0E,36.0,14.9,-3.9,4.0,-13.8,2.5e10,0.089 +2019-07-23 20:42:58,44.6N,147.6W,30.6,16.1,1.5,15.1,-5.5,25.5e10,0.69 +2019-06-30 16:52:58,21.2N,129.5W,59.0,42.3,25.2,31.2,-13.3,3.2e10,0.11 +2019-06-30 08:11:29,2.5S,168.7E,2.1e10,0.076,,,,, +2019-06-22 21:25:48,14.9N,66.2W,25.0,14.9,-13.4,6.0,2.5,294.7e10,6 +2019-06-20 06:07:32,7.3N,67.6W,37.0,2.8e10,0.098,,,, +2019-05-26 10:07:55,56.6N,25.3W,24.4,17.5,3.8,-5.8,16.1,4.2e10,0.14 +2019-05-25 06:44:04,19.2S,89.4E,29.2,15.8,0.2,-15.7,2.1,4.9e10,0.16 +2019-05-22 15:16:49,10.8N,37.3W,32.6,9.5e10,0.29,,,, +2019-05-21 13:21:35,38.8S,137.5E,31.5,11.5,4.4,-8.5,6.4,65.6e10,1.6 +2019-05-19 14:47:03,23.6S,132.8E,33.3,15.2,7.3,-12.2,5.3,3.3e10,0.11 +2019-05-12 22:41:48,6.2N,57.1W,2.1e10,0.076,,,,, +2019-05-04 15:35:46,28.4N,88.3W,26.5,2.2e10,0.079,,,, +2019-04-22 21:42:11,48.8S,67.8E,33.3,11.4,3.4,-4.2,10.0,12.4e10,0.37 +2019-04-14 17:54:33,18.3N,74.6W,30.6,15.9,-2.5,5.9,-14.6,2.9e10,0.1 +2019-04-06 11:59:09,56.5N,94.9E,41.5,18.1,6.2,11.1,-12.9,7.0e10,0.22 +2019-04-04 22:19:01,35.3N,93.9W,2.8e10,0.098,,,,, +2019-03-27 12:50:34,41.8S,7.4W,2.2e10,0.079,,,,, +2019-03-19 02:06:39,24.0S,140.3E,28.7,16.2,10.2,0.4,12.6,2.0e10,0.073 +2019-03-15 12:26:56,63.7N,95.7E,31.5,14.4,5.4,-13.2,1.7,4.6e10,0.15 +2019-02-18 10:00:43,15.5S,25.3E,26,20.8,-16.6,-12.6,0.6,195.8e10,4.2 +2019-02-01 18:17:10,22.5N,83.8W,23.7,16.3,-2.4,13.6,8.7,57.9e10,1.4 +2019-01-29 20:47:20,2.5e10,0.089,,,,,,, +2019-01-22 09:18:01,18.0N,6.5E,42.5,11.6,-8.6,-5.9,5.0,3.6e10,0.12 +2018-12-23 23:38:03,47.5S,174.4W,31.8,16.5,9.9,7.6,10.8,8.9e10,0.27 +2018-12-18 23:48:20,56.9N,172.4E,26.0,13.6,6.3,-3.0,-31.2,3.13e13,49 +2018-11-20 17:30:28,25.3N,6.7W,27.4,17.4,-10.1,13.9,3.0,42.2e10,1.1 +2018-11-17 21:48:24,47.3N,172.9W,32.5,19.1,7.6,17.3,-2.7,22.0e10,0.61 +2018-11-15 08:02:44,42N,57W,2.0e10,0.073,,,,, +2018-11-14 04:03:47,37.6S,83.5E,37,3.8e10,0.13,,,, +2018-10-24 21:19:07,6.7S,148.6W,33.3,4.7e10,0.16,,,, +2018-10-22 07:11:03,2.6e10,0.092,,,,,,, +2018-10-05 00:27:04,39.8S,31.7W,31.5,14.7,-13.2,-6.5,-0.4,3.8e10,0.13 +2018-09-25 14:10:33,23.5S,56.8E,33.0,16.5,-16.2,2.8,0.6,80.6e10,1.9 +2018-09-25 00:16:59,34.3S,44.9E,40.7,12.5,-11.0,2.5,-5.5,5.3e10,0.17 +2018-09-20 18:29:03,67.3S,75.1E,11.1,-5.6,-7.9,5.5,8.3e10,0.26, +2018-09-17 01:08:02,6.8S,27.8W,15.0e10,0.43,,,,, +2018-09-13 00:51:21,42.5N,50.1W,4.2e10,0.14,,,,, +2018-08-27 04:36:45,1.7S,141.4E,33.0,16.1,9.8,-9.6,-8.4,2.4e10,0.086 +2018-08-21 12:26:14,39.2S,162.9W,37.0,2.2e10,0.079,,,, +2018-07-27 09:35:14,58.8S,105.8E,32.0,10.5e10,0.32,,,, +2018-07-25 21:55:26,76.9N,69.0W,43.3,24.4,20.4,12.9,-3.8,87.7e10,2.1 +2018-07-17 15:17:37,82.5N,136.7W,21.1e10,0.59,,,,, +2018-06-26 17:51:53,32.0N,12.1E,63.0,14.1,-10.0,-1.0,-9.9,2.9e10,0.1 +2018-06-21 01:16:20,52.8N,38.1E,27.2,14.4,-8.9,-4.3,-10.5,122.4e10,2.8 +2018-06-02 16:44:12,21.2S,23.3E,28.7,16.9,0.9,-16.4,3.9,37.5e10,0.98 +2018-05-12 03:26:46,6.5S,173.7E,34,19.3e10,0.54,,,, +2018-05-08 02:27:13,32N,60.7W,7.3e10,0.23,,,,, +2018-05-03 07:23:59,46.9N,7.5W,39,11.5,1.3,-2.1,-11.2,3.8e10,0.13 +2018-04-30 13:17:57,45.5S,1.4W,34,13.1,8.7,-9.5,2.5,3.0e10,0.1 +2018-04-21 12:06:04,59.0S,45.8E,28.2,14.6,7.1,-4.6,11.9,3.6e10,0.12 +2018-04-19 14:02:27,7.5N,3.6E,30,20.9,-9.1,-2.5,18.6,7.2e10,0.23 +2018-04-19 13:39:38,22.2S,72.6E,31.5,10.9,-5.9,-9.1,1.4,51.2e10,1.3 +2018-04-07 03:05:09,72.4N,78.7W,31.5,8.6e10,0.27,,,, +2018-02-21 01:28:03,13.5S,37.1W,31.5,13.1,-0.9,13.1,-0.4,7.1e10,0.22 +2018-02-15 13:38:22,43.8S,1.1W,50.7,2.7e10,0.095,,,, +2018-02-12 02:15:19,15.9S,58.9W,3.9e10,0.13,,,,, +2018-02-08 22:21:41,42.9N,179.7E,43.5,25.9e10,0.7,,,, +2018-02-01 12:21:36,19.4S,104.3E,37.0,16.5,8.1,-8.4,-11.7,19.0e10,0.53 +2018-01-22 22:06:30,14.0N,17.4W,3.2e10,0.11,,,,, +2018-01-15 02:18:38,52.0S,57.2E,43.6,23.7,18.6,-12.1,8.4,19.9e10,0.56 +2018-01-06 21:24:22,55.8N,52.5E,26.0,21.0,0.8,2.2,-20.9,2.8e10,0.098 +2018-01-06 18:24:28,39.5S,12.8E,26.0,3.6e10,0.12,,,, +2017-12-31 09:36:10,63.5S,101.3W,64.5,4.4e10,0.15,,,, +2017-12-29 12:47:31,14.6N,49.5W,38.0,11.0e10,0.33,,,, +2017-12-28 17:45:44,11.4e10,0.34,,,,,,, +2017-12-15 13:14:37,60.2N,170.0E,20.0,31.4,27.8,-4.7,-13.9,311.4e10,6.4 +2017-11-19 04:17:32,24.2S,135.0E,33.3,11.4,6.7,-3.4,8.6,2.8e10,0.098 +2017-10-26 22:05:35,21.3S,177.6E,42.5,55.8e10,1.4,,,, +2017-10-23 15:31:23,28.8N,44.6E,35.4,16.7,-5.7,-10.7,-11.5,2.4e10,0.086 +2017-10-15 04:33:16,65.2S,128.2E,24.1,15.9,9.5,-8.3,9.7,3.3e10,0.11 +2017-10-09 12:51:48,18.3S,64.1W,3.0e10,0.1,,,,, +2017-10-04 12:07:05,28.1N,99.4E,37.0,14.6,-8.5,-9.0,7.8,19.2e10,0.54 +2017-09-05 05:11:27,49.3N,116.9W,36.0,14.7,12.7,-6.1,-4.2,3.8e10,0.13 +2017-07-31 22:01:35,24.7N,118.5W,5.8e10,0.19,,,,, +2017-07-23 06:12:38,6.6S,69.7W,38.0,17.2,-0.4,8.7,-14.8,3.5e10,0.12 +2017-07-13 09:30:36,23.1N,60.7E,35.0,13.7,-10.0,-6.5,-6.8,7.3e10,0.23 +2017-06-30 14:26:45,34.3S,134.5E,20.0,15.2,10.9,-9.7,4.2,9.4e10,0.29 +2017-06-23 20:21:55,57.0N,143.7E,35.1,24.3,17.7,13.1,-10.3,18.4e10,0.52 +2017-06-20 13:41:32,54.2S,133.0E,33.3,13.6,8.7,-5.7,8.8,63.6e10,1.6 +2017-05-24 07:03:03,9.1S,101.8E,46.0,18.4,-6.5,-16.5,-5.0,9.0e10,0.28 +2017-05-22 17:44:39,49.6S,157.6W,33.0,3.5e10,0.12,,,, +2017-05-14 09:30:35,26.0S,32.4E,33.0,3.5e10,0.12,,,, +2017-04-30 21:28:28,25.7S,56.2E,32.4,21.5,-13.4,-14.2,8.9,15.0e10,0.43 +2017-03-11 04:51:21,28.3N,60.2W,28.0,126.3e10,2.9,,,, +2017-03-09 04:16:37,40.5N,18.0W,23.0,36.5,-15.3,25.8,-20.8,40.0e10,1 +2017-03-08 22:21:59,26.1S,174.9E,37.0,7.2e10,0.23,,,, +2017-02-25 01:22:59,29.5N,13.5E,25.4,12.2,-7.6,-9.3,2.2,6.5e10,0.21 +2017-02-22 18:47:30,50.7S,66.0W,3.8e10,0.13,,,,, +2017-02-18 19:48:29,6.2N,60.4E,38.0,24.2,-6.6,-22.7,-5.3,29.5e10,0.79 +2017-02-07 17:37:31,27.4S,14.8W,54.0,2.0e10,0.073,,,, +2017-02-06 06:09:59,10.4N,131.6E,33.5,6.6e10,0.21,,,, +2016-12-23 03:29:09,21.3N,49.3E,42.0,29.7,-22.4,16.4,-10.5,3.8e10,0.13 +2016-12-07 04:51:39,34.5S,126.6W,11.7e10,0.35,,,,, +2016-11-29 08:05:38,30.6S,93.1W,3.1e10,0.11,,,,, +2016-11-24 14:10:34,15.2S,80.3E,30.6,17.4,9.1,-11.2,9.7,13.8e10,0.4 +2016-11-03 17:14:29,39.6S,16.3W,37,7.6e10,0.24,,,, +2016-10-01 20:23:45,36.2N,6.7E,27.8,14.2,-10.0,3.9,-9.3,3.1e10,0.11 +2016-09-22 04:57:49,51.8S,178.5E,40.0,17.5,-2.5,-3.3,17.0,7.1e10,0.22 +2016-09-14 15:01:51,3.5S,44.6E,54.0,18.3,3.5,-16.2,7.7,7.6e10,0.24 +2016-08-27 21:45:13,56.9S,162.2E,42.0,14.2e10,0.41,,,, +2016-08-11 05:59:58,43.7S,53.8E,34.3,14.9,-0.7,-11.4,9.6,18.4e10,0.52 +2016-08-05 18:02:44,46.4N,171.6E,32.4,12.1e10,0.36,,,, +2016-07-21 00:48:53,7.8N,1.6W,37.0,4.5e10,0.15,,,, +2016-07-05 01:24:26,1.0N,48.6E,38.2,25.1,-10.3,-2.0,-22.8,15.3e10,0.44 +2016-06-27 10:02:42,15.8N,11.9W,33.3,29.1,-29.1,1.5,0.7,45.8e10,1.2 +2016-06-05 06:12:55,17.4S,138.3E,28.7,14.5,6.0,-11.9,5.7,33.1e10,0.87 +2016-06-02 10:56:32,33.8N,110.9W,17.2e10,0.49,,,,, +2016-05-29 12:14:55,10.2N,48.8W,32.0,6.9e10,0.22,,,, +2016-05-20 11:59:46,32.8S,15.1E,30.6,20.8,5.4,-9.9,17.5,2.0e10,0.073 +2016-05-16 10:09:41,3.2N,6.6E,41.7,12.2,-6.7,-3.3,-9.6,51.9e10,1.3 +2016-05-13 00:34:01,26.2N,122.3W,33.0,10.1e10,0.31,,,, +2016-04-24 05:39:24,9.8N,42.8W,50.0,14.6e10,0.42,,,, +2016-04-18 11:59:10,20.7N,14.5W,31.5,17.1,-3.5,2.2,-16.6,22.4e10,0.62 +2016-04-12 09:51:40,38.3N,162.2E,2.0e10,0.073,,,,, +2016-04-10 14:57:53,22.0N,149.0E,35.2,15.1,4.7,-12.9,-6.4,65.5e10,1.6 +2016-03-16 23:54:20,49.2S,6.3W,42.0,13.3,-7.6,9.1,6.0,3.2e10,0.11 +2016-03-03 01:32:43,48.0S,51.0E,31.8,11.7,4.8,-7.1,7.9,5.8e10,0.19 +2016-02-23 03:59:13,32.3N,67.2E,44.0,17.9,-8.5,-1.6,-15.7,3.5e10,0.12 +2016-02-21 05:58:53,36.5N,37.2W,32.0,36.9e10,0.96,,,, +2016-02-19 08:15:02,0.7N,11.6W,39.4,15.5,-14.9,-0.5,4.1,20.2e10,0.56 +2016-02-13 00:10:13,3.1N,117.9E,5.1e10,0.17,,,,, +2016-02-06 13:55:09,30.4S,25.5W,31.0,15.6,2.7,14.5,5.0,685.3e10,13 +2016-01-27 09:59:16,45.8S,53.6E,37,11.5,-10.0,-4.4,3.6,5.0e10,0.16 +2016-01-21 16:44:54,10.8S,0.7E,42.5,18.1,-3.8,-17.7,-1.2,4.6e10,0.15 +2015-12-30 13:07:50,33.8N,160.7W,39.0,2.2e10,0.079,,,, +2015-12-21 02:32:48,5.9N,143.0E,42.2,12.1,6.4,-10.0,2.5,8.3e10,0.26 +2015-12-08 00:34:23,69.9S,150.5E,38.0,19.7e10,0.55,,,, +2015-11-13 14:59:27,16.0N,124.3E,28.0,10.2e10,0.31,,,, +2015-11-02 21:34:20,41.4S,33.0E,37.0,7.8e10,0.24,,,, +2015-10-31 11:34:30,9.0N,138.0W,71.0,9.7e10,0.29,,,, +2015-10-30 07:07:12,85.0S,161.7W,18.0e10,0.51,,,,, +2015-10-13 12:23:08,8.0S,52.5W,38.9,12.9,-6.6,3.8,10.4,2.3e10,0.082 +2015-10-11 00:07:46,55.4S,18.8W,3.0e10,0.1,,,,, +2015-10-10 09:57:51,51.0S,21.1W,51.8,11.8,-1.3,-5.1,10.6,3.6e10,0.12 +2015-10-04 21:02:17,22.0N,171.6W,36.1,4.4e10,0.15,,,, +2015-09-17 21:03:14,43.1S,94.9E,9.8e10,0.3,,,,, +2015-09-14 23:50:50,5.8N,15.2W,7.0e10,0.22,,,,, +2015-09-08 13:46:42,6.3N,29.9E,44.4,16.1,-11.5,-11.3,-0.9,2.0e10,0.073 +2015-09-07 01:41:19,14.5N,98.9E,29.3,21.0,16.8,-12.0,-3.8,179.8e10,3.9 +2015-09-02 20:10:30,39.1N,40.2E,39.8,24.1,10.3,-12.2,-18.0,3.7e10,0.13 +2015-08-04 10:24:59,9.6S,125.9E,2.9e10,0.1,,,,, +2015-07-19 07:06:26,20.6N,87.6W,22.0,17.8,9.4,13.0,7.8,2.3e10,0.082 +2015-07-12 22:23:14,31.0N,159.6E,41.0,2.2e10,0.079,,,, +2015-07-04 01:40:11,38.6N,103.1E,46.3,49.0,0.9,-40.4,-27.7,5.6e10,0.18 +2015-06-14 03:03:06,6.3N,124.1E,32.4,31.9,-4.7,-17.8,-26.0,7.1e10,0.22 +2015-06-12 17:03:35,1.3S,32.1W,43.5,17.6e10,0.5,,,, +2015-06-10 17:43:03,11.5S,161.9W,61.1,38.4e10,1,,,, +2015-06-02 08:44:50,6.4S,142.7W,38.0e10,0.99,,,,, +2015-05-20 10:20:41,1.0N,172.6E,32.4,3.6e10,0.12,,,, +2015-05-18 17:13:51,32.4N,139.1E,29.0,4.3e10,0.14,,,, +2015-05-10 07:45:01,46.3S,179.3W,29.6,12.2,11.2,0.9,4.7,14.3e10,0.42 +2015-05-07 20:34:34,21.5S,29.3W,37.0,17.3,-16.2,-5.8,1.4,5.2e10,0.17 +2015-04-30 10:21:01,48.7S,139.1E,26.7,12.9,12.2,-4.2,0.9,10.5e10,0.32 +2015-04-21 01:42:51,37.7N,39.6W,37.4,21.3,-15.3,12.8,7.4,8.8e10,0.27 +2015-04-10 01:14:27,42.8S,8.2E,6.5e10,0.21,,,,, +2015-04-08 04:06:31,25.5S,51.5E,36.3,19.2,8.0,-15.6,-7.9,17.3e10,0.49 +2015-04-03 01:39:38,8.4N,157.9W,4.2e10,0.14,,,,, +2015-03-30 21:33:52,36.1S,5.5W,33.1,13.8,-13.7,-1.7,0.8,6.4e10,0.2 +2015-03-18 00:04:50,5.4S,159.3E,50.0,12.1e10,0.36,,,, +2015-03-11 06:18:59,8.0N,119.1E,35.2,19.9,5.5,-10.5,-16.0,7.2e10,0.23 +2015-03-08 04:26:28,39.1S,118.6W,2.0e10,0.073,,,,, +2015-03-04 04:30:05,15.9S,88.1E,39.8,18.0,7.8,-16.0,-2.5,5.5e10,0.18 +2015-02-26 22:06:24,68.0N,149.0W,33.7,21.1,5.6,-2.3,-20.2,18.8e10,0.53 +2015-02-25 10:53:24,12.4N,122.4W,42,5.8e10,0.19,,,, +2015-02-17 13:19:50,8.0S,11.2W,39,28.8,-28.2,3.4,4.6,3.3e10,0.11 +2015-01-09 17:31:47,23.3S,49.2W,2.2e10,0.079,,,,, +2015-01-09 10:41:11,2.0N,28.8E,36.0,17.5,-10.7,-7.6,11.6,13.9e10,0.41 +2015-01-07 01:05:59,45.7N,26.9E,45.5,35.7,-35.4,1.8,-4.4,13.6e10,0.4 +2015-01-02 13:39:19,31.1S,140.0E,38.1,18.1,4.5,-14.4,-10.0,2.0e10,0.073 +2014-12-13 02:53:52,86.7N,162.1W,30.7,21.7,15.3,-13.3,-7.8,4.4e10,0.15 +2014-12-12 06:48:11,33.5N,144.9E,26.3,12.0,11.5,-2.8,-2.2,3.3e10,0.11 +2014-12-09 21:19:18,76.6N,96.3E,26.3,7.8e10,0.24,,,, +2014-11-28 11:47:18,45.8S,172.7W,26.1,13.4,0.4,-1.4,13.3,70.0e10,1.7 +2014-11-27 12:12:52,18.8S,73.4W,38.0,5.5e10,0.18,,,, +2014-11-26 23:16:51,69.5S,179.7W,23.3,25.3,21.3,2.2,13.4,11.8e10,0.35 +2014-11-26 17:40:16,68.2S,24.0W,37.0,19.9,-7.0,16.1,9.4,10.5e10,0.32 +2014-11-04 20:13:30,43.1N,115.8E,22.2,16.0,-7.2,-12.1,-7.7,15.6e10,0.45 +2014-10-21 18:55:37,22.2N,132.9W,3.4e10,0.12,,,,, +2014-10-17 14:07:36,4.6S,66.3W,39.0,7.2e10,0.23,,,, +2014-10-14 10:25:03,2.0S,119.2E,27.2,16.9,15.0,-6.9,-3.5,2.9e10,0.1 +2014-10-06 20:02:15,43.7S,85.7E,3.9e10,0.13,,,,, +2014-09-09 18:55:46,3.2N,137.2E,32.5,2.8e10,0.098,,,, +2014-09-05 21:37:26,22.7N,150.0W,3.5e10,0.12,,,,, +2014-08-29 23:15:39,6.2S,49.9W,2.6e10,0.092,,,,, +2014-08-28 03:07:45,3.2N,45.4W,3.4e10,0.12,,,,, +2014-08-23 06:29:41,61.7S,132.6E,22.2,16.2,-2.3,5.7,16.5,381.9e10,7.6 +2014-07-29 07:38:07,49.2S,172.2W,7.3e10,0.23,,,,, +2014-07-29 03:07:43,33.9S,115.9W,5.3e10,0.17,,,,, +2014-06-28 02:40:07,18.9N,141.2E,26.3,12.4,12.0,3.5,-10.5,24.5e10,0.67 +2014-06-26 05:54:41,71.5S,93.4E,28.5,11.2,7.0,2.9,8.3,6.1e10,0.2 +2014-05-29 01:12:36,21.9N,131.1W,28.7,5.8e10,0.19,,,, +2014-05-16 20:06:28,39.4S,95.9W,30.8,18.0,2.9,13.4,-12.5,13.6e10,0.4 +2014-05-16 12:42:48,44.2S,176.2W,44.0,16.5,14.4,4.6,6.5,30.9e10,0.82 +2014-05-08 19:42:37,36.9S,87.3E,35.4,19.0,-2.0,-16.1,9.9,105e10,2.4 +2014-03-29 13:45:41,28.7S,121.5E,30.7,16.3,10.0,-12.7,2.2,3.9e10,0.13 +2014-03-18 11:02:37,0.0N,111.8W,30.5,54e10,1.3,,,, +2014-03-03 15:00:21,29.0S,94.9W,9.4e10,0.29,,,,, +2014-02-18 12:50:44,32.8S,61.5W,2.6e10,0.092,,,,, +2014-02-13 06:47:42,13.3N,110.7W,25.0,63e10,1.5,,,, +2014-01-15 02:46:19,18.5S,141.8E,29.6,14.0e10,0.41,,,, +2014-01-12 16:00:48,2.9N,64.4E,37.0,16.2,-5.2,-15.1,2.6,7.8e10,0.24 +2014-01-08 17:05:34,1.3S,147.6E,18.7,44.8,-3.4,-43.5,-10.3,3.1e10,0.11 +2013-12-23 08:30:57,39.5N,2.0E,34.3,15.1,-1.1,11.4,-9.9,14.7e10,0.43 +2013-12-08 03:10:09,32.8N,165.1W,23.5,11.8,2.3,2.5,-11.3,6.4e10,0.2 +2013-11-21 01:50:35,44.7N,35.3E,59.3,12.4,-5.0,-11.0,-2.7,7.5e10,0.23 +2013-10-12 16:06:45,19.1S,25.0W,22.2,12.8,-8.0,8.4,-5.5,161.0e10,3.5 +2013-10-09 17:27:36,6.0e10,0.19,,,,,,, +2013-09-24 15:31:16,10.3S,164.7W,40.7,16.0e10,0.46,,,, +2013-08-12 18:08:02,34.4S,118.2E,66.6,4.4e10,0.15,,,, +2013-07-31 07:00:38,3.9e10,0.13,,,,,,, +2013-07-31 03:50:14,31.8S,137.1E,29.1,17.8,17.7,-2.3,-0.1,6.9e10,0.22 +2013-07-30 02:36:58,50.2S,90.2E,25.6,18.8,15.9,-8.6,5.1,39.0e10,1 +2013-07-27 08:30:36,0.3N,156.2E,26.5,22.1,16.0,14.9,-3.3,12.0e10,0.36 +2013-07-26 11:32:26,21.0N,178.5W,37.0,2.0e10,0.073,,,, +2013-07-18 00:46:37,2.2e10,0.079,,,,,,, +2013-06-13 02:51:14,2.2e10,0.079,,,,,,, +2013-06-01 22:49:48,65.6S,138.4E,28.9,3.4e10,0.12,,,, +2013-05-14 23:20:21,3.0S,76.4E,2.0e10,0.073,,,,, +2013-04-30 08:40:38,35.5N,30.7W,21.2,12.1,1,9,-8,511e10,10 +2013-04-21 06:23:12,28.1S,64.6W,40.7,14.9,5,14,1,106.6e10,2.5 +2013-03-12 10:32:59,32.7S,17.1E,26.0,2.9e10,0.1,,,, +2013-02-20 13:13:07,23.0S,38.8W,13.6,-11,-8,-1,3.2e10,0.1, +2013-02-15 03:20:33,54.8N,61.1E,23.3,18.6,+12.8,-13.3,-2.4,3.75e14,440 +2013-02-07 13:12:24,18.8S,158.6W,6.5e10,0.21,,,,, +2013-01-25 07:40:18,60.3N,64.6W,340e10,6.9,,,,, +2013-01-12 03:04:21,15.1S,155.6W,36.1,4.8e10,0.16,,,, +2012-12-30 07:25:35,17.3N,83.6W,19.8e10,0.55,,,,, +2012-12-18 11:19:17,2.7e10,0.095,,,,,,, +2012-11-20 20:37:31,2.5N,29.6E,33.3,14.3,-12.2,-5.3,5.3,2.5e10,0.089 +2012-11-20 06:25:11,8.0S,86.0W,12.0e10,0.36,,,,, +2012-10-25 15:57:19,3.0e10,0.1,,,,,,, +2012-10-19 16:26:22,75.4S,49.6E,29.3,13.2,-2.3,-3.9,12.4,2.3e10,0.082 +2012-10-09 00:54:55,51.2N,84.6W,27.8,13.5,3.4,12.0,5.1,21.0e10,0.58 +2012-10-03 22:50:12,41.5S,21.9W,17.0,-2.4,5.5,15.9,28.0e10,0.75, +2012-10-02 16:38:38,8.1S,111.9W,35.0,15.4,1.4,15.3,1.0,47.0e10,1.2 +2012-09-28 05:44:12,6.9S,73.7E,3.8e10,0.13,,,,, +2012-09-18 19:34:39,1.2N,52.2W,28.1,18.3,-1.9,14.1,-11.5,24.4e10,0.67 +2012-09-11 22:07:30,18.9S,105.2E,5.2e10,0.17,,,,, +2012-09-10 01:03:32,69.8S,111.7W,23.8,16.9,-10.2,-5.2,12.4,2.3e10,0.082 +2012-08-27 06:57:43,18.3S,64.2E,38.7,28.9,-8.0,-23.7,-14.5,6.8e10,0.22 +2012-08-26 14:55:47,11.8N,117.0E,36.0,12.7,5.0,-11.6,-0.7,24.9e10,0.68 +2012-08-13 05:31:53,3.3e10,0.11,,,,,,, +2012-07-27 04:19:50,63.1N,172.3E,27.2,3.4e10,0.12,,,, +2012-07-25 07:48:20,36.4N,41.5E,26.8,18.5,0.8,2.0,-18.4,13.3e10,0.39 +2012-06-05 07:44:54,2.4e10,0.086,,,,,,, +2012-05-25 11:31:24,41.8S,36.2W,6.0e10,0.19,,,,, +2012-05-22 08:31:42,21.1e10,0.59,,,,,,, +2012-05-15 11:04:17,61.8S,135.5W,33.3,17.1,-0.8,1.1,17.0,13.2e10,0.39 +2012-05-04 21:54:49,76.7N,10.6W,22.9e10,0.63,,,,, +2012-04-23 22:01:10,36.2N,107.4E,25.2,4.4e10,0.15,,,, +2012-04-21 16:08:23,15.8S,174.8W,14.3e10,0.42,,,,, +2012-04-19 22:12:10,5.5N,16.8E,3.0e10,0.1,,,,, +2012-04-02 16:50:33,28.1N,95.2W,3.2e10,0.11,,,,, +2012-03-12 06:40:44,2.5N,139.8E,25.0,11.8,0.1,-11.8,0.3,9.9e10,0.3 +2012-03-03 21:28:24,7.8N,2.7E,20.4,10.1e10,0.31,,,, +2012-03-01 03:12:40,46.9N,29.8W,2.2e10,0.079,,,,, +2012-02-24 19:11:41,22.7S,30.8E,3.7e10,0.13,,,,, +2012-02-17 10:47:16,3.2S,39.9W,45.6,15.4e10,0.44,,,, +2012-02-16 04:50:52,9.8N,151.8E,9.8e10,0.3,,,,, +2012-02-12 05:25:52,31.7S,54.9E,61.0,14.0e10,0.41,,,, +2012-02-04 14:42:51,32.4N,0.1E,34.2,12.2,-3.9,10.9,4.0,15.0e10,0.43 +2012-01-15 12:26:20,64.1S,109.9E,26.3,12.3,-1.9,5.1,11.0,2.1e10,0.076 +2012-01-11 02:23:15,32.2N,88.5E,8.5e10,0.26,,,,, +2011-12-19 11:35:39,30.2S,52.6E,36.1,13.5e10,0.4,,,, +2011-12-14 05:01:38,62.9S,89.6E,32.4,5.0e10,0.16,,,, +2011-12-11 17:29:33,2.9e10,0.1,,,,,,, +2011-11-20 05:25:05,27.9S,116.3E,2.3e10,0.082,,,,, +2011-10-12 07:13:20,26.4S,78.4W,3.6e10,0.12,,,,, +2011-09-13 23:36:47,19.9S,13.8W,21.3,16.7,-3.7,1.8,16.2,6.7e10,0.21 +2011-08-31 09:44:13,18.6N,5.1W,2.7e10,0.095,,,,, +2011-08-20 20:01:37,27.2S,2.8W,2.3e10,0.082,,,,, +2011-08-18 14:55:45,2.3e10,0.082,,,,,,, +2011-08-11 02:56:08,3.5e10,0.12,,,,,,, +2011-08-04 07:25:57,40.7S,86.7W,63.0,2.8e10,0.098,,,, +2011-07-27 23:00:36,45.3S,63.5E,29.6,4.4e10,0.15,,,, +2011-07-07 23:25:54,3.3e10,0.11,,,,,,, +2011-07-05 15:42:41,29.1N,139.7E,40.7,6.5e10,0.21,,,, +2011-07-04 09:18:04,51.7S,175.0E,2.9e10,0.1,,,,, +2011-06-16 11:51:50,67.3N,21.4W,40.5,2.4e10,0.086,,,, +2011-05-25 05:40:02,4.1N,14.0E,59.0,11.6,-3.4,-10.8,2.4,228.0e10,4.8 +2011-05-16 13:39:06,1.2S,92.8E,2.0e10,0.073,,,,, +2011-04-27 20:38:09,1.4N,126.6W,28.7,22.0e10,0.61,,,, +2011-04-27 11:21:44,2.4e10,0.086,,,,,,, +2011-04-17 11:21:44,2.4e10,0.086,,,,,,, +2011-04-11 21:43:40,3.8e10,0.13,,,,,,, +2011-04-06 08:30:55,71.1N,43.5W,22.2,12.7,3.3,11.8,-3.5,14.8e10,0.43 +2011-03-24 20:23:58,0.6N,127.5W,59.0,5.8e10,0.19,,,, +2011-03-23 04:24:46,3.1e10,0.11,,,,,,, +2011-03-23 04:16:32,16.8S,85.6W,2.2e10,0.079,,,,, +2011-03-01 10:37:54,53.5N,103.9E,30.6,11.9,-6.7,-1.1,-9.8,3.7e10,0.13 +2011-02-21 05:07:03,26.3N,43.7E,44.4,18.0,10.3,-14.8,0.1,3.9e10,0.13 +2011-02-12 11:00:12,7.8N,95.3W,2.0e10,0.073,,,,, +2011-01-21 15:11:43,18.9N,44.6W,61.0,7.2e10,0.23,,,, +2011-01-08 19:38:44,33.3N,125.8W,48.0,2.9e10,0.1,,,, +2010-12-25 23:24:00,38.0N,158.0E,26.0,18.1,18,-2,-4,2.00e13,33 +2010-12-14 00:27:53,4.9S,175.5E,24.0,3.9e10,0.13,,,, +2010-12-09 02:54:07,54.5S,169.7W,66.0,6.3e10,0.2,,,, +2010-12-01 06:31:46,72.5S,144.9E,33.3,13.3e10,0.39,,,, +2010-11-21 14:45:27,1.9N,143.3E,50.0,8.1e10,0.25,,,, +2010-11-19 07:25:56,10.3S,148.8E,30.0,3.3e10,0.11,,,, +2010-11-10 08:26:35,74.5N,77.7W,6.8e10,0.22,,,,, +2010-11-09 13:05:46,56.3S,16.7W,37.0,8.6e10,0.27,,,, +2010-11-09 06:56:52,14.0S,160.0W,26.0,2.0e10,0.073,,,, +2010-10-27 11:27:39,14.1S,67.7E,35.2,14.5e10,0.42,,,, +2010-10-08 09:58:01,2.0e10,0.073,,,,,,, +2010-09-24 12:02:07,67.4S,50.6W,5.0e10,0.16,,,,, +2010-09-18 05:04:41,7.4N,36.7E,6.7e10,0.21,,,,, +2010-09-08 19:51:36,13.9S,65.5W,46.3,6.5e10,0.21,,,, +2010-09-05 23:37:33,25.9S,49.0E,35.2,68.3e10,1.7,,,, +2010-09-03 12:04:58,61.0S,146.7E,33.3,12.3,9.8,-3.5,6.5,175.0e10,3.8 +2010-08-17 04:19:37,20.7N,114.3W,33.3,2.1e10,0.076,,,, +2010-08-12 02:59:36,2.8e10,0.098,,,,,,, +2010-08-05 19:31:48,21.5S,46.6E,3.6e10,0.12,,,,, +2010-07-15 01:49:56,60.9N,178.1W,2.4e10,0.086,,,,, +2010-07-06 23:54:43,34.1S,174.5W,26.0,15.7,12.1,10.0,0.2,756.0e10,14 +2010-06-26 06:04:38,0.5S,133.2E,50.0,11.3e10,0.34,,,, +2010-06-21 06:42:00,22.5S,120.9W,16.3e10,0.47,,,,, +2010-06-17 04:24:45,26.1S,100.0E,42.0,11.9e10,0.35,,,, +2010-04-17 02:21:58,13.1N,173.0W,5.6e10,0.18,,,,, +2010-04-16 04:38:52,1.8N,176.9W,22.2,18.8,12.4,-13.2,-5.2,84.4e10,2 +2010-04-06 18:33:12,52.8N,146.5W,8.0e10,0.25,,,,, +2010-03-18 16:11:16,32.4S,51.8W,17.5e10,0.5,,,,, +2010-03-15 15:55:43,8.0e10,0.25,,,,,,, +2010-03-14 18:44:42,33.8N,90.2W,35.6,4.2e10,0.14,,,, +2010-03-08 22:44:41,18.2N,110.1E,53.0,3.0e10,0.1,,,, +2010-03-08 22:02:07,32.0N,92.9W,52.0,24.5,19.1,11.0,10.7,32.3e10,0.85 +2010-02-28 22:24:50,48.7N,21.0E,37.0,15.1,-11.7,2.7,-9.1,15.3e10,0.44 +2010-02-26 22:46:13,37.3S,166.0W,23.7e10,0.65,,,,, +2010-02-24 19:55:58,2.6S,102.2W,9.3e10,0.28,,,,, +2010-01-15 19:17:54,8.3S,27.0E,25.0,14.0,-9.1,6.0,8.8,49.2e10,1.2 +2009-12-31 16:24:23,8.3e10,0.26,,,,,,, +2009-12-31 12:50:25,37.9N,178.3W,20.7,10.2e10,0.31,,,, +2009-11-25 01:36:20,52.8S,136.5E,6.4e10,0.2,,,,, +2009-11-21 20:53:00,22.0S,29.2E,38.0,32.1,3,-17,27,1.00e13,18 +2009-11-18 17:36:07,8.5e10,0.26,,,,,,, +2009-11-18 07:07:19,40.4N,113.2W,31.5,73.6e10,1.8,,,, +2009-11-14 19:58:55,2.3e10,0.082,,,,,,, +2009-11-07 11:31:59,45.5N,157.7W,2.2e10,0.079,,,,, +2009-11-07 10:41:38,24.0N,64.1E,37.0,4.2e10,0.14,,,, +2009-10-11 12:49:51,78.3S,70.2E,27.8,7.1e10,0.22,,,, +2009-10-08 02:57:00,4.2S,120.6E,19.1,19.2,14,-16,-6,2.00e13,33 +2009-09-27 22:22:48,36.0S,67.6W,37.0,8.9e10,0.27,,,, +2009-09-18 20:13:56,7.7N,29.5W,14.4e10,0.42,,,,, +2009-09-04 02:23:18,42.5N,110.0E,28.3,24.0,19.2,-11.6,-8.5,96.5e10,2.3 +2009-08-23 21:17:19,67.7S,18.3E,34.0,12.2,-6.9,5.3,8.5,28.0e10,0.75 +2009-07-31 02:13:19,8.9N,121.9W,2.5e10,0.089,,,,, +2009-07-16 06:39:05,24.4S,59.8W,32.2,72.7e10,1.8,,,, +2009-07-03 04:02:00,2.7e10,0.095,,,,,,, +2009-06-27 13:08:05,26.6S,12.6W,26.1,15.2,-11.6,1.6,9.7,3.2e10,0.11 +2009-06-20 11:04:41,2.7e10,0.095,,,,,,, +2009-06-18 04:39:00,23.7S,16.0W,57.4,3.3e10,0.11,,,, +2009-06-09 22:42:28,54.9N,152.7W,34.2,28.1e10,0.76,,,, +2009-05-31 06:05:47,19.7N,121.0W,14.3e10,0.42,,,,, +2009-05-13 20:20:16,7.3e10,0.23,,,,,,, +2009-05-04 11:39:03,36.4N,160.4W,40.7,14.0e10,0.41,,,, +2009-04-20 04:01:39,6.0N,84.3E,2.2e10,0.079,,,,, +2009-04-10 18:42:45,44.7S,25.7E,32.4,19.1,-18.9,2.6,0.3,27.0e10,0.73 +2009-03-15 05:44:33,21.7S,98.6W,3.2e10,0.11,,,,, +2009-03-04 00:38:05,17.0e10,0.48,,,,,,, +2009-03-01 09:00:59,2.0e10,0.073,,,,,,, +2009-02-20 12:15:57,64.9S,70.0W,5.0e10,0.16,,,,, +2009-02-07 19:51:32,56.6N,69.8E,40.0,15.4,-2.4,-1.9,-15.1,160.0e10,3.5 +2009-01-12 22:24:56,47.8N,44.3W,4.8e10,0.16,,,,, +2009-01-10 07:42:39,64.0S,122.8E,26.5,2.3e10,0.082,,,, +2008-12-24 15:51:58,68.9S,102.0W,21.1,24.1,-13.4,18.0,8.8,3.5e10,0.12 +2008-12-12 11:36:36,7.0S,9.7W,50.0,21.6e10,0.6,,,, +2008-12-09 06:08:16,3.4e10,0.12,,,,,,, +2008-11-24 22:01:19,57.9S,146.1E,34.8,23.7,21.5,10.0,0.4,14.6e10,0.42 +2008-11-21 00:26:44,53.1N,109.9W,28.2,12.9,3.9,-4.1,-11.6,14.2e10,0.41 +2008-11-18 09:41:51,29.4S,75.9E,35.2,22.4,-4.0,-15.2,-16.0,2.5e10,0.089 +2008-11-09 02:38:34,14.5N,112.7E,29.6,22.2e10,0.61,,,, +2008-10-21 02:20:25,32.8N,165.6W,29.6,11.3,9.6,5.8,1.5,4.6e10,0.15 +2008-10-10 09:34:18,57.3S,17.0E,21.4,18.0e10,0.51,,,, +2008-10-07 02:45:45,20.9N,31.4E,38.9,13.3,-9.0,9.0,3.8,39.5e10,1 +2008-09-09 09:49:41,5.9e10,0.19,,,,,,, +2008-08-16 14:40:24,11.3N,97.2E,13.1e10,0.38,,,,, +2008-08-12 11:44:10,11.6S,175.0W,2.0e10,0.073,,,,, +2008-08-07 06:07:10,18.5N,180.0E,45.4,13.8,6.5,-12.1,1.7,4.1e10,0.14 +2008-07-23 14:45:25,38.6N,68.0E,31.5,14.5,-7.7,-8.2,-9.1,12.1e10,0.36 +2008-07-22 19:34:00,17.8S,89.2W,54.4,6.1e10,0.2,,,, +2008-07-11 14:35:28,5.2e10,0.17,,,,,,, +2008-07-08 15:55:30,72.8N,147.3E,52.2,21.7,-12.9,1.9,-17.4,6.6e10,0.21 +2008-07-01 17:40:19,37.1N,115.7W,36.1,9.8,2.8,1.7,-9.2,3.6e10,0.12 +2008-06-27 02:01:23,26.9S,17.7W,33.7,23.1,-17.9,13.0,6.6,17.2e10,0.49 +2008-06-18 13:45:36,6.1N,103.1E,2.1e10,0.076,,,,, +2008-05-29 21:23:56,15.7N,83.5W,2.1e10,0.076,,,,, +2008-05-24 10:18:10,0.8N,162.0E,37.0,14.2,7.9,3.1,11.4,15.0e10,0.43 +2008-05-22 20:50:28,46.9N,134.5E,2.1e10,0.076,,,,, +2008-05-15 11:29:55,28.0N,41.5W,8.0e10,0.25,,,,, +2008-05-06 01:08:56,5.7e10,0.18,,,,,,, +2008-04-30 01:18:38,33.6S,35.1W,2.0e10,0.073,,,,, +2008-04-07 01:22:28,31.8S,58.5W,2.1e10,0.076,,,,, +2008-04-06 16:03:34,7.7e10,0.24,,,,,,, +2008-03-15 11:29:55,28.0N,41.5W,26.7,12.9,-4.1,4.8,-11.2,5.0e10,0.16 +2008-02-24 19:33:14,7.4e10,0.23,,,,,,, +2008-02-19 13:30:30,48.9N,119.8W,2.0e10,0.073,,,,, +2008-02-18 08:51:12,5.0e10,0.16,,,,,,, +2008-02-17 12:19:16,74.9N,73.4W,40.4,13.9,-5.8,-10.7,-6.7,11.0e10,0.33 +2008-02-16 08:38:39,7.1e10,0.22,,,,,,, +2008-01-18 01:17:39,4.4e10,0.15,,,,,,, +2008-01-09 03:53:15,66.8S,67.3W,31.5,11.6,4.3,5.7,9.1,4.1e10,0.14 +2007-12-26 06:46:20,61.6S,158.9W,13.6e10,0.4,,,,, +2007-12-20 17:00:48,51.3N,115.4E,12.2e10,0.36,,,,, +2007-10-25 19:35:38,40.9S,91.3E,46.3,5.8e10,0.19,,,, +2007-10-12 09:14:03,88.5N,116.6E,37.0,18.4,-4.5,-14.1,-10.9,3.3e10,0.11 +2007-10-07 13:31:01,35.2S,125.6E,5.8e10,0.19,,,,, +2007-09-22 17:57:12,49.2S,85.5W,30.2,16.9,-9.2,13.6,3.8,23.7e10,0.65 +2007-06-11 09:47:05,23.4S,170.9W,35.2,17.0,16.7,-2.1,-2.2,4.9e10,0.16 +2007-06-08 13:32:00,52.0S,175.3E,38.9,23.5e10,0.65,,,, +2007-06-07 21:28:12,21.9N,53.1E,29.6,3.1e10,0.11,,,, +2007-05-16 16:20:58,4.5S,111.7E,3.8e10,0.13,,,,, +2007-05-16 04:45:52,42.4S,164.0E,31.5,40.0e10,1,,,, +2007-05-04 17:52:39,22.9N,109.4E,48.0,17.5e10,0.5,,,, +2007-04-18 12:44:23,83.7S,171.2W,38.0,24.4,-5.3,-2.5,23.7,11.2e10,0.33 +2007-04-16 14:56:51,2.4e10,0.086,,,,,,, +2007-03-17 06:48:35,7.1N,4.1E,32.5,14.5,-7.3,-1.9,-12.4,4.0e10,0.13 +2007-03-15 02:20:15,44.1S,148.4W,2.5e10,0.089,,,,, +2007-03-07 15:16:49,2.7e10,0.095,,,,,,, +2007-02-02 12:48:41,24.0N,37.2W,35.5,34.0e10,0.89,,,, +2007-01-26 22:22:21,3.7N,99.7E,14.7e10,0.43,,,,, +2007-01-22 07:24:56,45.4N,53.5E,32.0,13.4,-3.3,-12.8,-1.9,7.6e10,0.24 +2007-01-18 13:51:10,5.3N,164.3W,34.1,3.2e10,0.11,,,, +2007-01-17 09:50:46,8.7S,50.8E,33.3,54.8e10,1.4,,,, +2007-01-01 11:43:29,44.4N,116.5E,53.0,3.6e10,0.12,,,, +2006-12-09 06:31:12,26.2N,26.0E,26.5,15.9,4.9,-15.0,1.6,741.0e10,14 +2006-12-07 11:42:00,14.0N,140.0W,2.1e10,0.076,,,,, +2006-12-01 06:09:25,13.0S,30.7E,6.3e10,0.2,,,,, +2006-11-13 15:16:34,44.0S,43.3E,2.3e10,0.082,,,,, +2006-10-24 08:42:52,1.9S,2.7W,43.0,22.5e10,0.62,,,, +2006-10-14 18:10:49,49.4N,175.0W,44.4,23.9,4.9,23.4,-1.0,25.8e10,0.7 +2006-10-09 04:45:30,47.0S,78.9E,22.2,4.1e10,0.14,,,, +2006-10-07 12:18:53,23.0S,61.8W,40.7,4.1e10,0.14,,,, +2006-10-02 19:10:27,14.0N,53.1E,42.0,9.0e10,0.28,,,, +2006-09-27 08:33:43,32.0S,60.2E,48.1,10.7e10,0.32,,,, +2006-09-23 18:52:58,29.0S,108.0W,12.1e10,0.36,,,,, +2006-09-02 17:57:58,2.2e10,0.079,,,,,,, +2006-09-02 04:26:15,14.0S,109.1E,44.1,14.2,10.0,-9.9,1.5,123.0e10,2.8 +2006-08-29 01:38:36,44.0S,162.0W,40.7,9.2e10,0.28,,,, +2006-08-18 00:03:18,43.0S,33.4E,47.2,3.2e10,0.11,,,, +2006-08-17 10:43:34,11.0S,165.7E,48.2,25.6e10,0.7,,,, +2006-08-15 10:52:24,4.9N,49.6E,32.7,4.7e10,0.16,,,, +2006-08-09 04:30:44,23.1S,53.7E,37.0,102.0e10,2.4,,,, +2006-07-15 23:55:45,78.3S,5.0W,29.6,12.4,0.1,2.0,12.2,8.5e10,0.26 +2006-07-15 15:22:49,31.1N,45.6E,38.9,30.2,9.2,-1.2,-28.7,16.3e10,0.47 +2006-06-07 00:06:28,69.2N,22.5E,40.7,19.6,6.1,4.6,-18.0,5.9e10,0.19 +2006-05-28 01:32:24,2.6e10,0.092,,,,,,, +2006-05-21 07:51:11,11.6S,25.5W,26.3e10,0.71,,,,, +2006-05-07 17:45:14,3.0e10,0.1,,,,,,, +2006-05-06 15:39:06,60.2S,152.3W,35.2,12.8e10,0.38,,,, +2006-04-25 18:46:53,2.0e10,0.073,,,,,,, +2006-04-08 13:16:23,17.3N,113.2W,33.3,12.7e10,0.37,,,, +2006-04-04 11:30:08,26.6N,26.6W,25.0,240.0e10,5,,,, +2006-03-14 03:21:06,7.0N,64.6W,35.2,14.4e10,0.42,,,, +2006-02-26 07:30:06,7.0e10,0.22,,,,,,, +2006-02-06 01:57:37,54.5S,18.1E,35.2,119.0e10,2.7,,,, +2006-02-04 08:38:05,36.9N,143.6W,38.9,19.8,-8.8,3.4,-17.4,10.0e10,0.3 +2006-01-28 03:33:48,51.7S,56.4E,37.0,18.7,8.4,-16.4,3.2,74.0e10,1.8 +2006-01-27 01:27:42,58.7N,74.7E,20.0,4.5e10,0.15,,,, +2006-01-26 00:00:53,79.8S,111.0W,37.0,5.3e10,0.17,,,, +2006-01-10 23:25:28,29.8N,12.7W,32.4,16.9,-9.9,-6.3,-12.2,2.8e10,0.098 +2006-01-08 05:20:19,7.6N,28.2W,9.4e10,0.29,,,,, +2005-12-29 10:05:35,3.0S,154.9W,42.2,20.7,18.6,8.5,3.2,19.0e10,0.53 +2005-12-24 15:30:26,54.0S,17.3E,66.0,18.1e10,0.51,,,, +2005-12-03 12:45:49,33.8S,117.4E,32.2,17.0,-12.1,-9.6,7.2,8.8e10,0.27 +2005-12-01 10:40:20,6.4S,155.8W,3.2e10,0.11,,,,, +2005-11-29 07:33:16,7.6N,58.2W,59.3,3.2e10,0.11,,,, +2005-11-15 05:19:07,26.3N,113.4W,32.4,2.5e10,0.089,,,, +2005-11-11 20:34:23,21.4N,134.1W,29.6,4.2e10,0.14,,,, +2005-11-09 07:33:08,31.0S,145.9E,30.7,13.8,13.5,-2.7,-0.7,7.3e10,0.23 +2005-11-02 07:04:32,33.9N,154.9W,68.5,3.2e10,0.11,,,, +2005-11-02 05:16:47,22.9N,123.8W,74.0,6.7e10,0.21,,,, +2005-10-26 21:30:47,36.3S,80.5W,16.7,13.8e10,0.4,,,, +2005-09-30 19:04:06,2.8S,84.1W,53.0,2.2e10,0.079,,,, +2005-09-14 01:08:52,11.6N,27.3E,33.3,2.5e10,0.089,,,, +2005-09-02 07:59:47,13.5N,73.1E,8.2e10,0.25,,,,, +2005-08-20 12:10:24,2.7e10,0.095,,,,,,, +2005-08-09 14:35:45,21.5S,56.2E,37.0,16.9,-16.3,4.3,1.4,2.5e10,0.089 +2005-07-01 22:36:15,49.8S,33.1E,50.0,3.1e10,0.11,,,, +2005-06-18 19:40:41,47.9N,85.6E,2.3e10,0.082,,,,, +2005-06-05 01:56:09,34.8N,90.9E,4.1e10,0.14,,,,, +2005-06-03 08:15:41,31.0S,90.3W,29.6,26.2,-1.5,25.3,6.7,8.2e10,0.25 +2005-05-27 14:12:13,48.9S,145.1E,50.5,2.0e10,0.073,,,, +2005-05-14 13:02:53,12.9e10,0.38,,,,,,, +2005-05-07 09:31:44,75.8S,163.7E,15.2,16.6,9.6,-9.7,9.4,2.6e10,0.092 +2005-05-02 20:10:36,17.7N,36.0E,4.6e10,0.15,,,,, +2005-04-22 11:18:05,20.9N,36.7W,37.0,2.2e10,0.079,,,, +2005-04-19 07:37:47,50.2S,146.4W,38.5,16.8,9.3,13.8,2.5,23.2e10,0.64 +2005-04-16 10:40:38,2.0e10,0.073,,,,,,, +2005-04-15 06:54:59,43.8S,73.9W,39.0,2.1e10,0.076,,,, +2005-04-14 14:05:22,4.9N,176.0W,26.5,7.1e10,0.22,,,, +2005-04-11 05:20:29,34.2S,95.7W,37.0,10.6e10,0.32,,,, +2005-04-06 01:30:24,42.7S,154.6E,70.0,2.9e10,0.1,,,, +2005-04-05 17:48:07,3.5e10,0.12,,,,,,, +2005-04-03 01:45:29,1.0S,112.4E,59.2,21.9e10,0.61,,,, +2005-04-02 22:52:25,14.1N,169.7E,27.2,20.4e10,0.57,,,, +2005-03-31 22:15:55,42.8N,36.2W,3.8e10,0.13,,,,, +2005-03-18 16:48:32,9.7S,34.7W,33.0,2.7e10,0.095,,,, +2005-03-12 22:16:31,2.2e10,0.079,,,,,,, +2005-03-09 15:47:36,21.4S,157.9W,44.4,5.3e10,0.17,,,, +2005-03-09 12:49:08,14.3N,142.7E,30.7,4.0e10,0.13,,,, +2005-03-06 17:32:51,5.5e10,0.18,,,,,,, +2005-02-22 22:51:06,4.1e10,0.14,,,,,,, +2005-02-17 22:52:36,48.0N,161.5W,42.5,10.0e10,0.3,,,, +2005-01-19 01:43:14,27.5S,164.9W,40.7,14.1e10,0.41,,,, +2005-01-02 23:09:51,21.3S,154.7E,35.2,21.5,20.2,-3.3,6.6,11.9e10,0.35 +2005-01-01 03:44:09,32.7N,12.4E,31.8,45.4e10,1.2,,,, +2004-12-29 07:11:45,8.5S,171.8E,9.0e10,0.28,,,,, +2004-12-13 11:35:55,9.7S,155.3E,3.9e10,0.13,,,,, +2004-12-11 15:36:51,36.0N,104.1E,3.0e10,0.1,,,,, +2004-11-30 08:32:53,61.0N,171.0W,18.1e10,0.51,,,,, +2004-11-17 03:13:04,18.6e10,0.52,,,,,,, +2004-10-14 11:41:01,9.3e10,0.28,,,,,,, +2004-10-10 11:05:28,3.0e10,0.1,,,,,,, +2004-10-07 13:14:43,27.3S,71.5E,35.0,19.2,-15.3,1.0,11.6,1.04e13,18 +2004-10-04 04:39:52,3.7N,150.9W,7.1e10,0.22,,,,, +2004-09-28 08:57:28,0.2N,101.1W,6.2e10,0.2,,,,, +2004-09-03 12:07:22,67.7S,18.2E,31.5,726.0e10,13,,,, +2004-08-22 10:01:33,51.9S,22.7E,37.0,144.0e10,3.2,,,, +2004-07-29 12:41:45,2.5e10,0.089,,,,,,, +2004-07-25 05:29:13,19.7e10,0.55,,,,,,, +2004-07-22 03:34:31,3.5e10,0.12,,,,,,, +2004-07-16 00:11:01,2.9e10,0.1,,,,,,, +2004-07-04 16:58:04,7.9e10,0.25,,,,,,, +2004-07-03 20:47:22,6.5e10,0.21,,,,,,, +2004-06-12 07:13:56,21.7N,175.3E,10.4e10,0.31,,,,, +2004-06-11 15:41:40,10.4e10,0.31,,,,,,, +2004-06-05 20:34:10,1.3N,174.4W,43.0,19.5,9.4,17.0,-1.5,181.0e10,3.9 +2004-06-04 13:41:38,33.9e10,0.89,,,,,,, +2004-06-03 21:59:15,4.7e10,0.16,,,,,,, +2004-06-03 09:40:12,48.9N,120.4W,5.4e10,0.18,,,,, +2004-05-18 11:12:12,28.1S,47.4W,39.4e10,1,,,,, +2004-05-17 02:08:27,18.9S,28.3E,44.0,5.5e10,0.18,,,, +2004-05-06 02:22:49,4.9e10,0.16,,,,,,, +2004-04-23 00:33:41,5.6e10,0.18,,,,,,, +2004-04-22 21:19:55,15.2S,55.1E,13.9e10,0.41,,,,, +2004-04-22 04:21:49,44.3S,83.3E,29.6,16.3,8.5,-12.1,-6.8,62.4e10,1.5 +2004-04-06 03:24:49,12.0S,162.8E,35.0,25.6,10.5,-23.2,-2.9,43.3e10,1.1 +2004-03-26 16:35:45,7.6S,155.1E,46.0,2.4e10,0.086,,,, +2004-03-25 09:39:26,4.8S,21.0E,2.1e10,0.076,,,,, +2004-02-27 01:18:54,6.0e10,0.19,,,,,,, +2004-02-02 18:52:20,18.3S,52.3E,3.0e10,0.1,,,,, +2004-01-22 01:06:43,50.6S,157.8E,37.0,23.2e10,0.64,,,, +2004-01-17 20:11:02,2.8e10,0.098,,,,,,, +2004-01-16 11:17:06,9.8e10,0.3,,,,,,, +2004-01-02 04:27:59,28.2S,3.2E,63.0,13.4e10,0.39,,,, +2003-12-09 22:36:23,67.1S,90.8W,64.3e10,1.6,,,,, +2003-11-26 02:00:04,22.9S,22.7E,32.0,3.5e10,0.12,,,, +2003-11-10 13:54:06,64.5S,136.2E,23.0,20.1,14.8,-8.7,10.4,51.8e10,1.3 +2003-11-01 14:09:30,51.4S,151.7E,7.3e10,0.23,,,,, +2003-10-16 00:47:28,28.5e10,0.77,,,,,,, +2003-10-13 14:06:59,3.0e10,0.1,,,,,,, +2003-10-07 00:23:56,3.7e10,0.13,,,,,,, +2003-09-27 12:59:02,21.0N,86.6E,26.0,18.2,-1.0,-5.4,-17.3,215.0e10,4.6 +2003-09-22 03:45:43,3.3e10,0.11,,,,,,, +2003-09-21 07:40:00,2.0e10,0.073,,,,,,, +2003-09-20 19:04:01,3.0e10,0.1,,,,,,, +2003-09-02 20:00:46,51.3N,161.0W,38.5e10,1,,,,, +2003-08-26 22:08:45,7.2e10,0.23,,,,,,, +2003-08-26 08:44:07,24.9e10,0.68,,,,,,, +2003-08-17 13:16:07,39.0S,34.0E,64.7e10,1.6,,,,, +2003-08-01 04:09:32,2.1e10,0.076,,,,,,, +2003-07-21 05:11:28,5.8e10,0.19,,,,,,, +2003-06-22 22:53:28,2.1e10,0.076,,,,,,, +2003-06-21 14:49:57,3.8e10,0.13,,,,,,, +2003-06-16 17:17:19,6.5e10,0.21,,,,,,, +2003-06-10 14:11:07,41.8S,122.9E,3.2e10,0.11,,,,, +2003-05-27 23:32:32,5.2N,166.2E,6.8e10,0.22,,,,, +2003-05-19 03:38:12,52.1e10,1.3,,,,,,, +2003-05-18 07:51:40,2.1e10,0.076,,,,,,, +2003-05-15 06:28:32,54.0N,80.4W,4.3e10,0.14,,,,, +2003-04-28 13:06:46,2.3e10,0.082,,,,,,, +2003-04-13 17:58:41,14.8N,64.5E,17.0,17.5e10,0.5,,,, +2003-04-07 09:25:28,18.4S,162.6E,2.2e10,0.079,,,,, +2003-04-01 04:40:55,3.1e10,0.11,,,,,,, +2003-03-27 05:50:26,41.4N,87.7W,45.0,14.2e10,0.41,,,, +2003-02-25 23:13:28,40.0N,116.0E,3.3e10,0.11,,,,, +2003-02-12 23:45:57,7.9e10,0.25,,,,,,, +2003-02-12 02:37:54,31.5S,107.5E,12.0e10,0.36,,,,, +2003-02-06 17:00:19,62.9S,113.9W,19.7e10,0.55,,,,, +2003-02-05 06:16:27,10.3e10,0.31,,,,,,, +2003-02-04 14:07:08,59.9S,41.0E,13.5e10,0.4,,,,, +2003-01-30 06:02:59,10.7e10,0.32,,,,,,, +2002-11-28 15:41:53,4.6e10,0.15,,,,,,, +2002-11-21 00:11:17,1.4S,154.0W,24.0e10,0.66,,,,, +2002-11-12 21:49:56,21.1S,6.8W,4.3e10,0.14,,,,, +2002-11-10 22:13:54,16.0N,166.0W,46.0e10,1.2,,,,, +2002-10-09 12:00:35,4.3S,175.9W,4.9e10,0.16,,,,, +2002-10-04 10:08:01,11.7e10,0.35,,,,,,, +2002-09-24 16:48:57,57.9N,112.9E,86.0e10,2,,,,, +2002-08-14 07:48:32,6.9S,126.2W,9.0e10,0.28,,,,, +2002-08-11 20:42:53,18.2S,159.4E,151.0e10,3.3,,,,, +2002-08-10 18:01:51,2.5e10,0.089,,,,,,, +2002-07-25 15:57:32,28.7S,47.0E,23.0e10,0.63,,,,, +2002-07-22 11:16:02,34.0N,106.1E,5.3e10,0.17,,,,, +2002-06-29 16:31:55,15.9e10,0.46,,,,,,, +2002-06-15 11:51:18,2.9e10,0.1,,,,,,, +2002-06-13 15:29:38,24.9S,111.4E,19.1e10,0.54,,,,, +2002-06-02 04:28:20,34.0N,21.0E,450.0e10,8.8,,,,, +2002-04-03 19:10:21,5.3S,27.1E,18.2e10,0.51,,,,, +2002-04-02 02:36:28,3.2e10,0.11,,,,,,, +2002-03-28 21:29:56,2.7e10,0.095,,,,,,, +2002-03-19 05:56:10,8.3e10,0.26,,,,,,, +2002-03-19 02:56:52,5.3e10,0.17,,,,,,, +2002-03-18 14:44:57,60.4S,120.5W,2.0e10,0.073,,,,, +2002-03-09 01:20:24,6.9N,147.3W,24.9e10,0.68,,,,, +2002-03-03 21:10:55,37.5N,154.0E,8.2e10,0.25,,,,, +2002-03-01 03:53:59,29.2N,66.8W,3.8e10,0.13,,,,, +2002-02-09 19:50:26,17.7S,138.7E,7.0e10,0.22,,,,, +2002-02-01 19:07:54,60.7N,116.6E,7.0e10,0.22,,,,, +2002-01-20 16:42:04,48.4N,165.0W,10.4e10,0.31,,,,, +2002-01-03 12:19:37,12.3e10,0.36,,,,,,, +2001-12-14 17:58:04,15.1e10,0.44,,,,,,, +2001-12-12 16:56:13,9.8e10,0.3,,,,,,, +2001-11-26 06:51:52,19.2e10,0.54,,,,,,, +2001-11-13 10:58:48,31.2e10,0.83,,,,,,, +2001-11-11 12:14:02,13.0e10,0.38,,,,,,, +2001-10-27 19:20:12,52.7N,3.8E,3.6e10,0.12,,,,, +2001-10-14 12:03:11,8.9e10,0.27,,,,,,, +2001-10-12 03:11:53,6.2e10,0.2,,,,,,, +2001-10-06 06:29:38,15.8e10,0.45,,,,,,, +2001-09-25 11:54:06,4.2e10,0.14,,,,,,, +2001-08-26 16:08:52,3.8e10,0.13,,,,,,, +2001-08-18 13:57:43,4.0e10,0.13,,,,,,, +2001-07-26 21:20:19,0.4N,84.8E,32.6e10,0.86,,,,, +2001-07-23 22:19:11,41.0N,77.0W,124.0e10,2.8,,,,, +2001-05-06 04:30:29,5.0e10,0.16,,,,,,, +2001-04-27 09:46:18,13.0e10,0.38,,,,,,, +2001-04-23 06:12:35,28.0N,133.6W,29,460.0e10,9,,,, +2001-04-14 06:40:36,2.4e10,0.086,,,,,,, +2001-04-13 00:29:57,15.3S,162.4E,25.1e10,0.68,,,,, +2001-02-09 21:27:55,10.8e10,0.32,,,,,,, +2001-02-04 05:53:38,64.0S,97.3E,15.1e10,0.44,,,,, +2001-01-28 16:19:18,66.0N,31.3E,10.8e10,0.32,,,,, +2000-12-15 13:22:59,41.3N,95.2E,26.2e10,0.71,,,,, +2000-12-15 03:46:27,50.4N,58.9E,2.7e10,0.095,,,,, +2000-11-28 12:20:13,11.9e10,0.35,,,,,,, +2000-11-13 00:28:01,13.6S,5.8W,6.6e10,0.21,,,,, +2000-11-06 07:18:57,52.0S,22.2W,6.9e10,0.22,,,,, +2000-10-11 23:29:55,31.7S,5.5W,8.1e10,0.25,,,,, +2000-09-24 06:57:19,2.7e10,0.095,,,,,,, +2000-09-23 04:00:45,58.5S,142.6E,2.2e10,0.079,,,,, +2000-09-19 22:12:38,3.2S,133.8W,8.9e10,0.27,,,,, +2000-08-25 01:12:25,14.5N,106.1W,138.5e10,3.1,,,,, +2000-08-13 03:00:32,36.7N,127.8W,6.5e10,0.21,,,,, +2000-08-01 16:48:27,50.2S,101.9W,18.2e10,0.51,,,,, +2000-07-31 07:06:34,15.7N,138.5W,3.8e10,0.13,,,,, +2000-07-19 17:40:25,17.7S,94.1E,10.7e10,0.32,,,,, +2000-07-15 16:13:29,46.6S,163.3E,2.1e10,0.076,,,,, +2000-07-09 01:08:45,12.1e10,0.36,,,,,,, +2000-07-07 01:34:20,15.0N,140.7E,6.5e10,0.21,,,,, +2000-06-27 10:06:51,34.9N,36.8E,2.7e10,0.095,,,,, +2000-06-23 09:03:42,69.2N,44.0W,2.0e10,0.073,,,,, +2000-06-22 20:02:11,32.9N,159.0E,3.0e10,0.1,,,,, +2000-06-18 13:40:02,13.3e10,0.39,,,,,,, +2000-06-14 16:39:18,28.1N,107.3E,48,14.5e10,0.42,,,, +2000-06-04 03:17:39,19.0e10,0.53,,,,,,, +2000-06-03 03:24:49,36.8N,74.8W,3.0e10,0.1,,,,, +2000-06-02 18:44:16,27.5S,18.9W,3.0e10,0.1,,,,, +2000-05-29 16:46:28,6.0e10,0.19,,,,,,, +2000-05-06 11:51:52,49.9N,18.4E,2.8e10,0.098,,,,, +2000-05-03 10:40:09,5.0S,73.0E,5.9e10,0.19,,,,, +2000-04-21 13:42:20,8.6e10,0.27,,,,,,, +2000-04-04 13:38:15,2.3e10,0.082,,,,,,, +2000-03-28 15:27:17,1.0N,98.3E,6.3e10,0.2,,,,, +2000-03-19 05:11:50,4.9e10,0.16,,,,,,, +2000-03-06 08:29:18,58.0N,175.0E,96.0e10,2.2,,,,, +2000-02-18 09:25:59,0.9S,109.2E,362.0e10,7.3,,,,, +2000-02-17 14:22:07,14.2N,115.9E,2.2e10,0.079,,,,, +2000-01-18 16:43:42,60.3N,134.6W,105.0e10,2.4,,,,, +2000-01-18 08:33:58,24.3N,94.9W,3.5e10,0.12,,,,, +1999-12-16 00:07:22,26.5S,11.3W,6.7e10,0.21,,,,, +1999-12-11 17:31:52,27.3e10,0.74,,,,,,, +1999-12-10 18:56:50,2.8e10,0.098,,,,,,, +1999-12-03 17:24:45,4.2e10,0.14,,,,,,, +1999-12-01 19:38:15,2.3e10,0.082,,,,,,, +1999-11-30 02:18:53,4.5e10,0.15,,,,,,, +1999-11-15 20:01:28,8.1S,75.4E,7.4e10,0.23,,,,, +1999-11-07 17:53:06,2.3S,77.4W,8.9e10,0.27,,,,, +1999-10-26 17:19:42,13.7N,70.8W,8.6e10,0.27,,,,, +1999-09-08 23:55:35,22.4N,0.2E,2.8e10,0.098,,,,, +1999-09-08 14:41:53,32.5N,104.6E,32,9.0e10,0.28,,,, +1999-08-16 05:18:20,35.0N,107.2W,3.6e10,0.12,,,,, +1999-08-06 03:22:37,6.8e10,0.22,,,,,,, +1999-08-03 18:25:49,64.7S,18.8W,35.6e10,0.93,,,,, +1999-07-10 08:11:42,37.8S,39.6E,52,32.6e10,0.86,,,, +1999-07-07 04:14:41,39.5S,174.4E,14.0e10,0.41,,,,, +1999-06-25 06:27:41,50.0N,121.0E,69.0,12.4e10,0.37,,,, +1999-05-23 07:02:10,16.4S,116.3W,2.6e10,0.092,,,,, +1999-04-26 11:33:06,22.5S,6.5E,9.2e10,0.28,,,,, +1999-04-26 09:49:26,32.8S,159.1E,3.3e10,0.11,,,,, +1999-03-31 23:54:35,17.9S,22.6E,23.4e10,0.64,,,,, +1999-03-28 15:37:01,0.8N,97.6E,30.4e10,0.81,,,,, +1999-03-02 22:23:25,18.9N,50.5E,5.9e10,0.19,,,,, +1999-02-18 23:15:25,54.9S,64.6W,15.4e10,0.44,,,,, +1999-02-01 14:24:09,80.0N,154.2E,2.8e10,0.098,,,,, +1999-01-19 02:32:21,7.9N,85.8E,2.4e10,0.086,,,,, +1999-01-14 08:06:05,44.0S,129.7W,32.0,506.0e10,9.8,,,, +1999-01-12 19:24:52,4.3e10,0.14,,,,,,, +1999-01-11 05:18:17,2.4e10,0.086,,,,,,, +1999-01-02 18:25:51,47.0N,103.0E,65.0,3.5e10,0.12,,,, +1998-12-22 09:24:00,2.7e10,0.095,,,,,,, +1998-11-23 20:20:14,82.3N,160.1E,2.5e10,0.089,,,,, +1998-11-11 16:46:18,6.5N,156.4E,65.6e10,1.6,,,,, +1998-10-03 12:58:50,3.2e10,0.11,,,,,,, +1998-09-04 09:16:11,12.8e10,0.38,,,,,,, +1998-09-01 11:15:04,34.6N,23.6E,2.4e10,0.086,,,,, +1998-08-30 00:20:12,4.1e10,0.14,,,,,,, +1998-08-08 12:55:22,2.3e10,0.082,,,,,,, +1998-07-28 14:16:53,6.3e10,0.2,,,,,,, +1998-03-24 09:08:14,2.7e10,0.095,,,,,,, +1998-03-22 22:25:37,1.4N,26.6E,14.0e10,0.41,,,,, +1998-01-08 16:10:21,6.2e10,0.2,,,,,,, +1998-01-04 23:00:27,35.1S,33.4E,30.0,17.1,6.0,-10.6,12.0,7.4e10,0.23 +1997-12-28 03:58:18,23.1S,152.4E,3.1e10,0.11,,,,, +1997-12-09 08:15:55,62.7N,49.9W,27.0e10,0.73,,,,, +1997-11-07 07:46:55,57.3S,167.2E,80.0e10,1.9,,,,, +1997-10-09 18:47:15,31.8N,106.0W,37.0,19.0e10,0.53,,,, +1997-10-01 14:26:43,46.7N,108.9E,6.2e10,0.2,,,,, +1997-09-30 12:31:18,38.1S,63.9E,2.3e10,0.082,,,,, +1997-09-05 11:41:54,31.1S,56.4E,19.0e10,0.53,,,,, +1997-08-20 17:16:43,2.6e10,0.092,,,,,,, +1997-08-15 01:05:22,2.2e10,0.079,,,,,,, +1997-07-30 03:01:51,5.0e10,0.16,,,,,,, +1997-07-04 12:22:33,15.8S,175.8W,2.7e10,0.095,,,,, +1997-05-22 08:30:15,4.5e10,0.15,,,,,,, +1997-04-27 22:34:21,16.7N,87.5E,32.5e10,0.86,,,,, +1997-02-19 04:31:35,16.3S,87.7W,14.0e10,0.41,,,,, +1997-02-15 15:23:35,35.5N,115.6E,15.0e10,0.43,,,,, +1997-02-06 18:28:34,2.6e10,0.092,,,,,,, +1997-01-28 17:49:49,2.4e10,0.086,,,,,,, +1997-01-23 10:03:27,15.0S,94.2E,27.0e10,0.73,,,,, +1997-01-22 21:13:16,32.2N,29.0E,48.0e10,1.2,,,,, +1997-01-04 06:46:39,25.7N,5.3W,4.3e10,0.14,,,,, +1997-01-03 15:08:07,35.0e10,0.92,,,,,,, +1996-12-17 04:16:18,34.1N,37.2W,4.1e10,0.14,,,,, +1996-12-10 06:09:32,25.0e10,0.68,,,,,,, +1996-12-04 17:00:34,4.9e10,0.16,,,,,,, +1996-12-01 13:19:35,6.2e10,0.2,,,,,,, +1996-11-22 10:06:17,6.8e10,0.22,,,,,,, +1996-11-08 16:02:13,6.1e10,0.2,,,,,,, +1996-10-30 12:48:19,2.1S,123.1W,2.1e10,0.076,,,,, +1996-10-28 04:46:21,27.4N,79.4W,4.3e10,0.14,,,,, +1996-10-23 08:28:06,47.3S,20.6E,4.4e10,0.15,,,,, +1996-10-19 19:01:08,29.7N,34.7W,13.0e10,0.38,,,,, +1996-10-07 17:43:44,4.5e10,0.15,,,,,,, +1996-10-05 19:21:02,49.6S,145.9E,25.0e10,0.68,,,,, +1996-08-17 15:46:08,3.4e10,0.12,,,,,,, +1996-08-15 16:07:51,8.4e10,0.26,,,,,,, +1996-08-09 18:14:56,3.0e10,0.1,,,,,,, +1996-08-07 03:16:03,15.0e10,0.43,,,,,,, +1996-08-06 04:50:32,13.0e10,0.38,,,,,,, +1996-08-05 19:27:52,22.0e10,0.61,,,,,,, +1996-08-05 15:19:30,8.0e10,0.25,,,,,,, +1996-07-17 03:16:07,31.8N,111.4E,5.0e10,0.16,,,,, +1996-07-12 14:04:45,20.7N,93.6W,3.2e10,0.11,,,,, +1996-06-25 11:22:40,2.1e10,0.076,,,,,,, +1996-05-08 01:02:05,2.8e10,0.098,,,,,,, +1996-05-01 13:19:25,3.5e10,0.12,,,,,,, +1996-03-31 00:53:57,2.7e10,0.095,,,,,,, +1996-03-30 04:03:32,31.1S,84.3W,12.0e10,0.36,,,,, +1996-03-29 20:30:54,21.5N,158.1W,12.8e10,0.38,,,,, +1996-03-25 17:00:41,4.4e10,0.15,,,,,,, +1996-03-13 08:31:01,23.0e10,0.63,,,,,,, +1996-02-16 07:03:14,5.5e10,0.18,,,,,,, +1996-02-15 02:38:05,76.0N,127.0W,5.0e10,0.16,,,,, +1996-01-18 17:10:49,12.0e10,0.36,,,,,,, +1996-01-15 13:44:23,59.8S,175.8E,26.0e10,0.71,,,,, +1995-12-27 12:55:01,2.2e10,0.079,,,,,,, +1995-12-22 13:26:29,70.2S,73.3W,45.0e10,1.1,,,,, +1995-12-09 19:54:26,2.9S,79.0W,12.0e10,0.36,,,,, +1995-11-25 05:29:31,2.9e10,0.1,,,,,,, +1995-11-13 03:10:47,2.1e10,0.076,,,,,,, +1995-10-01 02:42:01,3.5e10,0.12,,,,,,, +1995-09-09 07:38:38,50.0e10,1.3,,,,,,, +1995-08-24 21:54:35,12.0e10,0.36,,,,,,, +1995-08-17 16:39:02,16.0e10,0.46,,,,,,, +1995-08-06 04:38:09,5.5e10,0.18,,,,,,, +1995-08-05 17:14:10,11.6N,104.3W,20.0e10,0.56,,,,, +1995-07-11 18:38:41,28.5S,93.3E,13.0e10,0.38,,,,, +1995-07-09 18:20:09,0.9S,66.3E,2.5e10,0.089,,,,, +1995-07-07 17:33:37,40.2N,76.1W,14.0e10,0.41,,,,, +1995-06-09 09:28:38,2.5e10,0.089,,,,,,, +1995-04-02 12:32:38,2.5e10,0.089,,,,,,, +1995-02-16 13:05:47,16.7N,141.7W,6.0e10,0.19,,,,, +1995-01-18 10:17:26,51.5N,115.4E,7.0e10,0.22,,,,, +1995-01-10 21:08:41,2.5e10,0.089,,,,,,, +1995-01-04 04:16:17,46.4N,12.1E,4.1e10,0.14,,,,, +1995-01-02 20:41:38,3.0e10,0.1,,,,,,, +1994-12-18 12:45:40,5.0e10,0.16,,,,,,, +1994-12-16 09:41:03,42.2S,27.6E,5.0e10,0.16,,,,, +1994-11-03 20:01:36,6.5N,89.0E,235.0e10,5,,,,, +1994-11-01 06:50:46,1.5S,84.5W,100.0e10,2.3,,,,, +1994-10-27 04:21:29,32.0e10,0.85,,,,,,, +1994-10-20 00:11:21,45.2S,1.9W,8.7e10,0.27,,,,, +1994-10-08 03:24:22,6.6e10,0.21,,,,,,, +1994-09-22 04:22:17,6.7e10,0.21,,,,,,, +1994-08-15 23:16:48,16.4e10,0.47,,,,,,, +1994-06-15 00:02:26,45.0N,73.5W,4.1e10,0.14,,,,, +1994-06-03 20:48:42,50.9e10,1.3,,,,,,, +1994-05-29 09:30:58,52.8N,2.3E,38.4e10,1,,,,, +1994-02-01 22:38:09,2.7N,164.1E,1.82e13,30,,,,, +1993-11-29 17:48:41,26.5N,78.3E,2.6e10,0.092,,,,, +1993-10-31 03:39:27,51.3N,100.9W,4.0e10,0.13,,,,, +1991-10-04 09:22:47,78.7N,6.3E,55.0e10,1.4,,,,, +1990-10-01 03:51:47,7.5N,142.8E,250.0e10,5.2,,,,, +1988-04-15 03:03:10,4.1S,124.3E,758e10,14,,,,, \ No newline at end of file diff --git a/0-coursework/simple_text.txt b/0-coursework/simple_text.txt new file mode 100644 index 0000000..5be377b --- /dev/null +++ b/0-coursework/simple_text.txt @@ -0,0 +1 @@ +The quick brown fox jumps over the lazy dog! diff --git a/0-coursework/stundent_grades.json b/0-coursework/stundent_grades.json new file mode 100644 index 0000000..1cc1413 --- /dev/null +++ b/0-coursework/stundent_grades.json @@ -0,0 +1 @@ +[{"name": "Stanley", "math": "85", "science": "90", "history": "92"}, {"name": "Casey", "math": "75", "science": "80", "history": "85"}, {"name": "Taylor", "math": "95", "science": "100", "history": "100"}] \ No newline at end of file diff --git a/EXAMPLES/.hangman.py.swp b/EXAMPLES/.hangman.py.swp deleted file mode 100644 index 6c3c56ebfa7ecb906382b7fde028049415634bf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2L2DC16vro?TNMSbeO(XTrI>A1RDuyif>bONV@0SXY<8!~*v-tcGcg22Px>A7 z=EZ~FJc>uZgbLpE><93_n@yVbQ1DoM13z}B^X9!bzuimdcGn(lY|{1mRe^C<2p7I@ z@6;~TK4n5Axi)#OY_W9QNTNjAeP^)c*zsbTFzhK8W@Fbkx)Z07wPEY=?ai(Gt#;Ut zbZ-#pdNw{b6)&;@Ht;V7hHmfDjYVk_?V`6#=g)2bO9qZ*18jf|umLu}2G{@_ zU;}L6gd1>KO}xYzPF3evs;;#o*J{caHoykh02^QfY=8~00XDz}*Z><~18m>~8i*1h zJ}(IIU=hvZ|Nqn9|G&=&@eBL_-@!NV1-u1sz!2O68=whR!2a zy`i+WGctKX%_a@T*2#Qa&KshPDdI-C(Y;O?DlM%xX}w&Msg;dcP?jt0$h(7Yvt{g- zz1ad1l;fb(PP|Kpi{US#3M((@Y`&MthFsdr==qv^Ca0K`rX1gAOFxy`$F}JSf?(1e zl1;Z3vGa-N4jCKmlpe}iAJu`jQW;rEMyF$v8hUUmDU}Yl)hSV+C_OC_&@Eagw5E-l zRjw-=rCC4ntEQ&G5TSH7biUUrlSh+BQWTJRgSv%M?HgAG<#i41laGIDwJ?\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
date/time for peak brightnesslatitudelongitudealtitude(km)velocity(km/s)velocity in x directionvelocity in y directionvelocity in z directionradiated energytotal impact energy
02022-04-21 22:15:2855.5S68.9W28.41.270000e+01-4.20011.63.23.900000e+100.130
12022-04-12 21:59:128.2S57.8E23.82.060000e+01-19.300-6.33.65.200000e+100.170
22022-04-04 00:30:393.2S64.3W31.51.970000e+01-17.6005.3-7.22.700000e+100.095
32022-03-30 18:19:1845.9S171.4W74.02.000000e+100.073NaNNaNNaNNaN
42022-03-28 10:20:247.7S74.3E29.01.960000e+01-16.600-10.40.13.780000e+110.980
\n", + "" + ], + "text/plain": [ + " date/time for peak brightness latitude longitude altitude(km) \\\n", + "0 2022-04-21 22:15:28 55.5S 68.9W 28.4 \n", + "1 2022-04-12 21:59:12 8.2S 57.8E 23.8 \n", + "2 2022-04-04 00:30:39 3.2S 64.3W 31.5 \n", + "3 2022-03-30 18:19:18 45.9S 171.4W 74.0 \n", + "4 2022-03-28 10:20:24 7.7S 74.3E 29.0 \n", + "\n", + " velocity(km/s) velocity in x direction velocity in y direction \\\n", + "0 1.270000e+01 -4.200 11.6 \n", + "1 2.060000e+01 -19.300 -6.3 \n", + "2 1.970000e+01 -17.600 5.3 \n", + "3 2.000000e+10 0.073 NaN \n", + "4 1.960000e+01 -16.600 -10.4 \n", + "\n", + " velocity in z direction radiated energy total impact energy \n", + "0 3.2 3.900000e+10 0.130 \n", + "1 3.6 5.200000e+10 0.170 \n", + "2 -7.2 2.700000e+10 0.095 \n", + "3 NaN NaN NaN \n", + "4 0.1 3.780000e+11 0.980 " + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "csv_file_name = 'nasas fireballs.csv'\n", + "nfb = pd.read_csv(csv_file_name)\n", + "nfb.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
latitudelongitude
055.5S68.9W
18.2S57.8E
23.2S64.3W
345.9S171.4W
47.7S74.3E
\n", + "
" + ], + "text/plain": [ + " latitude longitude\n", + "0 55.5S 68.9W\n", + "1 8.2S 57.8E\n", + "2 3.2S 64.3W\n", + "3 45.9S 171.4W\n", + "4 7.7S 74.3E" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nfb['date'] = pd.to_datetime(nfb['date/time for peak brightness'])\n", + "nfb[['latitude', 'longitude']].head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "'''ArithmeticErrorlatitude\tlongitude\n", + "0\t55.5S\t68.9W\n", + "1\t8.2S\t57.8E\n", + "2\t3.2S\t64.3W\n", + "3\t45.9S\t171.4W'''\n", + "def convert_latlon(s):\n", + " direction = s[-1]\n", + " num = float(s[:-1])\n", + " if direction in ['S', 'W']:\n", + " num *= -1\n", + " return num\n", + "nfb['lat_deg'] = nfb['latitude'].apply(lambda s: convert_latlon(s))\n", + "nfb['lon_deg'] = nfb['longitude'].apply(lambda s: convert_latlon(s))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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d3eHk5MTHnnkEZ1tWsrLy1FUVKT2R0RERE2XWRriVlRUICMjA5GRkX+v2MYGkZGROHToEADA398fBw8exJ07d1BdXY309HR06dJF6zITExPh5uam+vP392/07SAiIiLLMUvQUlBQgOrqanh5ealN9/LyQm5uLgDggQcewMiRI9G7d2/07NkTHTp0wJgxY7Quc86cOZDL5aq/7OzsRt0GIiIisiyr6j30zjvv4J133jFoXgcHBzg4ODRyioiIiMhamKWkxcPDA7a2tsjLy1ObnpeXB29vb3MkgYiIiCTOLEGLvb09QkJCkJaWppqmUCiQlpaGfv36mSMJREREJHEmqx4qLi7G+fPnVZ8zMzNx/PhxuLu7IyAgAPHx8YiNjUVoaCjCwsKQlJSEkpISTJs2zVRJICIioibMZEHL0aNHERERofocHx8PAIiNjUVKSgpiYmKQn5+PuXPnIjc3F7169cKuXbvqNM4lIiIi0kQmmshbCYuKiuDm5ga5XA5XV1dLJ4eIiIgMYMz922pemEhERESkC4MWIiIikgQGLURERCQJDFqIiIhIEhi0EBERkSQwaCEiIiJJYNBCREREksCghYiIiCSBQQsRERFJAoMWIiIikgQGLURERCQJDFqIiIhIEhi0EBERkSQwaCEiIiJJYNBCREREksCghYiIiCSBQQsRERFJAoMWIiIikgQGLURERCQJDFqIiIhIEhi0EBERkSQwaCEiIiJJYNBCREREksCghYiIiCTBqoKWzMxMREREICgoCD169EBJSYmlk0RERERWws7SCahp6tSpWLBgAQYNGoSbN2/CwcHB0kkiIiIiK2E1Qctvv/2GZs2aYdCgQQAAd3d3C6eIiIiIrInJqof27duH0aNHw9fXFzKZDFu2bKkzT3JyMgIDA+Ho6Ijw8HAcPnxY9d25c+fQvHlzjB49Gn369MG7775rqqQRERFRE2CyoKWkpATBwcFITk7W+H1qairi4+Mxb948HDt2DMHBwYiKisL169cBAFVVVfjpp5/w0Ucf4dChQ9izZw/27NljquQRERGRxJksaBkxYgQWLFiA6Ohojd8vXboUcXFxmDZtGoKCgrB8+XI4Oztj9erVAAA/Pz+EhobC398fDg4OGDlyJI4fP651feXl5SgqKlL7IyIioqbLLL2HKioqkJGRgcjIyL9XbGODyMhIHDp0CADQ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nfb.plot(x='date', y='radiated energy', style='.', logy=True, title='Radiated energy vs date')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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T+d99qKj5uIVRG2S+uYQHx+PJUuWID09HQDw9ddfo2vXrlizZo1Wj5/Zs2drfT4kJAS5ubmorKzUqsU4ceJEo/tev349amtr8e2332rVTOirOjc0km63bt1QWVmJhIQEo/tqTjnN2Y+punbtCuBGomtTtxkSEgLgRq1NfHy8uPz69esoLCxE//79tdbv27cvBgwYgFWrVqFLly44c+YM3nvvPZP2NWzYMPj7+yMnJwdDhgzB1q1bxaRoTe7u7khOTkZycjLq6uowYcIEvPHGG8jIyICLi4vebZt6reljzgjLxtb19PTU6UlWV1eH4uJirWUhISFiLYqmhtdRt27dAAA+Pj4Wu2aINDGnhdqsESNGICYmBosXLxYHmFPXFKhrBgBg79692LNnj9Znx4wZg+vXr2t1U66vrzfpZqhvH0qlEp988onOuu7u7nq7Jz/wwAPYs2cPvv/+e533Ll++jOvXrze7nObsx1Q+Pj4YMWIEPvjgA50bIwBcuHCh0W1ER0ejU6dOWL58udb+V61aJTZDNTRp0iT88MMPWLx4MTp16oTRo0ebVF4HBwfcd999WL9+PT777DNcv35dq2kIAC5evKj12tnZGeHh4RAEQavJpyFTrzV91GPVmNJ13di63bp108lL+vDDD3VqWsaMGYOff/4Z+/btE5dduHBBK1cIABITE+Hh4YF58+bpPXZTvl8iY1jTQm3aCy+8gPvvvx/Z2dl44oknMHbsWKxZswZJSUm46667UFBQgGXLliE8PByVlZXi58aNG4fBgwcjPT0dhYWFCA8Px5o1a0xKor3jjjvg7OyMcePG4R//+AcqKyuxfPly+Pj46NzIo6KisHTpUsydOxfdu3eHj48PRo4ciRdeeAHffvstxo4diylTpiAqKgpVVVU4cuQIvv76axQWFsLb27tZ5VSfH1P2Y46srCwMGTIE/fr1Q2pqKrp27YrS0lLs2bMHf/31F3799Vejn3d2dsacOXPwzDPPYOTIkXjggQdQWFiI7OxsdOvWTW/NwkMPPYQXX3wRa9euxZNPPil2vzZFcnIy3nvvPcyePRv9+vXT6S58xx13wM/PD4MHD4avry9+++03LFmyBHfddRc6dOhgcLumXmv6REVFAQBefvllPPjgg2jXrh3GjRund+C9yMhIODo6YsGCBVAqlZDL5eIYQY8//jieeOIJ3Hvv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nfb.plot(x='altitude(km)', y='radiated energy', style='.', logy=True, title='Radiated energy vs altitude')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAHLCAYAAAAEHKhwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZmklEQVR4nO3deVxU5eIG8GcAWZURRFkUxCXXFBTE3EUpLiYmWlmaIpbXW2kLPyu5t6vV1cgW45qUZiktWuRuuVRShmsqpKmlqWGSsroMsgjCvL8/uHNimIUZGJg58Hw/Hz45Z3nPOwNxHt7tKIQQAkREREQ2zs7aFSAiIiIyBUMLERERyQJDCxEREckCQwsRERHJAkMLERERyQJDCxEREckCQwsRERHJAkMLERERyQJDCxEREckCQwuRBV28eBEKhQIpKSnStpdeegkKhcJ6ldJDXz1J/hQKBV566aVGKZs/M2QLGFqo2UtJSYFCoZC+HBwc0LFjR8ycOROXL1+2dvWMevfdd3mTIJu1c+fORgtJRPowtFCL8corr+CTTz7BypUrERUVhU8//RSjRo3CrVu3GvW6L774IsrKyup1LkML2YrOnTujrKwM06dPl7bt3LkTL7/8shVrRS2Ng7UrQNRUoqKiEBoaCgB47LHH4OXlhaVLl2L79u148MEHG+26Dg4OcHDg/2qWUFJSAjc3N2tXo0VSKBRwdna2djWohWNLC7VYI0aMAABcuHBB2lZRUYGFCxciJCQESqUSbm5uGDFiBL7//nud82/cuIGZM2dCqVSibdu2iI2NxY0bN3SO0zemZe3atRgzZgw6dOgAJycn9OnTB++9957WMYGBgTh9+jR++OEHqWtr9OjRWtd/5pln4O/vDycnJ3Tv3h1Lly6FWq2uVz0NMeU6mvEOb775Jt5//31069YNTk5OGDRoEI4ePapT5pkzZ3D//ffD09MTzs7OCA0Nxfbt27WO0XTr/fDDD3jiiSfQoUMHdOrUSdqfnJyMrl27wsXFBWFhYdi3bx9Gjx4tfUbFxcVwc3PD008/rXP9P//8E/b29khMTNT7nm/fvg1PT0/ExcXp7CsqKoKzszPmz58vbXvnnXfQt29fuLq6wsPDA6GhoVi/fr3BzzQvLw8ODg56WynOnj0LhUKBFStWSNtM/V7r89NPPyEqKgru7u5o3bo1xo4di8OHD+scd+PGDTz77LMIDAyEk5MTOnXqhBkzZqCwsBCA7piWmTNnIjk5GQC0ul+FEAgMDMR9992nc41bt25BqVRizpw5ddabSB/++Uct1sWLFwEAHh4e0raioiJ88MEHePjhhzF79mzcvHkTH374ISIjI3HkyBEEBwcDAIQQuO+++7B//3784x//QO/evbFlyxbExsaadO333nsPffv2xYQJE+Dg4IAvv/wSTzzxBNRqNZ588kkAQFJSEubNm4fWrVvjX//6FwDA29sbAFBaWopRo0bh8uXLmDNnDgICAnDw4EEkJCQgJycHSUlJFqmnqdfRWL9+PW7evIk5c+ZAoVDg9ddfx6RJk/D777+jVatWAIDTp09j2LBh6NixIxYsWAA3Nzd88cUXmDhxIjZt2oSYmBitMp944gm0b98eCxcuRElJifT5zZ07FyNGjMCzzz6LixcvYuLEifDw8JCCTevWrRETE4PU1FQsW7YM9vb2UpmfffYZhBCYNm2a3vfdqlUrxMTEYPPmzVi1ahUcHR2lfVu3bkV5eTkeeughAMDq1avx1FNP4f7778fTTz+NW7du4eeff8aPP/6IqVOn6i3f29sbo0aNwhdffIFFixZp7UtNTYW9vT0eeOCBen0Pajp9+jRGjBgBd3d3PP/882jVqhVWrVqF0aNH44cffsDgwYMBVAe8ESNG4Ndff8WsWbMwcOBAFBYWYvv27fjzzz/h5eWlU/acOXNw5coVfPvtt/jkk0+k7QqFAo888ghef/11XLt2DZ6entK+L7/8EkVFRXjkkUcM1pnIKEHUzK1du1YAEHv27BEFBQUiOztbbNy4UbRv3144OTmJ7Oxs6djKykpRXl6udf7169eFt7e3mDVrlrRt69atAoB4/fXXtc4dMWKEACDWrl0rbV+0aJGo/b9aaWmpTj0jIyNF165dtbb17dtXjBo1SufY//znP8LNzU389ttvWtsXLFgg7O3txaVLl8yupz6mXicrK0sAEO3atRPXrl2Tjtu2bZsAIL788ktp29ixY0W/fv3ErVu3pG1qtVoMHTpU3HHHHdI2zfdt+PDhorKyUtpeXl4u2rVrJwYNGiRu374tbU9JSREAtD6vr7/+WgAQu3bt0qp///799X6uNWnOrVl3IYQYN26c1vfpvvvuE3379jValj6rVq0SAMTJkye1tvfp00eMGTNGem3q90AI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vny59HybGTNm4LXXXtN6TtAPP/yAuLg4BAQE4KOPPoKPj48Va91y/PLLL5g2bRo6dOiA5cuXS8/sImoojmkhIiIiWeCYFiIiIpIFhhYiIiKShWYzpkWtVuPKlSto06YNnyBKREQkE0II3Lx5E35+frCzM96W0mxCy5UrV6TnaBAREZG8ZGdno1OnTkaPaTahRbNcdnZ2tvQ8DSIiIrJtRUVF8Pf3N+mxF80mtGi6hNzd3RlaiIiIZMaUoR0ciEtERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCRERmyVGV4eCFQuSoyqxdFWphms2zh4iIqPGlHr2EhM0noRaAnQJInNQPUwYFWLta1EKwpYWIiEySoyqTAgsAqAXwz82n2OJCTYahhYiITJJVWCIFFo0qIXCxsNQ6FaIWh6GFiIhM0sXLDXYK7W32CgUCvVytUyFqcRhaiIjIJL5KFyRO6gd7RXVysVco8OqkO+GrdLFyzail4EBcIiIy2ZRBARjZoz0uFpYi0MuVgYWaFEMLERGZxVfpwrBCVsHuISIiIpIFhhYiIiKSBauElpiYGHh4eOD+++/X2VdaWorOnTtj/vz5VqgZERER2SqrhJann34aH3/8sd59S5YswV133dXENSIiIiJbZ5XQMnr0aLRp00Zn+7lz53DmzBlERUVZoVZERERky8wOLenp6YiOjoafnx8UCgW2bt2qc0xycjICAwPh7OyMwYMH48iRIyaVPX/+fCQmJppbJSIiImoBzA4tJSUlCAoKQnJyst79qampiI+Px6JFi5CZmYmgoCBERkYiPz/faLnbtm1Djx490KNHD3OrRERERC2A2eu0REVFGe2+WbZsGWbPno24uDgAwMqVK7Fjxw6sWbMGCxYsMHje4cOH8fnnn2PDhg0oLi7G7du34e7ujoULF+o9vry8HOXl5dLroqIic98KERERyYhFx7RUVFQgIyMDERERf13Azg4RERE4dOiQ0XMTExORnZ2Nixcv4s0338Ts2bMNBhbN8UqlUvry9/e32PsgIiIi22PR0FJYWIiqqip4e3trbff29kZubq70OiIiAg888AB27tyJTp061Rlo9ElISIBKpZK+srOzG1x/IiIisl1WWcZ/z549RvfPnDmz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6NAhAIC/vz8OHjyIW7duoaqqCnv37kXPnj0NlpmQkACVSiV9ZWdnN/r7ICIiIutpkoG4hYWFqKqqgre3t9Z2b29vnDlzBgBw1113Ydy4cRgwYADs7OwwduxYTJgwwWCZTk5OcHJyatR6ExERke2wqdlDS5YswZIlS6xdDSIiIrJBTdI95OXlBXt7e+Tl5Wltz8vLg4+PT1NUgYiIiGSuSUKLo6MjQkJCkJaWJm1Tq9VIS0vDkCFDmqIKREREJHMW6x4qLi7G+fPnpddZWVk4fvw4PD09ERAQgPj4eMTGxiI0NBRhYWFISkpCSUkJ4uLiLFUFIiIiasYsFlqOHTuG8PBw6XV8fDwAIDY2FikpKZgyZQoKCgqwcOFC5ObmIjg4GLt379YZnEtERESkj0I0k6cSFhUVQalUQqVSwd3d3drVISIiIhOYc/+2mQcmEhERERnD0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESywNBCREREssDQQkRERLLA0EJERESyYFOhJSsrC+Hh4ejTpw/69euHkpISa1eJiIiIbISDtStQ08yZM7F48WKMGDEC165dg5OTk7WrRERERDbCZkLL6dOn0apVK4wYMQIA4OnpaeUaERERkS2xWPdQeno6oqOj4efnB4VCga1bt+ock5ycjMDAQDg7O2Pw4ME4cuSItO/cuXNo3bo1oqOjMXDgQLz66quWqhoRERE1AxYLLSUlJQgKCkJycrLe/ampqYiPj8eiRYuQmZmJoKAgREZGIj8/HwBQWVmJffv24d1338WhQ4fw7bff4ttvvzV4vfLychQVFWl9ERERUfNlsdASFRWFxYsXIyYmRu/+ZcuWYfbs2YiLi0OfPn2wcuVKuLq6Ys2aNQCAjh07IjQ0FP7+/nBycsK4ceNw/Phxg9dLTEyEUqmUvvz9/S31VoiIiMgGNcnsoYqKCmRkZCAiIuKvC9vZISIiAocOHQIADBo0CPn5+bh+/TrUajXS09PRu3dv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nfb.plot(x='velocity(km/s)', y='radiated energy', style='.', logy=True, logx=True, title='Radiated energy vs velocity')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "could not convert string to float: '2022-04-21 22:15:28'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[9], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mnfb\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcorr\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/frame.py:11049\u001b[0m, in \u001b[0;36mDataFrame.corr\u001b[0;34m(self, method, min_periods, numeric_only)\u001b[0m\n\u001b[1;32m 11047\u001b[0m cols \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mcolumns\n\u001b[1;32m 11048\u001b[0m idx \u001b[38;5;241m=\u001b[39m cols\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m> 11049\u001b[0m mat \u001b[38;5;241m=\u001b[39m \u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mfloat\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mna_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnan\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 11051\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m method \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpearson\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 11052\u001b[0m correl \u001b[38;5;241m=\u001b[39m libalgos\u001b[38;5;241m.\u001b[39mnancorr(mat, minp\u001b[38;5;241m=\u001b[39mmin_periods)\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/frame.py:1993\u001b[0m, in \u001b[0;36mDataFrame.to_numpy\u001b[0;34m(self, dtype, copy, na_value)\u001b[0m\n\u001b[1;32m 1991\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dtype \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1992\u001b[0m dtype \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mdtype(dtype)\n\u001b[0;32m-> 1993\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_mgr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mas_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcopy\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mna_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mna_value\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1994\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m result\u001b[38;5;241m.\u001b[39mdtype \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m dtype:\n\u001b[1;32m 1995\u001b[0m result \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39masarray(result, dtype\u001b[38;5;241m=\u001b[39mdtype)\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/internals/managers.py:1694\u001b[0m, in \u001b[0;36mBlockManager.as_array\u001b[0;34m(self, dtype, copy, na_value)\u001b[0m\n\u001b[1;32m 1692\u001b[0m arr\u001b[38;5;241m.\u001b[39mflags\u001b[38;5;241m.\u001b[39mwriteable \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 1693\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1694\u001b[0m arr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_interleave\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mna_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mna_value\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1695\u001b[0m \u001b[38;5;66;03m# The underlying data was copied within _interleave, so no need\u001b[39;00m\n\u001b[1;32m 1696\u001b[0m \u001b[38;5;66;03m# to further copy if copy=True or setting na_value\u001b[39;00m\n\u001b[1;32m 1698\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m na_value \u001b[38;5;129;01mis\u001b[39;00m lib\u001b[38;5;241m.\u001b[39mno_default:\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/internals/managers.py:1753\u001b[0m, in \u001b[0;36mBlockManager._interleave\u001b[0;34m(self, dtype, na_value)\u001b[0m\n\u001b[1;32m 1751\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1752\u001b[0m arr \u001b[38;5;241m=\u001b[39m blk\u001b[38;5;241m.\u001b[39mget_values(dtype)\n\u001b[0;32m-> 1753\u001b[0m \u001b[43mresult\u001b[49m\u001b[43m[\u001b[49m\u001b[43mrl\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindexer\u001b[49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m arr\n\u001b[1;32m 1754\u001b[0m itemmask[rl\u001b[38;5;241m.\u001b[39mindexer] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 1756\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m itemmask\u001b[38;5;241m.\u001b[39mall():\n", + "\u001b[0;31mValueError\u001b[0m: could not convert string to float: '2022-04-21 22:15:28'" + ] + } + ], + "source": [ + "nfb.corr(numeric_only=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/1-git_and_github/.ignore/git-model.png b/legacy/1-git_and_github/.ignore/git-model.png similarity index 100% rename from 1-git_and_github/.ignore/git-model.png rename to legacy/1-git_and_github/.ignore/git-model.png diff --git a/1-git_and_github/.ignore/graph_reference.png b/legacy/1-git_and_github/.ignore/graph_reference.png similarity index 100% rename from 1-git_and_github/.ignore/graph_reference.png rename to legacy/1-git_and_github/.ignore/graph_reference.png diff --git a/1-git_and_github/README.md b/legacy/1-git_and_github/README.md similarity index 100% rename from 1-git_and_github/README.md rename to legacy/1-git_and_github/README.md diff --git a/2-python_basics/README.md b/legacy/2-python_basics/README.md similarity index 100% rename from 2-python_basics/README.md rename to legacy/2-python_basics/README.md diff --git a/2-python_basics/problems.py b/legacy/2-python_basics/problems.py similarity index 100% rename from 2-python_basics/problems.py rename to legacy/2-python_basics/problems.py diff --git a/3-files_and_paths/README.md b/legacy/3-files_and_paths/README.md similarity index 100% rename from 3-files_and_paths/README.md rename to legacy/3-files_and_paths/README.md diff --git a/3-files_and_paths/problems.py b/legacy/3-files_and_paths/problems.py similarity index 100% rename from 3-files_and_paths/problems.py rename to legacy/3-files_and_paths/problems.py diff --git a/4-system_and_env/README.md b/legacy/4-system_and_env/README.md similarity index 100% rename from 4-system_and_env/README.md rename to legacy/4-system_and_env/README.md diff --git a/4-system_and_env/problems.py b/legacy/4-system_and_env/problems.py similarity index 100% rename from 4-system_and_env/problems.py rename to legacy/4-system_and_env/problems.py diff --git a/5-data_manipulation/README.md b/legacy/5-data_manipulation/README.md similarity index 100% rename from 5-data_manipulation/README.md rename to legacy/5-data_manipulation/README.md diff --git a/5-data_manipulation/problems.py b/legacy/5-data_manipulation/problems.py similarity index 100% rename from 5-data_manipulation/problems.py rename to legacy/5-data_manipulation/problems.py diff --git a/6-exception_handling/README.md b/legacy/6-exception_handling/README.md similarity index 100% rename from 6-exception_handling/README.md rename to legacy/6-exception_handling/README.md diff --git a/7-unit_testing/README.md b/legacy/7-unit_testing/README.md similarity index 100% rename from 7-unit_testing/README.md rename to legacy/7-unit_testing/README.md diff --git a/8-pandas/README.md b/legacy/8-pandas/README.md similarity index 100% rename from 8-pandas/README.md rename to legacy/8-pandas/README.md diff --git a/EXAMPLES/args.py b/legacy/EXAMPLES/args.py similarity index 100% rename from EXAMPLES/args.py rename to legacy/EXAMPLES/args.py diff --git a/EXAMPLES/hangman.py b/legacy/EXAMPLES/hangman.py similarity index 100% rename from EXAMPLES/hangman.py rename to legacy/EXAMPLES/hangman.py diff --git a/EXAMPLES/loop_else.py b/legacy/EXAMPLES/loop_else.py similarity index 100% rename from EXAMPLES/loop_else.py rename to legacy/EXAMPLES/loop_else.py diff --git a/EXAMPLES/readfiles.py b/legacy/EXAMPLES/readfiles.py similarity index 100% rename from EXAMPLES/readfiles.py rename to legacy/EXAMPLES/readfiles.py diff --git a/EXAMPLES/universal_nogui_widget.py b/legacy/EXAMPLES/universal_nogui_widget.py similarity index 100% rename from EXAMPLES/universal_nogui_widget.py rename to legacy/EXAMPLES/universal_nogui_widget.py diff --git a/EXAMPLES/variable_scope.py b/legacy/EXAMPLES/variable_scope.py similarity index 100% rename from EXAMPLES/variable_scope.py rename to legacy/EXAMPLES/variable_scope.py diff --git a/EXAMPLES/wordlist b/legacy/EXAMPLES/wordlist similarity index 100% rename from EXAMPLES/wordlist rename to legacy/EXAMPLES/wordlist diff --git a/EXAMPLES/writefile.py b/legacy/EXAMPLES/writefile.py similarity index 100% rename from EXAMPLES/writefile.py rename to legacy/EXAMPLES/writefile.py diff --git a/0-coursework/week_1.ipynb b/week_1.ipynb similarity index 100% rename from 0-coursework/week_1.ipynb rename to week_1.ipynb diff --git a/0-coursework/week_2.ipynb b/week_2.ipynb similarity index 100% rename from 0-coursework/week_2.ipynb rename to week_2.ipynb diff --git a/0-coursework/week_3.ipynb b/week_3.ipynb similarity index 100% rename from 0-coursework/week_3.ipynb rename to week_3.ipynb diff --git a/0-coursework/week_4.ipynb b/week_4.ipynb similarity index 100% rename from 0-coursework/week_4.ipynb rename to week_4.ipynb diff --git a/week_5.ipynb b/week_5.ipynb new file mode 100644 index 0000000..c66585e --- /dev/null +++ b/week_5.ipynb @@ -0,0 +1,38 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Week 5\n", + "\n", + "**Topics** - Python Editors, Writing and runnig scripts, argparse library\n", + "\n", + "## Python Editors (IDEs)\n", + "A good editor has a few features that really help with writing code:\n", + "* Syntax highlighting\n", + "* Linting - A Linter is a tool that looks at your code for issues like missing variables, misspelled stuff, and any time you diverge from standards and conventions that the rest of the world thinks are a good idea. \n", + "* You make like for your ide to be able to run your code from the editor and give you the output. Or you may prefer to run it from a terminal window separately. \n", + "* Debugging - If you run your code from the editor, you should be able to set breakpoints to pause your script and see what variables are set, etc. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 09e3ca020b25c128cc155c578ef3b7a2798cd8f2 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 17:18:12 -0700 Subject: [PATCH 071/163] rename week 1 --- .../fireballs.ipynb | 36 +++++++++++-------- week_1.ipynb => A - Getting Started.ipynb | 3 +- 2 files changed, 22 insertions(+), 17 deletions(-) rename fireballs.ipynb => 0-coursework/fireballs.ipynb (66%) rename week_1.ipynb => A - Getting Started.ipynb (99%) diff --git a/fireballs.ipynb b/0-coursework/fireballs.ipynb similarity index 66% rename from fireballs.ipynb rename to 0-coursework/fireballs.ipynb index 175308b..fc74538 100644 --- a/fireballs.ipynb +++ b/0-coursework/fireballs.ipynb @@ -335,27 +335,33 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "could not convert string to float: '2022-04-21 22:15:28'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[9], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mnfb\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcorr\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/frame.py:11049\u001b[0m, in \u001b[0;36mDataFrame.corr\u001b[0;34m(self, method, min_periods, numeric_only)\u001b[0m\n\u001b[1;32m 11047\u001b[0m cols \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mcolumns\n\u001b[1;32m 11048\u001b[0m idx \u001b[38;5;241m=\u001b[39m cols\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m> 11049\u001b[0m mat \u001b[38;5;241m=\u001b[39m \u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mfloat\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mna_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnan\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 11051\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m method \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpearson\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 11052\u001b[0m correl \u001b[38;5;241m=\u001b[39m libalgos\u001b[38;5;241m.\u001b[39mnancorr(mat, minp\u001b[38;5;241m=\u001b[39mmin_periods)\n", - "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/frame.py:1993\u001b[0m, in \u001b[0;36mDataFrame.to_numpy\u001b[0;34m(self, dtype, copy, na_value)\u001b[0m\n\u001b[1;32m 1991\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dtype \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1992\u001b[0m dtype \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mdtype(dtype)\n\u001b[0;32m-> 1993\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_mgr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mas_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcopy\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mna_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mna_value\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1994\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m result\u001b[38;5;241m.\u001b[39mdtype \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m dtype:\n\u001b[1;32m 1995\u001b[0m result \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39masarray(result, dtype\u001b[38;5;241m=\u001b[39mdtype)\n", - "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/internals/managers.py:1694\u001b[0m, in \u001b[0;36mBlockManager.as_array\u001b[0;34m(self, dtype, copy, na_value)\u001b[0m\n\u001b[1;32m 1692\u001b[0m arr\u001b[38;5;241m.\u001b[39mflags\u001b[38;5;241m.\u001b[39mwriteable \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 1693\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1694\u001b[0m arr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_interleave\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mna_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mna_value\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1695\u001b[0m \u001b[38;5;66;03m# The underlying data was copied within _interleave, so no need\u001b[39;00m\n\u001b[1;32m 1696\u001b[0m \u001b[38;5;66;03m# to further copy if copy=True or setting na_value\u001b[39;00m\n\u001b[1;32m 1698\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m na_value \u001b[38;5;129;01mis\u001b[39;00m lib\u001b[38;5;241m.\u001b[39mno_default:\n", - "File \u001b[0;32m~/venv/lib/python3.12/site-packages/pandas/core/internals/managers.py:1753\u001b[0m, in \u001b[0;36mBlockManager._interleave\u001b[0;34m(self, dtype, na_value)\u001b[0m\n\u001b[1;32m 1751\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1752\u001b[0m arr \u001b[38;5;241m=\u001b[39m blk\u001b[38;5;241m.\u001b[39mget_values(dtype)\n\u001b[0;32m-> 1753\u001b[0m \u001b[43mresult\u001b[49m\u001b[43m[\u001b[49m\u001b[43mrl\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindexer\u001b[49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m arr\n\u001b[1;32m 1754\u001b[0m itemmask[rl\u001b[38;5;241m.\u001b[39mindexer] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 1756\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m itemmask\u001b[38;5;241m.\u001b[39mall():\n", - "\u001b[0;31mValueError\u001b[0m: could not convert string to float: '2022-04-21 22:15:28'" - ] + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAI7CAYAAAAkk3vJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACdEUlEQVR4nOzdeVyN6f8/8NcJbdpVVJYWSraSNY09ky1h7H0oKuM79uwztmwNI7KvozDC2PcsEck6yJrI2JV1lKRS3b8//DrjOOdEptPd0ev5eJzHw7nu677v97mU83bd1yIRBEEAERERkZrQEDsAIiIiooJg8kJERERqhckLERERqRUmL0RERKRWmLwQERGRWmHyQkRERGqFyQsRERGpFSYvREREpFaYvBAREZFaYfJCRMVaeHg4JBIJ7t27V2jXvHfvHiQSCcLDwwvtmkRUdJi8EJVQd+7cwY8//ghbW1toa2vDwMAAbm5uWLBgAd69eyd2eIUiIiICoaGhYodBRIWstNgBEFHR27dvH7p37w4tLS3069cPtWrVQlZWFk6ePIkxY8bg+vXrWLlypdhh/mcRERG4du0aRowYIVNepUoVvHv3DmXKlBEnMCL6T5i8EJUwd+/eRa9evVClShUcPXoUFhYW0mODBw9GYmIi9u3b95/uIQgCMjIyoKOjI3csIyMDmpqa0NAQr+NXIpFAW1tbtPsT0X/Dx0ZEJcycOXOQlpaG33//XSZxyVO1alUMHz4cAJCdnY3p06fDzs4OWlpasLa2xs8//4zMzEyZc6ytrdGxY0ccPHgQ9evXh46ODlasWIHo6GhIJBJs2rQJEydOhJWVFXR1dZGamgoAOHv2LNq2bQtDQ0Po6uqiefPmiI2N/exn2LVrFzp06ABLS0toaWnBzs4O06dPR05OjrROixYtsG/fPty/fx8SiQQSiQTW1tYAlI95OXr0KJo2bYqyZcvCyMgIXl5eiI+Pl6kzdepUSCQSJCYmwtfXF0ZGRjA0NET//v2Rnp4uU/fw4cP47rvvYGRkBD09PTg4OODnn3/+7Ocjovyx54WohNmzZw9sbW3RpEmTz9b19/fH2rVr0a1bN4waNQpnz55FcHAw4uPjsWPHDpm6CQkJ6N27N3788UcEBATAwcFBemz69OnQ1NTE6NGjkZmZCU1NTRw9ehTt2rVDvXr1MGXKFGhoaCAsLAytWrVCTEwMGjZsqDSu8PBw6OnpITAwEHp6ejh69CgmT56M1NRU/PbbbwCAX375BSkpKXj06BHmz58PANDT01N6zSNHjqBdu3awtbXF1KlT8e7dOyxatAhubm64ePGiNPHJ06NHD9jY2CA4OBgXL17E6tWrYW5ujtmzZwMArl+/jo4dO6JOnTqYNm0atLS0kJiY+EXJGRF9hkBEJUZKSooAQPDy8vps3bi4OAGA4O/vL1M+evRoAYBw9OhRaVmVKlUEAEJkZKRM3WPHjgkABFtbWyE9PV1anpubK1SrVk3w8PAQcnNzpeXp6emCjY2N0KZNG2lZWFiYAEC4e/euTL1P/fjjj4Kurq6QkZEhLevQoYNQpUoVubp3794VAAhhYWHSMmdnZ8Hc3Fx4+fKltOzy5cuChoaG0K9fP2nZlClTBADCgAEDZK7ZpUsXoVy5ctL38+fPFwAIz58/l7s/Ef03fGxEVILkPa7R19f/bN39+/cDAAIDA2XKR40aBQBy42JsbGzg4eGh8Fo+Pj4y41/i4uJw+/Zt9OnTBy9fvsSLFy/w4sULvH37Fq1bt8aJEyeQm5urNLaPr/XmzRu8ePECTZs2RXp6Om7evPnZz/appKQkxMXFwdfXFyYmJtLyOnXqoE2bNtK2+NigQYNk3jdt2hQvX76UtrGRkRGAD4+48vssRFRwTF6IShADAwMAH77wP+f+/fvQ0NBA1apVZcorVKgAIyMj3L9/X6bcxsZG6bU+PXb79m0AH5IaMzMzmdfq1auRmZmJlJQUpde7fv06unTpAkNDQxgYGMDMzAz/+9//ACDf85TJ+ywfP+rK4+joKE2sPla5cmWZ98bGxgCAf/75BwDQs2dPuLm5wd/fH+XLl0evXr3w559/MpEhKgQc80JUghgYGMDS0hLXrl374nMkEskX1VM0s0jZsbwv8N9++w3Ozs4Kz1E2PuX169do3rw5DAwMMG3aNNjZ2UFbWxsXL17EuHHjiiw5KFWqlMJyQRAAfPjMJ06cwLFjx7Bv3z5ERkZi8+bNaNWqFQ4dOqT0fCL6PCYvRCVMx44dsXLlSpw+fRqurq5K61WpUgW5ubm4ffs2HB0dpeVPnz7F69evUaVKla+Owc7ODsCHZMrd3b1A50ZHR+Ply5fYvn07mjVrJi2/e/euXN0vTbzyPktCQoLcsZs3b8LU1BRly5YtUJwAoKGhgdatW6N169aYN28eZs2ahV9++QXHjh0r8Ocmon/xsRFRCTN27FiULVsW/v7+ePr0qdzxO3fuYMGCBWjfvj0AyK1QO2/ePABAhw4dvjqGevXqwc7ODnPnzkVaWprc8efPnys9N6/HIq+HAwCysrKwdOlSubply5b9osdIFhYWcHZ2xtq1a/H69Wtp+bVr13Do0CFpWxTEq1ev5Mryepk+nWpORAXDnheiEsbOzg4RERHo2bMnHB0dZVbYPXXqFLZs2QJfX18MHz4cPj4+WLlypfRRzblz57B27Vp07twZLVu2/OoYNDQ0sHr1arRr1w41a9ZE//79YWVlhcePH+PYsWMwMDDAnj17FJ7bpEkTGBsbw8fHB8OGDYNEIsH69etlkpk89erVw+bNmxEYGIgGDRpAT08Pnp6eCq/722+/oV27dnB1dYWfn590qrShoSGmTp1a4M84bdo0nDhxAh06dECVKlXw7NkzLF26FBUrVsR3331X4OsR0UdEnu1ERCK5deuWEBAQIFhbWwuampqCvr6+4ObmJixatEg63fj9+/dCUFCQYGNjI5QpU0aoVKmSMGHCBJnpyILwYap0hw4d5O6RN1V6y5YtCmO4dOmS0LVrV6FcuXKClpaWUKVKFaFHjx5CVFSUtI6iqdKxsbFC48aNBR0dHcHS0lIYO3ascPDgQQGAcOzYMWm9tLQ0oU+fPoKRkZEAQDptWtFUaUEQhCNHjghubm6Cjo6OYGBgIHh6ego3btyQqZM3VfrTKdCfxhkVFSV4eXkJlpaWgqampmBpaSn07t1buHXrlsK2IKIvJxEEBf9dISIiIiqmOOaFiIiI1AqTFyIiIlIrTF6IiIhIrTB5ISIiIrXC5IWIiIjUCpMXIiIiUivf3CJ1ubm5ePLkCfT19b94aXAiIiISlyAIePPmDSwtLaGhkX/fyjeXvDx58gSVKlUSOwwiIiL6Cg8fPkTFihXzrfPNJS/6+voAPnx4AwMDkaMhIiKiL5GamopKlSpJv8fz880lL3mPigwMDJi8EBERqZkvGfLBAbtERESkVpi8EBERkVph8kJERERq5Zsb8/KlcnJy8P79e7HDICoWypQpg1KlSokdBhHRFylxyYsgCEhOTsbr16/FDoWoWDEyMkKFChW4PhIRFXslLnnJS1zMzc2hq6vLf6ipxBMEAenp6Xj27BkAwMLCQuSIiIjyV6KSl5ycHGniUq5cObHDISo2dHR0AADPnj2Dubk5HyERUbFWogbs5o1x0dXVFTkSouIn7/eCY8GIqLgrUclLHj4qIpLH3wsiUhclMnkhIiIi9aXS5OXEiRPw9PSEpaUlJBIJdu7c+dlzoqOj4eLiAi0tLVStWhXh4eGqDPGbcO/ePUgkEsTFxeVbr0WLFhgxYoRKYvD19UXnzp0LfN6kSZMwcOBA6XtVxPjixQuYm5vj0aNHhXpdIiISh0oH7L59+xZOTk4YMGAAunbt+tn6d+/eRYcOHTBo0CBs2LABUVFR8Pf3h4WFBTw8PFQZKqzH71Pp9T9179cOKrt2dHQ0WrZsiX/++QdGRkbS8u3bt6NMmTLS99bW1hgxYoTKEprPSU5OxoIFC3D16lWV3sfU1BT9+vXDlClT8Pvvv6v0XkREpHoqTV7atWuHdu3afXH95cuXw8bGBiEhIQAAR0dHnDx5EvPnz1d58lISmJiYiB2CjNWrV6NJkyaoUqWKyu/Vv39/1KtXD7/99luxawciIiqYYjXm5fTp03B3d5cp8/DwwOnTp5Wek5mZidTUVJnXtygyMhLfffcdjIyMUK5cOXTs2BF37tyRq3fv3j20bNkSAGBsbAyJRAJfX18Aso9kWrRogfv372PkyJGQSCTSwZpTp06Fs7OzzDVDQ0NhbW0tfZ+Tk4PAwEBpLGPHjoUgCDLn5ObmIjg4GDY2NtDR0YGTkxO2bt0qU2fTpk3w9PTM93Pv27cPhoaG2LBhA4B/H0/NmjUL5cuXh5GREaZNm4bs7GyMGTMGJiYmqFixIsLCwmSuU7NmTVhaWmLHjh353o+IiIq/YrXOS3JyMsqXLy9TVr58eaSmpuLdu3fStSg+FhwcjKCgoKIKUTRv375FYGAg6tSpg7S0NEyePBldunSRG+dSqVIlbNu2DT/88AMSEhJgYGCgsN22b98OJycnDBw4EAEBAQWKJSQkBOHh4VizZg0cHR0REhKCHTt2oFWTesCTSwCA4AWr8cf2/Vi+fDmqVauGEydO4H//+x/MzMzQvHlzvHr1Cjdu3ED9+vWV3iciIgKDBg1CREQEOnbsKC0/evQoKlasiBMnTiA2NhZ+fn44deoUmjVrhrNnz2Lz5s348ccf0aZNG1SsWFF6XsOGDRETEwM/P78CfV5Vuf7iulxZTdOaIkSiHuKrO8qVOd6MFyES9bBk0FG5ssHLW4kQiXoI6dlRrmzU5r0iRFL8PRofo7C84q9NiyyGYpW8fI0JEyYgMDBQ+j41NRWVKlUSMSLV+OGHH2Ter1mzBmZmZrhx4wb09PSk5aVKlZI+FjE3N5cZ8/IxExMTlCpVCvr6+qhQoUKBYgkNDcWECROk45iWL1+OgwcPSo9nZmZh1qI1OLJpGVz//+M+W1tbnDx5EitWrEDz5s3x4MEDCIIAS0tLhfdYsmQJfvnlF+zZswfNmzeXi33hwoXQ0NCAg4MD5syZg/T0dPz8888APvxM/Prrrzh58iR69eolPc/S0hKXLl0q0GclIqLip1glLxUqVMDTp09lyp4+faq09wAAtLS0oKWlVRThier27duYPHkyzp49ixcvXiA3NxcA8ODBA9SoUaPI4khJSUFSUhIaNWokLStdujTq168P4d1rAEDivYdIf5eBNr1/AiRDpPWysrJQt25dAMC7d+8AANra2nL32Lp1K549e4bY2Fg0aNBA7njNmjWhofHvE8/y5cujVq1a0velSpVCuXLlpMvd59HR0UF6evpXfGoiKokU9TAUZe9CcaCoR6qnzTgRIpFVrJIXV1dX7N+/X6bs8OHDcHV1FSmi4sPT0xNVqlTBqlWrYGlpidzcXNSqVQtZWVmFeh8NDQ258SsFXXE17e2HBGHfuoWwcmohcywv0TQ1NQUA/PPPPzAzM5OpU7duXVy8eBFr1qxB/fr15RZP+3jGFPBhcTVFZXkJXp5Xr17J3YuIiNSPSgfspqWlIS4uTjou4+7du4iLi8ODBw8AfOje79evn7T+oEGD8Pfff2Ps2LG4efMmli5dij///BMjR45UZZjF3suXL5GQkICJEyeidevWcHR0xD///KO0vqamJoAPA2vzo6mpKVfHzMwMycnJMgnMx+NqDA0NYWFhgbNnz0rLsrOzceHCBen7Gva20NLSxIPHSahatarMK++Rnp2dHQwMDHDjxg25uOzs7HDs2DHs2rULQ4cOzfczFMS1a9ekPT9ERKS+VJq8/PXXX6hbt670CyMwMBB169bF5MmTAQBJSUnSRAYAbGxssG/fPhw+fBhOTk4ICQnB6tWrS/w0aWNjY5QrVw4rV65EYmIijh49KjPO51NVqlSBRCLB3r178fz5c6SlpSmsZ21tjRMnTuDx48d48eIFgA+zkJ4/f445c+bgzp07WLJkCQ4cOCBz3vDhw/Hrr79i586duHnzJn766Se8fv1aelxfryxG/9gXI6fOw9q1a3Hnzh1cvHgRixYtwtq1awF86OFxd3fHyZMnFcZmb2+PY8eOYdu2bYWyDk16ejouXLiA77///j9fi4iIxKXS5KVFixYQBEHulbdqbnh4OKKjo+XOuXTpEjIzM3Hnzh3pNN+STENDA5s2bcKFCxdQq1YtjBw5Er/99pvS+lZWVggKCsL48eNRvnx5DBkyRGG9adOm4d69e7Czs5M+TnF0dMTSpUuxZMkSODk54dy5cxg9erTMeaNGjULfvn3h4+MDV1dX6Ovro0uXLjJ1po/9CZNG+CM4OBiOjo5o27Yt9u3bBxsbG2kdf39/bNq0Se7xTh4HBwccPXoUGzduxKhRo76orZTZtWsXKleujKZNS9bzaiKib5FE+HSAg5pLTU2FoaEhUlJSYGBgIHMsIyMDd+/ehY2NjcKBop+68ui1XFmdikaFFOk36ImCmTyWyh/TCIKARo0aYeTIkejdu7cKAwMaN26MYcOGoU+fPiq9T0EUt6nSBf39KGqcKl0wnCpdMF86MJUDdpUP2P2vbZPf9/enitUidVSySCQSrFy5EtnZ2Sq9z4sXL9C1a1eVJ0hERFQ0itVsIyp5nJ2d5Vb0LWympqYYO3asSu9BRERFhz0vREREpFaYvBAREZFaYfJCREREaoXJCxEREakVJi9ERESkVpi8EBERkVph8kJERERqhclLCSGRSLBz585ieb2+ffti1qxZ0vfW1tYIDQ0tlGt/reXLl8PT01PUGIiISDEuUpdnqqFcUR2V3i9FlVdXuaSkJBgbGwMA7t27BxsbG1w6uBHOtRwKdJ3Lly9j//79WLZsmSrClHP//n1Ur14dz58/h56entJ6AwYMwPTp0xETE8P9kIiIihn2vNBXqVChArS0tP7zdRYtWoTu3bvnm0gUpl27dqFly5afvZ+mpib69OmDhQsXFklcRET05Zi8qIGVK1fC0tJSbvdlLy8vDBgwAMCHL2UXFxdoa2vD1tYWQUFB+e4ZdPXqVbRq1Qo6OjooV64cBg4ciLS0NJk6a9asQc2aNaGlpQULCwuZ3ak/fmyUt1N0XY/ekFi5oEW3AJw4cwFlqjREcnKyzDVHjBgh7cnIycnB1q1bP/t4ZvXq1TAyMkJUVBSADzuPDx06FCNGjICxsTHKly+PVatW4e3bt+jfvz/09fVRtWpVHDhwQO5au3btQqdOnQAA0dHRaNiwIcqWLQsjIyO4ubnh/v370rqenp7YvXs33r17l298RERUtJi8qIHu3bvj5cuXOHbsmLTs1atXiIyMhLe3N2JiYtCvXz8MHz4cN27cwIoVKxAeHo6ZM2cqvN7bt2/h4eEBY2NjnD9/Hlu2bMGRI0dkkpNly5Zh8ODBGDhwIK5evYrdu3ejatWqCq937tw5AMCRTcuQdOkQtq+ai2aN68G2shXWr18vrff+/Xts2LBBmnBduXIFKSkpqF+/vtLPPmfOHIwfPx6HDh1C69atpeVr166Fqakpzp07h6FDh+L//u//0L17dzRp0gQXL17E999/j759+yI9PV16zuvXr3Hy5El06tQJ2dnZ6Ny5M5o3b44rV67g9OnTGDhwICQSibR+/fr1kZ2djbNnzyqNj4iIih6TFzVgbGyMdu3aISIiQlq2detWmJqaomXLlggKCsL48ePh4+MDW1tbtGnTBtOnT8eKFSsUXi8iIgIZGRlYt24datWqhVatWmHx4sVYv349nj59CgCYMWMGRo0aheHDh8Pe3h4NGjTAiBEjFF7PzMwMAFDO2AgVzE1hYvxh/JBfby+EhYVJ6+3ZswcZGRno0aMHgA/jT0qVKgVzc3OF1x03bhxCQ0Nx/PhxNGzYUOaYk5MTJk6ciGrVqmHChAnQ1taGqakpAgICUK1aNUyePBkvX77ElStXpOfs378fderUgaWlJVJTU5GSkoKOHTvCzs4Ojo6O8PHxQeXKlaX1dXV1YWhoKNMbQ0RE4mPyoia8vb2xbds2ZGZmAgA2bNiAXr16QUNDA5cvX8a0adOgp6cnfQUEBCApKUmm5yFPfHw8nJycULZsWWmZm5sbcnNzkZCQgGfPnuHJkycyPR1fw7dHJyQmJuLMmTMAgPDwcPTo0UN633fv3kFLS0umtyNPSEgIVq1ahZMnT6JmzZpyx+vU+Xc4dalSpVCuXDnUrl1bWla+fHkAwLNnz6RlHz8yMjExga+vLzw8PODp6YkFCxYgKSlJ7j46OjoK25CIiMTD5EVNeHp6QhAE7Nu3Dw8fPkRMTAy8vb0BAGlpaQgKCkJcXJz0dfXqVdy+fRva2toFvpeOjk6hxGxuagJPT0+EhYXh6dOnOHDggPSREQCYmpoiPT0dWVlZcuc2bdoUOTk5+PPPPxVeu0yZMjLvJRKJTFleQpQ3TigrKwuRkZHS5AUAwsLCcPr0aTRp0gSbN2+Gvb29NNHK8+rVK2nPEhERFQ+cKq0mtLW10bVrV2zYsAGJiYlwcHCAi4sLAMDFxQUJCQlKx6R8ytHREeHh4Xj79q20FyQ2NhYaGhpwcHCAvr4+rK2tERUVhZYtW372epqamgCAnNwcuWP+/v7o3bs3KlasCDs7O7i5uUmPOTs7AwBu3Lgh/XOehg0bYsiQIWjbti1Kly6N0aNHf9FnUyY6OhrGxsZwcnKSKa9bty7q1q2LCRMmwNXVFREREWjcuDEA4M6dO8jIyEDdunX/072JiKhwsedFjXh7e2Pfvn1Ys2aNtNcFACZPnox169YhKCgI169fR3x8PDZt2oSJEycqvY62tjZ8fHxw7do1HDt2DEOHDkXfvn2lj1umTp2KkJAQLFy4ELdv38bFixexaNEihdczNzeHjo4OIo+dwtPnL5GS+kZ6zMPDAwYGBpgxYwb69+8vc56ZmRlcXFxw8uRJhddt0qQJ9u/fj6CgoP+8aN3u3btlel3u3r2LCRMm4PTp07h//z4OHTqE27dvw9HRUVonJiYGtra2sLOz+0/3JiKiwsXkRY20atUKJiYmSEhIQJ8+faTlHh4e2Lt3Lw4dOoQGDRqgcePGmD9/PqpUqaLwOrq6ujh48CBevXqFBg0aoFu3bmjdujUWL14srePj44PQ0FAsXboUNWvWRMeOHXH79m2F1ytdujQWLlyIFX9sh6WLB7wGBEqPaWhowNfXFzk5OejXr5/cuf7+/tiwYYPSz/zdd99h3759mDhxotLk6Ut8mrzo6uri5s2b+OGHH2Bvb4+BAwdi8ODB+PHHH6V1Nm7ciICAgK++JxERqQYfG+VRsOLtlUev5crqVDRSfSxKaGho4MmTJwqPeXh4wMPDQ+m5giDIvK9duzaOHj2a7/1+/PFHmS/z/K7n7+8P//b1FNZ9/Pgx2rdvDwsLC7ljvr6+CA4OxunTp+Hq6grgw4q9H2vWrJnMGjTR0dFy1/n0nI9jvHjxIlJTU9G8eXPpsfLly2PHjh0K4wWA69evIy4uTumYGyIiEg+TF1KZlNQ3uPr3SURERGD37t0K6+jo6GDdunV48eKFyuLIzs7GokWL5Ab55icpKQnr1q2DoaH8thFERCQuJi+kMl4DAnEu7gYGDRqENm3aKK3XokULlcbRsGFDuXViPsfd3V1F0RAR0X/F5IVUJnrrKsCSM3WIiKhwccAuERERqRUmL0RERKRWmLwQERGRWmHyQkRERGqFyQsRERGpFSYvREREpFaYvJQgEokEO3fuLLbXU/V1Cyo8PBxGRkbS91OnTpXbQLKoiHlvIqLihuu8/H+119Yu0vtd9blapPdThaSkJBgbGwP4sDy/jY0LLh3cCOdaDoV23eJk9OjRGDp0qMrvI5FIsGPHDnTu3LnI701EpA6YvNBXq1Chglpd97/S09ODnp6e0uNZWVnQ1NQU5d5ERCUJHxupgZUrV8LS0hK5ubky5V5eXhgwYID0/a5du+Di4gJtbW3Y2toiKCgI2dnZSq979epVtGrVCjo6OihXrhwGDhwoswEiAKxZswY1a9aElpYWLCwsMGTIEOmxjx/v2NjYAADqevSGxMoFLboF4MSZCyhTpgySk5NlrjlixAg0bdpUaVwfX/fevXuQSCTYvn07WrZsCV1dXTg5OeH06dNKz4+OjoampiZiYmKkZXPmzIG5uTmePn2q9Lzw8HBUrlwZurq66NKlC16+fClz/NNHN76+vujcuTNmzpwJS0tLODh86HF6+PAhevToASMjI5iYmMDLy0tu48g1a9bA6zsv1LWqixY1W2DmuJkAAGtrawBAly5dIJFIpO8/vXdubi6mTZuGihUrQktLC87OzoiMjJQe/5p2IyJSF0xe1ED37t3x8uVLHDt2TFr26tUrREZGwtvbGwAQExODfv36Yfjw4bhx4wZWrFiB8PBwzJw5U+E13759Cw8PDxgbG+P8+fPYsmULjhw5IpOcLFu2DIMHD8bAgQNx9epV7N69G1WrVlV4vXPnzgEAjmxahqRLh7B91Vw0a1wPtra2WL9+vbTe+/fvsWHDBpmk60v88ssvGD16NOLi4mBvb4/evXsrTcxatGiBESNGoG/fvkhJScGlS5cwadIkrF69GuXLl1d4ztmzZ+Hn54chQ4YgLi4OLVu2xIwZMz4bV1RUFBISEnD48GHs3bsX79+/h4eHB/T19RETE4PY2Fjo6emhbdu2yMrKAvBvu3br2w07TuzAoj8WobJNZQDA+fPnAQBhYWFISkqSvv/UggULEBISgrlz5+LKlSvw8PBAp06dcPv27a9uNyIidcHHRmrA2NgY7dq1Q0REBFq3bg0A2Lp1K0xNTdGyZUsAQFBQEMaPHw8fHx8AgK2tLaZPn46xY8diypQpcteMiIhARkYG1q1bh7JlywIAFi9eDE9PT8yePRvly5fHjBkzMGrUKAwfPlx6XoMGDRTGaGZmBgAoZ2yECuam0nI/Pz+EhYVhzJgxAIA9e/YgIyMDPXr0KFAbjB49Gh06dJB+1po1ayIxMRHVq1dXWH/GjBk4fPgwBg4ciGvXrsHHxwedOnVSev0FCxagbdu2GDt2LADA3t4ep06dkunNUKRs2bJYvXq19HHRH3/8gdzcXKxevRoSiQTAh0TEyMgI0dHR+P7776Xt2vvH3tLr1K77YcxVXjsaGRnl+/hs7ty5GDduHHr16gUAmD17No4dO4bQ0FAsWbLkq9uNiEgdsOdFTXh7e2Pbtm3IzMwEAGzYsAG9evWChsaHv8LLly9j2rRp0rERenp6CAgIQFJSEtLT0+WuFx8fDycnJ2niAgBubm7Izc1FQkICnj17hidPnkiTpa/l6+uLxMREnDlzBsCHRzM9evSQue+XqFOnjvTPFhYWAIBnz54pra+pqYkNGzZg27ZtyMjIwPz58/O9fnx8PBo1aiRT5urq+tm4ateuLTPO5fLly0hMTIS+vr7078HExAQZGRm4c+dOobRramoqnjx5Ajc3N5lyNzc3xMfHy5QVtN2IiNSBypOXJUuWwNraGtra2mjUqJH08YIyoaGhcHBwgI6ODipVqoSRI0ciIyND1WEWe56enhAEAfv27cPDhw8RExMjfWQEAGlpaQgKCkJcXJz0dfXqVdy+fRva2toFvp+Ojk6hxG1ubg5PT0+EhYXh6dOnOHDgQIEfGQFAmTJlpH/O69H4dAzQp06dOgXgwyO2V69eFfieX+LTJCwtLQ316tWT+XuIi4vDrVu30KdPn0Jr1y/1Ne1GRFTcqTR52bx5MwIDAzFlyhRcvHgRTk5O8PDwUPo/v4iICIwfPx5TpkxBfHw8fv/9d2zevBk///yzKsNUC9ra2ujatSs2bNiAjRs3wsHBAS4uLtLjLi4uSEhIQNWqVeVeeb0zH3N0dMTly5fx9u1baVlsbCw0NDTg4OAAfX19WFtbIyoq6oviy+t9yMnNkTvm7++PzZs3Y+XKlbCzs5PrMVCFO3fuYOTIkVi1ahUaNWoEHx+ffL+0HR0dcfbsWZmyvN6ignBxccHt27dhbm4u9/dgaGj4Re1apkwZ5OTIt2MeAwMDWFpaIjY2VqY8NjYWNWrUKHDMRETqRqXJy7x58xAQEID+/fujRo0aWL58OXR1dbFmzRqF9U+dOgU3Nzf06dMH1tbW+P7779G7d+/P9taUFN7e3ti3bx/WrFkj0+sCAJMnT8a6desQFBSE69evIz4+Hps2bcLEiROVXktbWxs+Pj64du0ajh07hqFDh6Jv377SQa1Tp05FSEgIFi5ciNu3b+PixYtYtGiRwuuZm5tDR1sbkcdO4enzl0hJfSM95uHhAQMDA8yYMQP9+/cvpNZQLicnB//73//g4eGB/v37IywsDFeuXEFISIjSc4YNG4bIyEjMnTsXt2/fxuLFiz873kURb29vmJqawsvLCzExMbh79y6io6MxbNgwPHr0CMC/7frHyj9w/8593Lh8AxtWbZBeIy+5SU5Oxj///KPwPmPGjMHs2bOxefNmJCQkYPz48YiLi5MZn0RE9K1SWfKSlZWFCxcuwN3d/d+baWjA3d1d6XTNJk2a4MKFC9Jk5e+//8b+/fvRvn17pffJzMxEamqqzOtb1apVK5iYmCAhIQF9+vSROebh4YG9e/fi0KFDaNCgARo3boz58+ejSpUqCq+lq6uLgwcP4tWrV2jQoAG6deuG1q1bY/HixdI6Pj4+CA0NxdKlS1GzZk107NhRbjZLntKlS2Ph9DFY8cd2WLp4wGtAoPSYhoYGfH19kZOTg379+hVCS+Rv5syZuH//PlasWAHgw1iPlStXYuLEibh8+bLCcxo3boxVq1ZhwYIFcHJywqFDh5QmfvnR1dXFiRMnULlyZXTt2hWOjo7w8/NDRkYGDAwMAPzbrpvDNsOrqRcGew/G/b/vS68REhKCw4cPo1KlSqhbt67C+wwbNgyBgYEYNWoUateujcjISOzevRvVqlUrcMxEROpGIgiCoIoLP3nyBFZWVjh16pTMwMexY8fi+PHjcl30eRYuXIjRo0dDEARkZ2dj0KBBWLZsmdL7TJ06FUFBQXLlKSkp0i+LPBkZGbh79y5sbGy+aBzIlUev5crqVDT67Hkl1pNL8mWWH758/fz88Pz5c+zevbuIgyq+rr+4LldW07SmCJF8UNDfj6IWX91RrszxZryCmgQASwYdlSsbvLyVCJGoh5CeHeXKetqMkyur+KvyNaq+RV/aLsB/b5vU1FQYGhoq/P7+VLGabRQdHY1Zs2Zh6dKluHjxIrZv3459+/Zh+vTpSs+ZMGECUlJSpK+HDx8WYcT0OSkpKTh58iQiIiK4vD0RERUKla3zYmpqilKlSsmtaPr06VOl61dMmjQJffv2hb+/P4AP01Dfvn2LgQMH4pdfflE48FRLSwtaWlqF/wGoUHh5eeHcuXMYNGgQ2rRpI3Y4RET0DVBZz4umpibq1asnM6siNzcXUVFRStfPSE9Pl0tQSpUqBQBQ0dMtUrHo6Gikp6d/dp0VIiKiL6XSFXYDAwPh4+OD+vXro2HDhggNDcXbt2+lM0769esHKysrBAcHA/iwlsm8efNQt25dNGrUCImJiZg0aRI8PT2lSQwRERGVbCpNXnr27Innz59j8uTJSE5Olm4elzcV98GDBzI9LRMnToREIsHEiRPx+PFjmJmZwdPTU+n+PERERFTyqHxvoyFDhshs9vex6Oho2WBKl8aUKVMU7sVDREREBBSz2UZEREREn8PkhYiIiNQKkxciIiJSK0xeShCJRIKdO3cW2+up+roFFR4eDiMjI+n7qVOnwtnZWZRYxLw3EVFxo/IBu+pC0dLjZRTVK6T7fQvLmiclJcHY2BgAcO/ePdjYuODSwY1wruVQaNctTkaPHl0kqwRLJBLs2LEDnTt3LvJ7ExGpAyYv9NWUrZRcXK/7X+np6UFPT0/p8aysLGhqaopybyKikoSPjdTAypUrYWlpidzcXJlyLy8vDBgwQPp+165dcHFxgba2NmxtbREUFITs7Gyl17169SpatWoFHR0dlCtXDgMHDkRaWppMnTVr1qBmzZrQ0tKChYWFzLT3jx/v2NjYAADqevSGxMoFLboF4MSZCyhTpgySk5NlrjlixAg0bap8A6+Pr3vv3j1IJBJs374dLVu2hK6uLpycnJTuTA4AAwYMQMeOspuJvX//Hubm5vj999+VnhceHo7KlStDV1cXXbp0wcuXL2WOf/roxtfXF507d8bMmTNhaWkJB4cPPU4PHz5Ejx49YGRkBBMTE3h5eeHevXsy11qzZg28vvNCXau6aFGzBWaO+7CWkbW1NQCgS5cukEgk0vef3js3NxfTpk1DxYoVoaWlJV1DKc/XtBsRkbpg8qIGunfvjpcvX+LYsWPSslevXiEyMhLe3t4AgJiYGPTr1w/Dhw/HjRs3sGLFCoSHhytd4O/t27fw8PCAsbExzp8/jy1btuDIkSMyycmyZcswePBgDBw4EFevXsXu3btRtWpVhdc7d+4cAODIpmVIunQI21fNRbPG9WBra4v169dL671//x4bNmyQSbq+xC+//ILRo0cjLi4O9vb26N27t9LEzN/fH5GRkUhKSpKW7d27F+np6ejZs6fCc86ePQs/Pz8MGTIEcXFxaNmyJWbMmPHZuKKiopCQkIDDhw9j7969eP/+PTw8PKCvr4+YmBjExsZCT08Pbdu2RVZWFoB/27Vb327YcWIHFv2xCJVtKgMAzp8/DwAICwtDUlKS9P2nFixYgJCQEMydOxdXrlyBh4cHOnXqhNu3b391uxERqQsmL2rA2NgY7dq1Q0REhLRs69atMDU1RcuWLQEAQUFBGD9+PHx8fGBra4s2bdpg+vTpWLFihcJrRkREICMjA+vWrUOtWrXQqlUrLF68GOvXr5dupjljxgyMGjUKw4cPh729PRo0aIARI0YovJ6ZmRkAoJyxESqYm8LE2BAA4Ofnh7CwMGm9PXv2ICMjAz169ChQG4wePRodOnSAvb09goKCcP/+fSQmJiqs26RJEzg4OMgkTWFhYejevbvSRy8LFixA27ZtMXbsWNjb22PYsGHw8PD4bFxly5bF6tWrUbNmTdSsWRObN29Gbm4uVq9ejdq1a8PR0RFhYWF48OCBdFHGvHbt+2NfWNtZo3bd2ug7qC+Af9vRyMgIFSpUkL7/1Ny5czFu3Dj06tULDg4OmD17NpydnREaGvrV7UZEpC6YvKgJb29vbNu2DZmZmQCADRs2oFevXtLtFS5fvoxp06ZJx0bo6ekhICAASUlJSE9Pl7tefHw8nJycULZsWWmZm5sbcnNzkZCQgGfPnuHJkydo3br1f4rb19cXiYmJOHPmDIAPj2Z69Oghc98vUadOHemfLSwsAADPnj1TWt/f31+aND19+hQHDhzIt7cnPj4ejRo1kilTtoHox2rXri0zzuXy5ctITEyEvr6+9O/BxMQEGRkZuHPnTqG0a2pqKp48eQI3NzeZcjc3N8THyw4EL2i7ERGpAw7YVROenp4QBAH79u1DgwYNEBMTI7NTc1paGoKCgtC1a1e5c7W1tQt8Px0dnf8Ubx5zc3N4enoiLCwMNjY2OHDggNy2EF+iTJl/535JJBIAkBsD9LF+/fph/PjxOH36NE6dOgUbG5t8x9l8rU+TsLS0NNSrVw8bNmyQq2tmZia3a7qqFbTdiIjUAZMXNaGtrY2uXbtiw4YNSExMhIODA1xcXKTHXVxckJCQoHRMyqccHR0RHh6Ot2/fSr+AY2NjoaGhAQcHB+jr68Pa2hpRUVHSR1P5yet9yMnNkTvm7++P3r17o2LFirCzs5PrMVCFcuXKoXPnzggLC8Pp06elO5kr4+joiLNnz8qU5fUWFYSLiws2b94Mc3NzGBgYKKyT1669a/dWeLxMmTLIyZFvxzwGBgawtLREbGwsmjdvLi2PjY1Fw4YNCxwzEZG64WMjNeLt7Y19+/ZhzZo10oG6eSZPnox169YhKCgI169fR3x8PDZt2oSJEycqvZa2tjZ8fHxw7do1HDt2DEOHDkXfvn2lu35PnToVISEhWLhwIW7fvo2LFy9i0aJFCq9nbm4OHW1tRB47hafPXyIl9Y30mIeHBwwMDDBjxozPJhGFyd/fH2vXrkV8fDx8fHzyrTts2DBERkZi7ty5uH37NhYvXiwze+dLeXt7w9TUFF5eXoiJicHdu3cRHR2NYcOG4dGjRwD+bdc/Vv6B+3fu48blG9iw6t+emrzkJjk5Gf/884/C+4wZMwazZ8/G5s2bkZCQgPHjxyMuLg7Dhw8vcMxEROqGyYsaadWqFUxMTJCQkIA+ffrIHPPw8MDevXtx6NAhNGjQAI0bN8b8+fNRpUoVhdfS1dXFwYMH8erVKzRo0ADdunVD69atsXjxYmkdHx8fhIaGYunSpahZsyY6duwoN5slT+nSpbFw+his+GM7LF084DUgUHpMQ0MDvr6+yMnJQb9+/QqhJb6Mu7s7LCws4OHhAUtLy3zrNm7cGKtWrcKCBQvg5OSEQ4cOKU388qOrq4sTJ06gcuXK6Nq1KxwdHeHn54eMjAxpT0xeu24O2wyvpl4Y7D0Y9/++L71GSEgIDh8+jEqVKqFu3boK7zNs2DAEBgZi1KhRqF27NiIjI7F7925Uq1atwDETEakbiSAIgthBFKbU1FQYGhoiJSVFrts+IyMDd+/ehY2NzReNA7ny6LVcWZ2KRoUU6TfoySX5MssPX75+fn54/vw5du/eXWThpKWlwcrKCmFhYQrHAont+ovrcmU1TWuKEMkHBf39KGqKVsH+FlaqVpUlg47KlQ1e3kqESNRDSM+OcmU9bcbJlVX8tfDHzhVnX9ouwH9vm/y+vz/FMS+kUikpKbh69SoiIiKKLHHJzc3FixcvEBISAiMjI3Tq1KlI7ktEREWDyQuplJeXF86dO4dBgwahTZs2RXLPBw8ewMbGBhUrVkR4eDhKl+aPORHRt4T/qpNKfc206P/K2toa39jTUCIi+ggH7BIREZFaYfJCREREaoXJCxEREakVJi9ERESkVpi8EBERkVph8kJERERqhclLCSKRSLBz585iez1VX7cgoqOjIZFI8Pr1awBAeHg4jIyMRIlFzHsTERVHXOfl/1O0lLYiMYV0v29hme6kpCQYGxsDAO7duwcbGxdcOrgRzrUcCu26xUXPnj3Rvn17ld/H2toaI0aMwIgRI4r83kRE6oLJC321ChUqqNV1/wsdHR3o6OgoPZ6VlQVNTU1R7k1EVNLwsZEaWLlyJSwtLZGbmytT7uXlhQEDBkjf79q1Cy4uLtDW1oatrS2CgoKQnZ2t9LpXr15Fq1atoKOjg3LlymHgwIFIS0uTqbNmzRrUrFkTWlpasLCwwJAhQ6THPn68Y2NjAwCo69EbEisXtOgWgBNnLqBMmTJITk6WueaIESPQtKnyDbw+vu69e/cgkUiwfft2tGzZErq6unBycsLp06eVnh8eHg6JRCL3mjp1qtJz9u/fD3t7e+jo6KBly5a4d++e3DU/fnQzdepUODs7Y/Xq1TIbGb5+/Rr+/v4wMzODgYEBWrVqhcuXL8tca8+ePWjQoAFcKrrgO4fvMMxnGADA18sX9+/fx8iRI6UxK7o3ACxbtgx2dnbQ1NSEg4MD1q9fL9eGq1evRpcuXaCrq4tq1aoV6aaYRESqxORFDXTv3h0vX77EsWPHpGWvXr1CZGQkvL29AQAxMTHo168fhg8fjhs3bmDFihUIDw/HzJkzFV7z7du38PDwgLGxMc6fP48tW7bgyJEjMsnJsmXLMHjwYAwcOBBXr17F7t27UbVqVYXXO3fuHADgyKZlSLp0CNtXzUWzxvVga2sr88X6/v17bNiwQSbp+hK//PILRo8ejbi4ONjb26N3795KE7OePXsiKSlJ+tq4cSNKly4NNzc3hfUfPnyIrl27wtPTE3FxcfD398f48eM/G1NiYiK2bduG7du3Iy4uDsCHv6tnz57hwIEDuHDhAlxcXNC6dWu8evUKALBv3z506dIF7du3x5ajW7B622rUrlsbALAgfAEqVqyIadOmSWNXZMeOHRg+fDhGjRqFa9eu4ccff0T//v1lfj4AICgoCD169MCVK1fQvn17eHt7S+MgIlJnTF7UgLGxMdq1a4eIiAhp2datW2FqaoqWLVsC+PBFNX78ePj4+MDW1hZt2rTB9OnTsWLFCoXXjIiIQEZGBtatW4datWqhVatWWLx4MdavX4+nT58CAGbMmIFRo0Zh+PDhsLe3R4MGDWTGYnzMzMwMAFDO2AgVzE1hYmwIAPDz80NYWJi03p49e5CRkYEePXoUqA1Gjx6NDh06wN7eHkFBQbh//z4SExMV1tXR0UGFChVQoUIFvH37FoMHD8asWbOUbgyZ14sREhICBwcHeHt7w9fX97MxZWVlYd26dahbty7q1KmDkydP4ty5c9iyZQvq16+PatWqYe7cuTAyMsLWrVsBADNnzkSvXr0QFBQEO3s7VK9VHQEjAgAAhsaGKFWqFPT19aXxKzJ37lz4+vrip59+gr29PQIDA9G1a1fMnTtXpp6vry969+6NqlWrYtasWUhLS5MmmURE6ozJi5rw9vbGtm3bkJmZCQDYsGEDevXqBQ2ND3+Fly9fxrRp06Cnpyd9BQQEICkpCenp6XLXi4+Ph5OTE8qWLSstc3NzQ25uLhISEvDs2TM8efIErVu3/k9x+/r6IjExEWfOnAHw4RFIjx49ZO77JerUqSP9s4WFBQDg2bNn+Z6TkpKCjh07okOHDhgzZozSevHx8WjUqJFMmaur62djqlKlijRpAz78HaSlpaFcuXIyfw93797FnTt3AABxcXH/uU3j4+PlepHc3NwQHx8vU/Zxm5UtWxYGBgafbTMiInXAAbtqwtPTE4IgYN++fWjQoAFiYmIwf/586fG0tDQEBQWha9eucufmjccoiMIaIGpubg5PT0+EhYXBxsYGBw4c+KqdpsuUKSP9c95YkE/HAH0sJycHPXv2hIGBAVauXFng+32JTxOwtLQ0WFhYKPx8eWNWinLg7cdtBnxot/zajIhIXTB5URPa2tro2rUrNmzYgMTERDg4OMDFxUV63MXFBQkJCUrHpHzK0dER4eHhePv2rfRLODY2FhoaGnBwcIC+vj6sra0RFRUlfTSVn7yZNjm5OXLH/P390bt3b1SsWBF2dnZKx54UppEjR+Lq1av466+/Ppu8OTo6yg1mzespKggXFxckJyejdOnSsLa2VlinTp06iIqKQv/+/RUe19TURE6OfBt+Gm9sbCx8fHykZbGxsahRo0aBYyYiUkdMXtSIt7c3OnbsiOvXr+N///ufzLHJkyejY8eOqFy5Mrp16wYNDQ1cvnwZ165dw4wZMxRea8qUKfDx8cHUqVPx/PlzDB06FH379kX58uUBfJhRM2jQIJibm6Ndu3Z48+YNYmNjMXToULnrmZubQ0dbG5HHTqGiRXloa2nC0EAfAODh4QEDAwPMmDED06ZNU0HLyAoLC8PSpUuxY8cOSCQS6WynvMc4nxo0aBBCQkIwZswY+Pv748KFCwgPDy/wfd3d3eHq6orOnTtjzpw5sLe3x5MnT6SDdOvXr48pU6agdevWsLOzQz2PesjJzkHMkRj4DfMD8GGdlxMnTqBXr17Q0tKCqamp3H3GjBmDHj16oG7dunB3d8eePXuwfft2HDlypMAxExGpI455USOtWrWCiYkJEhIS0KdPH5ljHh4e2Lt3Lw4dOoQGDRqgcePGmD9/PqpUqaLwWrq6ujh48CBevXqFBg0aoFu3bmjdujUWL14srePj44PQ0FAsXboUNWvWRMeOHXH79m2F1ytdujQWTh+DFX9sh6WLB7wGBEqPaWhowNfXFzk5OejXr18htET+jh8/jpycHHTq1AkWFhbS16cDWvNUrlwZ27Ztw86dO+Hk5ITly5dj1qxZBb6vRCLB/v370axZM/Tv3x/29vbo1asX7t+/L00IW7RogS1btmD37t3o1rIb/Lr64erFq9JrTJs2Dffu3YOdnZ3MeJqPde7cGQsWLMDcuXNRs2ZNrFixAmFhYWjRokWBYyYiUkcSQRAEsYMoTKmpqTA0NERKSgoMDAxkjmVkZODu3bsy63Lk58qj13JldSoaFVKk36Anl+TLLOsC+DDr6Pnz51xr5CPXX1yXK6tpWlOESD4o6O9HUYuv7ihX5ngzXkFNAhSvGv4trOytKiE9O8qV9bQZJ1dW8Vfla1R9i760XYD/3jb5fX9/io+NSKVSUlJw9epVREREMHEhIqJCweSFVMrLywvnzp3DoEGDlK6zQkREVBAqH/OyZMkSWFtbQ1tbG40aNfrsIlmvX7/G4MGDYWFhAS0tLdjb22P//v2qDpNUJDo6Gunp6TLTuomIiP4Llfa8bN68GYGBgVi+fDkaNWqE0NBQeHh4ICEhAebm5nL1s7Ky0KZNG5ibm2Pr1q2wsrLC/fv35fZ1ISIiopJLpcnLvHnzEBAQIF3TYvny5di3bx/WrFmjcO+YNWvW4NWrVzh16pR0gS1l62UQERFRyaSyx0ZZWVm4cOEC3N3d/72Zhgbc3d2V7gi8e/duuLq6YvDgwShfvjxq1aqFWbNmfXbRLiIiIio5VNbz8uLFC+Tk5EjXt8hTvnx53Lx5U+E5f//9N44ePQpvb2/s378fiYmJ+Omnn/D+/XtMmTJF4TmZmZnS/X6AD1OtiIiI6NtVrBapy83Nhbm5OVauXIl69eqhZ8+e+OWXX7B8+XKl5wQHB8PQ0FD6qlSpUhFGTEREREVNZcmLqakpSpUqhadPn8qUP336FBUqVFB4joWFBezt7VGqVClpmaOjI5KTk5GVlaXwnAkTJiAlJUX6evjwYeF9CCIiIip2VJa8aGpqol69eoiKipKW5ebmIioqCq6urgrPcXNzQ2JioszOt7du3YKFhYV0479PaWlpwcDAQOZF+QsPD5eZwTV16lQ4OzuLFo9EIsHOnTtFuz8REakXlc42CgwMhI+PD+rXr4+GDRsiNDQUb9++lc4+6tevH6ysrBAcHAwA+L//+z8sXrwYw4cPx9ChQ3H79m3MmjULw4YNU2WYABQvgazI4UK636jNewvpSv/d6NGjFW62mB+JRIIdO3agc+fOqgmKiIhICZUmLz179sTz588xefJkJCcnw9nZGZGRkdJBvA8ePICGxr+dP5UqVcLBgwcxcuRI1KlTB1ZWVhg+fDjGjVO8j0JJlpWVpbQ3qqCU7bZc0r1//146ZZ+IiIoPlQ/YHTJkCO7fv4/MzEycPXsWjRo1kh6Ljo5GeHi4TH1XV1ecOXMGGRkZuHPnDn7++WeZMTAlVYsWLTBkyBCMGDECpqam8PDwAPBhLZ3atWujbNmyqFSpEn766SekpaXJnBseHo7KlStDV1cXXbp0wcuXL2WOf/rY6Pz582jTpg1MTU1haGiI5s2b4+LFi9LjeWvvdOnSBRKJRGYtnl0Ho+Hi0Qfato1h6+qJoKAgZGdnS4/fvn0bzZo1g7a2NmrUqIHDhz/fl5Wbm4vg4GDY2NhAR0cHTk5O2Lp1q/R4dHQ0JBIJoqKiUL9+fejq6qJJkyZISEiQuc6uXbvg4uICbW1t2NraysUmkUiwbNkydOrUCWXLlsXMmTMBADNmzIC5uTn09fXh7++P8ePHS9vrxIkTKFOmDJKTk2XuNWLECDRtWrI2cCMiKirFarYR5W/t2rXQ1NREbGysdAaWhoYGFi5ciOvXr2Pt2rU4evQoxo4dKz3n7Nmz8PPzw5AhQxAXF4eWLVtixowZ+d7nzZs38PHxwcmTJ3HmzBlUq1YN7du3x5s3bwB8SG4AICwsDElJSdL3MWcvot/wyRju1xs3jm3Fitm/IDw8XJoE5ObmomvXrtDU1MTZs2exfPnyL+pVCw4Oxrp167B8+XJcv34dI0eOxP/+9z8cP35cpt4vv/yCkJAQ/PXXXyhdujQGDBggPRYTE4N+/fph+PDhuHHjBlasWCETW56pU6eiS5cuuHr1KgYMGIANGzZg5syZmD17Ni5cuIDKlStj2bJl0vrNmjWDra0t1q9fLy17//49NmzYIHN/IiIqPNyYUY1Uq1YNc+bMkSkbMWKE9M/W1taYMWMGBg0ahKVLlwIAFixYgLZt20oTGnt7e5w6dQqRkZFK79OqVSuZ9ytXroSRkRGOHz+Ojh07wszMDABgZGQkM3MsaN5KjB/sC58engAA2yoVMX36dIwdOxZTpkzBkSNHcPPmTRw8eBCWlpYAgFmzZqFdu3ZKY8nMzMSsWbNw5MgR6UBvW1tbnDx5EitWrEDz5s2ldWfOnCl9P378eHTo0AEZGRnQ1tZGUFAQxo8fDx8fH+k1Po4tT58+faRjsgBg0aJF8PPzk5ZNnjwZhw4dkund8vPzQ1hYGMaMGQMA2LNnDzIyMtCjRw+ln4uIiL4ee17USL169eTKjhw5gtatW8PKygr6+vro27cvXr58ifT0dABAfHy8zKM6AEpne+V5+vQpAgICUK1aNRgaGsLAwABpaWl48OBBvuddvnEL00JXQa+am/QVEBCApKQkpKenIz4+HpUqVZImLl8SS2JiItLT09GmTRvp2Bw9PT2sW7cOd+7ckalbp04d6Z8tLCwAAM+ePfsQ2+XLmDZtmsw1Po4tT/369WWumZCQgIYNG8qUffre19cXiYmJOHPmDIAPj+l69OiBsmXL5vvZiIjo67DnRY18+mV47949dOzYEf/3f/+HmTNnwsTEBCdPnoSfnx+ysrKgq6v7Vffx8fHBy5cvsWDBAlSpUgVaWlpwdXVVutZOnrT0dwga9SO6tvuo56Z8TQCAtrb2V8WS18Oxb98+WFlZyRzT0tKSef/x4FqJRAIA0mn3aWlpCAoKQteuXeXu8XFsX5NwmJubw9PTE2FhYbCxscGBAwcQHR1d4OsQEdGXYfKixi5cuIDc3FyEhIRIZ239+eefMnUcHR1x9uxZmbK8HgJlYmNjsXTpUrRv3x4A8PDhQ7x48UKmTpkyZeT2nHKpVR0Jd+6jqk3lfwstq8rE8vDhQyQlJUl7Rj4XS40aNaClpYUHDx7IPCIqKBcXFyQkJKBq1aqfr/wRBwcHnD9/Hv369ZOW5Y3x+Zi/vz969+6NihUrws7ODm5ubl8dKxER5Y/JixqrWrUq3r9/j0WLFsHT01NmIG+eYcOGwc3NDXPnzoWXlxcOHjyY73gX4MPYmvXr16N+/fpITU3FmDFjoKOjI1PH2toaUVFRcHNzg5aWFoyNjTF5ZAA6+oxAZasK6NbBHRoaElw+kYBr165hxowZcHd3h729PXx8fPDbb78hNTUVv/zyS76x6OvrY/To0Rg5ciRyc3Px3XffISUlBbGxsTAwMJCOYfmcyZMno2PHjqhcuTK6desGDQ0NXL58WRqbMkOHDkVAQADq16+PJk2aYPPmzbhy5QpsbW1l6nl4eMDAwAAzZszAtGnTvigmIiL6OhzzosacnJwwb948zJ49G7Vq1cKGDRukC/7lady4MVatWoUFCxbAyckJhw4dwsSJE/O97u+//45//vkHLi4u6Nu3L4YNGwZzc3OZOiEhITh8+DAqVaqEunXrAgA8WjTB3rWhOHT8DBq074vGnr6YP38+qlSpAuDDzKgdO3bg3bt3aNiwIfz9/eVm+ygyffp0TJo0CcHBwXB0dETbtm2xb98+2NjYfHFbeXh4YO/evTh06BAaNGiAxo0by8SmjLe3NyZMmIDRo0fDxcUFd+/eha+vr9xjMA0NDfj6+iInJ0eml4aIiAqfRBAEQewgClNqaioMDQ2RkpIit1VARkYG7t69Cxsbmy8ag3Hl0Wu5sjoVjQop0m/Qk0vyZZZ1iz4OFWvTpg0qVKggMz0a+DDr6Pnz59i9e/cXXef6i+tyZTVNaxZKjF+joL8fRS2+uqNcmePNeBEiUQ9LBh2VKxu8vJWCmgQoXmW9p438Ug4Vfy1Z6zd9absA/71t8vv+/hQfGxHlIz09HcuXL4eHhwdKlSqFjRs34siRIzKL66WkpODq1auIiIj44sSFiIi+HpMXonxIJBLs378fM2fOREZGBhwcHLBt2za4u7tL63h5eeHcuXMYNGgQ2rRpI2K0REQlA5MXonzo6OjgyJEj+dbhtGgioqLFAbtERESkVpi8EBERkVph8kJERERqhckLERERqRUmL0RERKRWmLyQQr6+vujcubPS4+Hh4TAyMiqyeIiIiPIweVETLVq0wIgRI4rsvM/p2bMnbt26VejXVQVra2uEhoaKHQYRERUSrvPy/z0aHyNXZqKoXiHdT92XmNbR0ZHbrJEKThAE5OTkoHRp/ioSEX0p9ryoAV9fXxw/fhwLFiyARCKBRCLBvXv3AADHjx9Hw4YNoaWlBQsLC4wfPx7Z2dn5npeTkwM/Pz/Y2NhAR0cHDg4OWLBgQYFi+vSx0dSpU+HcphfWbNqJyg3aQ6+aG36aEIycnBzMmTMHFSpUgLm5udxGjBKJBMuWLUO7du2go6MDW1tbbN26VabOuHHjYG9vD11dXdja2mLSpEl4//69TJ09e/agQYMG0NbWhqmpKbp06QLgQ8/T/fv3MXLkSGkbKPP69Wv4+/vDzMwMBgYGaNWqFS5fviz7GZ2dsX79elhbW8PQ0BC9evXCmzdvpHVyc3MRHBwsbVsnJyeZzxMdHQ2JRIIDBw6gR+seqGtVFxfPXsTbtLcYN2gcypYtCwsLC8yfP1+m12zatGmoVauWXMzOzs6YNGmS0s9ERPQtYvKiBhYsWABXV1cEBAQgKSkJSUlJqFSpEh4/foz27dujQYMGuHz5MpYtW4bff/8dM2bMyPe83NxcVKxYEVu2bMGNGzcwefJk/Pzzz/jzzz//U5x37j/CgaOnELlhMTYumYXfN+1Ehw4d8OjRIxw/fhyzZ8/GxIkTcfbsWZnzJk2ahB9++AGXL1+Gt7c3evXqhfj4fzfc09fXR3h4OG7cuIEFCxZg1apVmD9/vvT4vn370KVLF7Rv3x6XLl1CVFQUGjZsCADYvn07KlasiGnTpknbQJnu3bvj2bNnOHDgAC5cuAAXFxe0bt0ar169+vcz3rmDnTt3Yu/evdi7dy+OHz+OX3/9VXo8ODgY69atw/Lly3H9+nWMHDkS//vf/3D8+HGZe40fPx4jJo3A7tjdcKjhgDmT5uDSuUvYvXs3Dh8+jJiYGFy8eFFaf8CAAYiPj8f58+elZZcuXcKVK1fQv3//L/0rIiL6JrCvWg0YGhpCU1MTurq6qFChgrR86dKlqFSpEhYvXgyJRILq1avjyZMnGDduHCZPnqz0vFKlSiEoKEj63sbGBqdPn8aff/6JHj16fHWcubm5WDNvCvT1yqKGvS1aNqmPhIQE7N+/HxoaGnBwcMDs2bNx7NgxNGrUSHpe9+7d4e/vDwCYPn06Dh8+jEWLFmHp0qUAgIkTJ0rrWltbY/To0di0aRPGjh0LAJg5cyZ69eol85mcnJwAACYmJihVqhT09fVl2uBTJ0+exLlz5/Ds2TNoaWkBAObOnYudO3di69atGDhwoPQzhoeHQ19fHwDQt29fREVFYebMmcjMzMSsWbNw5MgRuLq6AgBsbW1x8uRJrFixAs2bN5feb9q0aajqVhUA8DbtLXZt3oU5y+egdevWAICwsDBYWlpK61esWBEeHh4ICwtDgwYNpHWaN28OW1vbL/wbIiL6NjB5UWPx8fFwdXWVeRTi5uaGtLQ0PHr0CJUrV1Z67pIlS7BmzRo8ePAA7969Q1ZWFpydnf9TPNaVLKGvV1b6vrxpOZTSNYaGxr8dfOXLl8ezZ89kzsv7ov/4fVxcnPT95s2bsXDhQty5cwdpaWnIzs6W2S49Li4OAQEB/yn2y5cvIy0tDeXKlZMpf/fuHe7cufPvZ7S2liYuAGBhYSH9PImJiUhPT5fbnDErKwt169aVKatfvz5e4zUA4OG9h8h+n43aLrWlxw0NDeHg4CBzTkBAAAYMGIB58+ZBQ0MDERERMj1QREQlBZOXEmjTpk0YPXo0QkJC4OrqCn19ffz2229yj3MKqswng04lEgnKlCkjV5abm/vF1zx9+jS8vb0RFBQEDw8PGBoaYtOmTQgJCZHWKYyBw2lpabCwsFC4yeLHY3vy+zxpaWkAPjzGsrKykqmX15uTp2zZsnid/bpAMXp6ekJLSws7duyApqYm3r9/j27duhXoGkRE3wImL2pCU1MTOTk5MmWOjo7Ytm0bBEGQ9r7ExsZCX18fFStWVHpebGwsmjRpgp9++kla9nHvQlE7c+YM+vXrJ/M+r6fi1KlTqFKlCn755Rfp8fv378ucX6dOHURFRSkd+6GoDT7l4uKC5ORklC5dGtbW1l/1OWrUqAEtLS08ePBA5hHR51SyroTSZUrj2qVrcHd2BwCkpKTg1q1baNasmbRe6dKl4ePjg7CwMGhqaqJXr16c8UVEJRKTFzVhbW2Ns2fP4t69e9DT04OJiQl++uknhIaGYujQoRgyZAgSEhIwZcoUBAYGSh/VKDqvWrVqWLduHQ4ePAgbGxusX78e58+fh42NjSifbcuWLahfvz6+++47bNiwAefOncPvv/8OAKhWrRoePHiATZs2oUGDBti3bx927Nghc/6UKVPQunVr2NnZoVevXsjOzsb+/fsxbtw4AB/a4MSJE+jVqxe0tLRgamoqF4O7uztcXV3RuXNnzJkzB/b29njy5Il0MHD9+vU/+zn09fUxevRojBw5Erm5ufjuu++QkpKC2NhYGBgYwMfHR+F5ZfXKwqunF0KCQuBk7QRzc3NMmTIFGhoacrOj/P394ejoCOBDEkpEVBJxtpGaGD16NEqVKoUaNWrAzMwMDx48gJWVFfbv349z587ByckJgwYNgp+fn8wAV0Xn/fjjj+jatSt69uyJRo0a4eXLlzK9MEUtKCgImzZtQp06dbBu3Tps3LgRNWrUAAB06tQJI0eOxJAhQ+Ds7IxTp07JTQ1u0aIFtmzZgt27d8PZ2RmtWrXCuXPnpMenTZuGe/fuwc7ODmZmZgpjkEgk2L9/P5o1a4b+/fvD3t4evXr1wv3791G+fPkv/izTp0/HpEmTEBwcDEdHR7Rt2xb79u37bGI4dvpYONV3QseOHeHu7g43Nzc4OjpCW1tbpl61atXQpEkTVK9eXWbQMxFRSSIRBEEQO4jClJqaCkNDQ6SkpMgM6gSAjIwM3L17FzY2NnJfCopcefRarqxORaNCivQb9OSSfJllXfmyj0gkEuzYsSPfrQi+VddfXJcrq2laEwDw9u1bWFlZISQkBH5+ftLjgiCgWrVq+OmnnxAYGFio8RT096OoxVd3lCtzvBmvoCYBwJJBR+XKBi9vJUIk6iGkZ0e5sp424+TK1H2B0YL60nYB/nvb5Pf9/Sk+NiIqBuKvxONu4l1ot9ZGSkoKpk2bBgDw8vKS1nn+/Dk2bdqE5ORkru1CRCUakxeiYiJ8STiCAoOgqamJevXqISYmRmZ8jrm5OUxNTbFy5UoYGxuLGCkRkbiYvJCovrGnll/NsY4j/oz6U/rYSBG2FRHRBxywS0RERGqFyQsRERGplRKZvLD7nUgefy+ISF2UqOQlb2n39PR0kSMhKn7yfi8+3QKBiKi4KVEDdkuVKgUjIyPpRnq6urpyK5h+TMjOkivLyMhQWXxqL1vB/9zZXkrlvpff40mMny9BEJCeno5nz57ByMgIpUqVKvIYiIgKokQlLwBQoUIFAJDb2ViRZ/+8kyvTfMe9ZJR6/Vy+7O3doo9DTTxLk/8ZLP1avF9JIyMj6e8HEVFxVuKSF4lEAgsLC5ibm+P9+/f51vXfHi1XFjWqhWoC+xYs7i5fNuSvoo9DTQzfMVyubHeX3SJE8uFREXtciEhdFEnysmTJEvz2229ITk6Gk5MTFi1ahIYNG372vE2bNqF3797w8vLCzp07CzWmUqVKffYf68dv5HciLo7LphcbaQ/ly9heSiVlJcmV8eeLiOjzVD5gd/PmzQgMDMSUKVNw8eJFODk5wcPD47OPbe7du4fRo0ejadOStY8EERER5U/lycu8efMQEBCA/v37o0aNGli+fDl0dXWxZs0apefk5OTA29sbQUFBsLW1VXWIREREpEZUmrxkZWXhwoULcHd3//eGGhpwd3fH6dOnlZ43bdo0mJuby+ymS0RERASoeMzLixcvkJOTg/Lly8uUly9fHjdv3lR4zsmTJ/H7778jLi7ui+6RmZmJzMxM6fvU1NSvjpeIiIiKv2K1SN2bN2/Qt29frFq1SmY33fwEBwfD0NBQ+qpUqZKKoyQiIiIxqbTnxdTUFKVKlcLTp09lyp8+fapwPYk7d+7g3r178PT0lJbl5n5YyKt06dJISEiAnZ2dzDkTJkxAYGCg9H1qaioTGCIiom+YSpMXTU1N1KtXD1FRUejcuTOAD8lIVFQUhgwZIle/evXquHr1qkzZxIkT8ebNGyxYsEBhUqKlpQUtLS2VxE9ERETFj8rXeQkMDISPjw/q16+Phg0bIjQ0FG/fvkX//v0BAP369YOVlRWCg4Ohra2NWrVqyZxvZGQEAHLlREREVDKpPHnp2bMnnj9/jsmTJyM5ORnOzs6IjIyUDuJ98OABNDSK1dAbIiIiKsaKZIXdIUOGKHxMBADR0dH5nhseHl74AREREZHaYpcHERERqRUmL0RERKRWmLwQERGRWmHyQkRERGqFyQsRERGpFSYvREREpFaYvBAREZFaYfJCREREaoXJCxEREakVJi9ERESkVpi8EBERkVph8kJERERqhckLERERqRUmL0RERKRWmLwQERGRWmHyQkRERGqFyQsRERGpFSYvREREpFaYvBAREZFaYfJCREREaoXJCxEREakVJi9ERESkVpi8EBERkVph8kJERERqhckLERERqRUmL0RERKRWmLwQERGRWmHyQkRERGqFyQsRERGpFSYvREREpFaYvBAREZFaYfJCREREaoXJCxEREakVJi9ERESkVpi8EBERkVph8kJERERqhckLERERqRUmL0RERKRWmLwQERGRWimS5GXJkiWwtraGtrY2GjVqhHPnzimtu2rVKjRt2hTGxsYwNjaGu7t7vvWJiIioZFF58rJ582YEBgZiypQpuHjxIpycnODh4YFnz54prB8dHY3evXvj2LFjOH36NCpVqoTvv/8ejx8/VnWoREREpAZUnrzMmzcPAQEB6N+/P2rUqIHly5dDV1cXa9asUVh/w4YN+Omnn+Ds7Izq1atj9erVyM3NRVRUlKpDJSIiIjWg0uQlKysLFy5cgLu7+7831NCAu7s7Tp8+/UXXSE9Px/v372FiYqLweGZmJlJTU2VeRERE9O1SafLy4sUL5OTkoHz58jLl5cuXR3Jy8hddY9y4cbC0tJRJgD4WHBwMQ0ND6atSpUr/OW4iIiIqvor1bKNff/0VmzZtwo4dO6Ctra2wzoQJE5CSkiJ9PXz4sIijJCIioqJUWpUXNzU1RalSpfD06VOZ8qdPn6JChQr5njt37lz8+uuvOHLkCOrUqaO0npaWFrS0tAolXiIiIir+VNrzoqmpiXr16skMts0bfOvq6qr0vDlz5mD69OmIjIxE/fr1VRkiERERqRmV9rwAQGBgIHx8fFC/fn00bNgQoaGhePv2Lfr37w8A6NevH6ysrBAcHAwAmD17NiZPnoyIiAhYW1tLx8bo6elBT09P1eESERFRMafy5KVnz554/vw5Jk+ejOTkZDg7OyMyMlI6iPfBgwfQ0Pi3A2jZsmXIyspCt27dZK4zZcoUTJ06VdXhEhERUTGn8uQFAIYMGYIhQ4YoPBYdHS3z/t69e6oPiIiIiNRWsZ5tRERERPQpJi9ERESkVpi8EBERkVph8kJERERqhckLERERqRUmL0RERKRWmLwQERGRWmHyQkRERGqFyQsRERGpFSYvREREpFaYvBAREZFaYfJCREREaoXJCxEREamVItlVmkqu2mtry5Vd9bkqQiQim2ooX2ZTuejjICL6BrDnhYiIiNQKkxciIiJSK0xeiIiI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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "nfb.corr(numeric_only=True)" + "correlations = nfb.corr(numeric_only=True)\n", + "correlations.plot(kind='bar', title='Correlations')" ] }, { diff --git a/week_1.ipynb b/A - Getting Started.ipynb similarity index 99% rename from week_1.ipynb rename to A - Getting Started.ipynb index 592d587..ba6c58f 100644 --- a/week_1.ipynb +++ b/A - Getting Started.ipynb @@ -4,10 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 1 - Start here!\n", + "# Section A - Start here!\n", "\n", "**Topics**: Intro, Data types incl numeric, strings, lists, tuples, sets, if else. \n", - " \n", "\n", "The first program most folks make in any language is a hello world. \n", "\n", From 5baa1e59950cdc5109f64e3118fdca841f4e563e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 17:19:39 -0700 Subject: [PATCH 072/163] cleaning up for workshop mode --- README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1fad4ff..65b9949 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ -# python class +# Python Workshop -Welcome to the Library Pythong Intrductory course. Over four weeks, we'll learn the basics of the Python programming language and get to the point where we can open a spreadsheet with pandas and do some basic data analysis. +Welcome to the Library Python Workshop! -We'll use google colab to open and work from python notebooks for this course. https://colab.research.google.com/ This is so anyone attending can work from the library's loaner notebooks if needed, and continue work on a machine at home. You're welcome to install python locally on your own laptop if you prefer. I'd recommend installing the anaconda python distribution as it has everything configured automatically for working with notebooks. +We meet once a week to learn how to program in the Python progamming language. This is intended to be a work at your own pace environment, just bring any questions and stuff you'd like to look at each week and we all benefit as a group looking at it. + +We have coursework ready to learn a few things: +* Basics +* Data analysis with "Pandas" +* ... Will add more to this list... + +## Getting Started +You need a place to run python code and open "ipython notebooks". -## Background Info and To-Do -This guide was originally assembled with scripting and system-automation in mind, but the whole Jupyter Notebook mode of work, I think, makes python more approachable for data manipulation, automating office tasks, etc. And working with python might feel a little more consistent cross-platform when you're working in notebooks, so it's a good format for learning. My to-do list includes: -* Incorporating Python 3.x changes (print, f-strings, encoding, etc.) in the examples -* Adding notebooks for each of four weeks with problems to work on. -* Prioritizing Notebook Use and adding a variety of data science examples. -* Adding modules for micropython, pygame or pygamezero, ... - -## Student Pre-Work: Our recommended mode of work will be in notebooks on google Colab: https://colab.research.google.com/ * Sign up for a google account if you don't have one. * Log in to https://colab.research.google.com and skim over the readme info @@ -26,6 +26,7 @@ If you're working from your own laptop and want to open notebooks locally rather * You can use any python distribution, but Anaconda is highly recommended becuase its package manager works so well and it has support for so many libraries out-of-the-box. ## Curriculum +These notebooks will be renamed to remove the week # convention. * Week 1: Introduction to Python and Google Colab. Covering variables and data types (numeric, strings, boolean), truthiness, and basic control flow (if-else statements). * Week 2: Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while). * Week 3: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration. From 20760c6f657f5edccf2ebc295a703f8a24f57c59 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 17:25:53 -0700 Subject: [PATCH 073/163] renaming notebooks --- A - Getting Started.ipynb => A-Getting_Started.ipynb | 0 week_2.ipynb => B-Dictionaries_and_Loops.ipynb | 0 week_3.ipynb => C-Functions.ipynb | 0 week_4.ipynb => D-Pandas.ipynb | 0 week_5.ipynb => E-Writing_Scripts.ypynb | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename A - Getting Started.ipynb => A-Getting_Started.ipynb (100%) rename week_2.ipynb => B-Dictionaries_and_Loops.ipynb (100%) rename week_3.ipynb => C-Functions.ipynb (100%) rename week_4.ipynb => D-Pandas.ipynb (100%) rename week_5.ipynb => E-Writing_Scripts.ypynb (100%) diff --git a/A - Getting Started.ipynb b/A-Getting_Started.ipynb similarity index 100% rename from A - Getting Started.ipynb rename to A-Getting_Started.ipynb diff --git a/week_2.ipynb b/B-Dictionaries_and_Loops.ipynb similarity index 100% rename from week_2.ipynb rename to B-Dictionaries_and_Loops.ipynb diff --git a/week_3.ipynb b/C-Functions.ipynb similarity index 100% rename from week_3.ipynb rename to C-Functions.ipynb diff --git a/week_4.ipynb b/D-Pandas.ipynb similarity index 100% rename from week_4.ipynb rename to D-Pandas.ipynb diff --git a/week_5.ipynb b/E-Writing_Scripts.ypynb similarity index 100% rename from week_5.ipynb rename to E-Writing_Scripts.ypynb From 740b98d14fbc1be7e68ffa191fd973af07ad0b2f Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 17:26:35 -0700 Subject: [PATCH 074/163] cleanup --- {0-coursework => legacy/0-coursework}/README.md | 0 {0-coursework => legacy/0-coursework}/fireballs.ipynb | 0 {0-coursework => legacy/0-coursework}/grades.csv | 0 {0-coursework => legacy/0-coursework}/nasas fireballs.csv | 0 {0-coursework => legacy/0-coursework}/simple_text.txt | 0 {0-coursework => legacy/0-coursework}/stundent_grades.json | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {0-coursework => legacy/0-coursework}/README.md (100%) rename {0-coursework => legacy/0-coursework}/fireballs.ipynb (100%) rename {0-coursework => legacy/0-coursework}/grades.csv (100%) rename {0-coursework => legacy/0-coursework}/nasas fireballs.csv (100%) rename {0-coursework => legacy/0-coursework}/simple_text.txt (100%) rename {0-coursework => legacy/0-coursework}/stundent_grades.json (100%) diff --git a/0-coursework/README.md b/legacy/0-coursework/README.md similarity index 100% rename from 0-coursework/README.md rename to legacy/0-coursework/README.md diff --git a/0-coursework/fireballs.ipynb b/legacy/0-coursework/fireballs.ipynb similarity index 100% rename from 0-coursework/fireballs.ipynb rename to legacy/0-coursework/fireballs.ipynb diff --git a/0-coursework/grades.csv b/legacy/0-coursework/grades.csv similarity index 100% rename from 0-coursework/grades.csv rename to legacy/0-coursework/grades.csv diff --git a/0-coursework/nasas fireballs.csv b/legacy/0-coursework/nasas fireballs.csv similarity index 100% rename from 0-coursework/nasas fireballs.csv rename to legacy/0-coursework/nasas fireballs.csv diff --git a/0-coursework/simple_text.txt b/legacy/0-coursework/simple_text.txt similarity index 100% rename from 0-coursework/simple_text.txt rename to legacy/0-coursework/simple_text.txt diff --git a/0-coursework/stundent_grades.json b/legacy/0-coursework/stundent_grades.json similarity index 100% rename from 0-coursework/stundent_grades.json rename to legacy/0-coursework/stundent_grades.json From 6af075717f4ed44bfb5f47e13efc45ff4f92d8e9 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 18:03:37 -0700 Subject: [PATCH 075/163] cleanup --- E-Writing_Scripts.ypynb => E-Writing_Scripts.ipynb | 0 F-Microcontrollers.ipynb | 0 README.md | 9 +++++++-- 3 files changed, 7 insertions(+), 2 deletions(-) rename E-Writing_Scripts.ypynb => E-Writing_Scripts.ipynb (100%) create mode 100644 F-Microcontrollers.ipynb diff --git a/E-Writing_Scripts.ypynb b/E-Writing_Scripts.ipynb similarity index 100% rename from E-Writing_Scripts.ypynb rename to E-Writing_Scripts.ipynb diff --git a/F-Microcontrollers.ipynb b/F-Microcontrollers.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 65b9949..5d0b7f5 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ We have coursework ready to learn a few things: * ... Will add more to this list... ## Getting Started -You need a place to run python code and open "ipython notebooks". +You need a place to run python code and open "ipython notebooks". Let us know if you need a laptop to use during class. Our recommended mode of work will be in notebooks on google Colab: https://colab.research.google.com/ * Sign up for a google account if you don't have one. @@ -18,13 +18,18 @@ Our recommended mode of work will be in notebooks on google Colab: https://colab * Open the week one notebook that we'll be working from: * Go to File -> Open Notebook -> Github, and paste in "a8ksh4/Python_Class". * Open the Library Week 1 notebook file -* There's a nice intro video for collabe here: https://www.youtube.com/watch?v=inN8seMm7UI +* There's a nice intro video for colab here: https://www.youtube.com/watch?v=inN8seMm7UI If you're working from your own laptop and want to open notebooks locally rather than in colab, I'd recommend insalling the the Anaconda Python distribution from here: https://www.anaconda.com/products/distribution * In windows, I'd recommend NOT running the installer as administrator - Install for only a single user when prompted. It's easier to install packages if it is installed in your home directory rather than a shared area for all users. * Anaconda is available for Windows, Mac, and Linux! * You can use any python distribution, but Anaconda is highly recommended becuase its package manager works so well and it has support for so many libraries out-of-the-box. +It's also nice editing notebooks and code in VS Code. I think that works well with a plain python instal on your computer, so you'd want to use these: +* Python: +* VS Code: + * Install extensions + ## Curriculum These notebooks will be renamed to remove the week # convention. * Week 1: Introduction to Python and Google Colab. Covering variables and data types (numeric, strings, boolean), truthiness, and basic control flow (if-else statements). From 108cb9df407111bcf7a603d433ab11355e9bae18 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 Aug 2024 18:13:08 -0700 Subject: [PATCH 076/163] cleanup --- A-Getting_Started.ipynb | 9 +++++++++ B-Dictionaries_and_Loops.ipynb | 2 +- C-Functions.ipynb | 2 +- D-Pandas.ipynb | 2 +- E-Writing_Scripts.ipynb | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/A-Getting_Started.ipynb b/A-Getting_Started.ipynb index ba6c58f..354c913 100644 --- a/A-Getting_Started.ipynb +++ b/A-Getting_Started.ipynb @@ -23,6 +23,15 @@ "outputs": [], "source": [] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "BTW, you're looking at a Python Notebook, aka ipython notebook or jupyter notebook. There are \"markdown\" text cells and code cells. You can press shift + enter to render a text cell or to run a code cell. And you can insert a new cell anywhere you want.\n", + "\n", + "You can learn more about markdown at https://www.markdownguide.org/basic-syntax/ - it's a way to make nice looking documents from plain text. You can even use LaTeX in markdown!" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/B-Dictionaries_and_Loops.ipynb b/B-Dictionaries_and_Loops.ipynb index b6254ab..23c3c5a 100644 --- a/B-Dictionaries_and_Loops.ipynb +++ b/B-Dictionaries_and_Loops.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 2\n", + "# Section B\n", "\n", "**Topics**: Dictionaries and advanced control flow - for and while loops - and list comprehinsions.\n", "\n", diff --git a/C-Functions.ipynb b/C-Functions.ipynb index 9e64a37..2f07483 100644 --- a/C-Functions.ipynb +++ b/C-Functions.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 3\n", + "# Section C\n", "\n", "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration.\n", "\n", diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 40899df..8dbbcf2 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 4\n", + "# Section D\n", "\n", "**Pandas week!**\n", "\n", diff --git a/E-Writing_Scripts.ipynb b/E-Writing_Scripts.ipynb index c66585e..5c626f3 100644 --- a/E-Writing_Scripts.ipynb +++ b/E-Writing_Scripts.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 5\n", + "# Section E\n", "\n", "**Topics** - Python Editors, Writing and runnig scripts, argparse library\n", "\n", From 64ff1cf98595c0bc59bee464526673339056ee55 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 24 Aug 2024 11:07:53 -0700 Subject: [PATCH 077/163] content --- ...pynb => C-Functions_and_Pandas_Intro.ipynb | 0 README.md | 156 +++++++----------- 2 files changed, 57 insertions(+), 99 deletions(-) rename C-Functions.ipynb => C-Functions_and_Pandas_Intro.ipynb (100%) diff --git a/C-Functions.ipynb b/C-Functions_and_Pandas_Intro.ipynb similarity index 100% rename from C-Functions.ipynb rename to C-Functions_and_Pandas_Intro.ipynb diff --git a/README.md b/README.md index 5d0b7f5..e5077dc 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,26 @@ -# Python Workshop +# Python Programming Workshop -Welcome to the Library Python Workshop! +Welcome to the Library Python Programming Workshop! -We meet once a week to learn how to program in the Python progamming language. This is intended to be a work at your own pace environment, just bring any questions and stuff you'd like to look at each week and we all benefit as a group looking at it. +We meet once a week to learn how to program in the Python progamming language. This is a work at your own pace and collaborate with others environment; Just bring any questions and stuff you'd like to look at each week and we all benefit as a group looking at it. -We have coursework ready to learn a few things: -* Basics +We have a bunch of coureswork ready to use, including: +* Python Basics * Data analysis with "Pandas" -* ... Will add more to this list... + +See the Notebooks list below for a more detailed list. + +## Current Schedule: +* Monday Aug 26th 4-5PM +* Thursday Aug 29th 4:30-6:30PM +* Wednesday Sep 4th 4-5PM +* TBD (probably not) Sep 11th and 18th +* Wednesday Sep 25th 4-5PM +* Wednesday Oct 2nd 4-5PM +* Each wednesday from 4-5PM ongoing. + +Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** +* Set "limit by location" to "Cameron Park Library". ## Getting Started You need a place to run python code and open "ipython notebooks". Let us know if you need a laptop to use during class. @@ -30,109 +43,54 @@ It's also nice editing notebooks and code in VS Code. I think that works well w * VS Code: * Install extensions -## Curriculum -These notebooks will be renamed to remove the week # convention. -* Week 1: Introduction to Python and Google Colab. Covering variables and data types (numeric, strings, boolean), truthiness, and basic control flow (if-else statements). -* Week 2: Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while). -* Week 3: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration. -* Week 4: Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. +## Notebooks Summary +We have a series of python notebooks ready to work through to learn from. They include all of the information you need to learn, links to additional resources, and programming problems to work through for each topic. + +* A-Getting_Started.ipynb - Introduction to Python and Google Colab. Covering variables and data types (numeric, strings, boolean), truthiness, and basic control flow (if-else statements). +* B-Dictionaries_and_Loops.ipynb - Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while). Opening files and intro to json. +* C-Functions_and_Pandas_Intro.ipynb - Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration +* D-Pandas.ipynb - Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. -### Next Steps -* Online Courses -* Weekend projects -* Automate something at work +**In Development:** +* E-Writing_Scripts.ipynb - Installing python locally, environment, structure of a script, and argparse +* F-Microcontrollers_Intro.ipynb - Circuitpython and Micropython on common microcontroller boards. +* G-Exception_Handling.ipynb - Try/Except blocks and Error Handing. +* H-Unit_Tests.ipynb - Writing test cases to verify your code works as designed. ## Resources -* https://docs.python.org/3/ -* https://www.w3schools.com/python/default.asp -* https://google.github.io/styleguide/pyguide.html -* https://github.com/jsantarc/cognitiveclass.ai-Python-for-Data-Science +**Documentation** +* https://docs.python.org/3/ - Python Documentation +* https://www.w3schools.com/python/default.asp - Great documentation and Examples +* https://peps.python.org/pep-0008/ - "Pep 8" style guide +* https://google.github.io/styleguide/pyguide.html - Google style guide +* https://github.com/jsantarc/cognitiveclass.ai-Python-for-Data-Science - Data science notebooks + +**Online Programming Tools** * https://replit.com/ ### Notes on AI like ChatGPT -These tools are very helpful for learning. For this course, use them to explain how things work, but don't ask them to write code for you. If you don't experiment and learn for yourself, you won't retain much. +These tools are **very** helpful for learning. For this course, use them to explain how things work, but don't ask them to write code for you. If you don't experiment and learn for yourself, you won't retain as much. Keep all of your code and use your past code as the start for each more complicated problem. You'll build a toolkit of libraries and code bits that you understand and make all kinds of things from. +* https://chat.openai.com/chat +* Example questions: + * How do I use for loops in python? + * How do I configure VS Code to use my Anaconda python interpreter? + * etc! -### Optional Pre-Work -* Create a ChatGPT account and try asking it a few questions - it can be very helpful for figuring out how to do things, why things work the way they do, etc: - * https://chat.openai.com/chat - * Example questions: - * How do I use for loops in python? - * How do I configure VS Code to use my Anaconda python interpreter? - * etc! +## Github +This content is hosted here in a Git repository. You can check out a copy to your computer and "pull" updates with a git client: * Make a github.com account and install git. * Linux: sudo apt-get install git * Windows: https://git-scm.com/download/win * Check out this repository in your project area: git clone https://github.com/a8ksh4/python_class.git` - * Feel free to open "bug reports" in this repo for content you'd like to see added, changes needed, or corrections. - -* Install a text editor with code highlighting or an IDE for writing code in: - * Notepad ++: http://notepad-plus-plus.org/ - * VS Code: https://code.visualstudio.com/ - -* Print out this python cheat sheet: tbd - -## Quick Links: -0. [Coursework](./0-coursework/README.md) -1. [Git and Github](./1-git_and_github/README.md) -2. [Python Basics](./2-python_basics/README.md) -3. [Files and Paths](./3-files_and_paths/README.md) -4. [System and Environment](./4-system_and_env/README.md) -5. [Data Manipulation](./5-data_manipulation/README.md) -6. [Exception Handling](./6-exception_handling/README.md) -7. [Unit Testing](./7-unit_testing/README.md) - -## Topics Overview: -### 0 - Coursework -There are four notebooks here, one for each week of the class. - -### 1 - Git and Github - -### 2 - Python Basics -* python installations -* data types -* prompts & getpass -* recursion & iteration -* functions -* scope -* file handling -* sorting -* regex - -### 3 - Files and Paths -* create, rm, copy, move, chmod, chown -* tar, gzip -* logging - -### 4 - System and Environment -* argparse -* os & os.environ -* sys & sys.args -* setuid, setgid -* nis & nodes -* platform -* subprocess - -### 5 - Data Manipulation -* csv, json, yaml, pickle, xlsx -* regex -* sql & sqlite - -### 6 - Exception Handling -* methodology -* Examles - -### 7 - QA and Unit Testing -* examples - -### 8 - Debugging -* http://docs.python-guide.org/en/latest/writing/tests/ - -### 9 - Data Science with pandas -* Importing a Spreadsheet -* Basic column manipulation -* ... -* ... - -### Windows Examples + +Feel free to open "bug reports" in this repo for content you'd like to see added, changes needed, or corrections. Or make an improvement and submit a pull request and I'll merge your changes into the repo. + +## Code Editors +Install a text editor with code highlighting or an IDE for writing code in: +* Notepad ++: http://notepad-plus-plus.org/ +* VS Code: https://code.visualstudio.com/ + +If you're programming circuitpython or micropython on a microcontroller, Thonny is the best editor to start with. It has a built in serial console for seeing output from your code, and helps handle updating the code files on the board for you. An IDE like VS Code or IntelliJ with a Micropython or Circuitpython extension would be more powerful, but more complicated to set up. +* https://thonny.org/ From fec321e7a997a93c56804995fd96897c3adc6057 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 24 Aug 2024 11:18:17 -0700 Subject: [PATCH 078/163] update repo path in docs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e5077dc..4e627d1 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Our recommended mode of work will be in notebooks on google Colab: https://colab * Sign up for a google account if you don't have one. * Log in to https://colab.research.google.com and skim over the readme info * Open the week one notebook that we'll be working from: - * Go to File -> Open Notebook -> Github, and paste in "a8ksh4/Python_Class". + * Go to File -> Open Notebook -> Github, and paste in "a8ksh4/python_workshop". * Open the Library Week 1 notebook file * There's a nice intro video for colab here: https://www.youtube.com/watch?v=inN8seMm7UI From 6e7cc7c0588013eb06bd92ebd86892e8623151be Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 25 Aug 2024 11:42:04 -0700 Subject: [PATCH 079/163] content --- B-Dictionaries_and_Loops.ipynb | 6 +- ...nb => C-Functions_and_Module_Imports.ipynb | 168 +--------------- D-Pandas.ipynb | 10 +- D1-Pandas_Example.ipynb | 190 ++++++++++++++++++ D2-Advanced_Pandas.ipynb | 34 ++++ F-Microcontrollers.ipynb | 27 +++ G-Web_Scraping.ipynb | 25 +++ 7 files changed, 287 insertions(+), 173 deletions(-) rename C-Functions_and_Pandas_Intro.ipynb => C-Functions_and_Module_Imports.ipynb (67%) create mode 100644 D1-Pandas_Example.ipynb create mode 100644 D2-Advanced_Pandas.ipynb create mode 100644 G-Web_Scraping.ipynb diff --git a/B-Dictionaries_and_Loops.ipynb b/B-Dictionaries_and_Loops.ipynb index 23c3c5a..4b27012 100644 --- a/B-Dictionaries_and_Loops.ipynb +++ b/B-Dictionaries_and_Loops.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section B\n", + "# Section B - Dictionaries and Loops\n", "\n", "**Topics**: Dictionaries and advanced control flow - for and while loops - and list comprehinsions.\n", "\n", @@ -935,7 +935,9 @@ "metadata": {}, "source": [ "# Week 2 Turtle Challenge\n", - "This week, we can use the power of loops to make shapes of arbitrary numbers of sides with only a few lines of code!\n", + "Note - you can find example code for running \"turtle\" in the A-Getting_Started notebook. \n", + "\n", + "This time, let's use the power of loops to make shapes of arbitrary numbers of sides with only a few lines of code!\n", "\n", "#### *Exercise*:\n", "**Level 1**\n", diff --git a/C-Functions_and_Pandas_Intro.ipynb b/C-Functions_and_Module_Imports.ipynb similarity index 67% rename from C-Functions_and_Pandas_Intro.ipynb rename to C-Functions_and_Module_Imports.ipynb index 2f07483..187da2b 100644 --- a/C-Functions_and_Pandas_Intro.ipynb +++ b/C-Functions_and_Module_Imports.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section C\n", + "# Section C - Functions and Module Imports\n", "\n", "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration.\n", "\n", @@ -340,173 +340,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# First Pandas Experiment\n", - "Nasa has this list of meteorites that we can use. Let's see what we can learn about this data. We'll import it and generate some plots to better understand it.\n", + "# Turtle Challenge with Functions\n", + "Note - you can find example code for running \"turtle\" in the A-Getting_Started notebook. \n", "\n", - "First thing is importing. We use requests to query the url, get the json data, and convert it to a dataframe. A few useful funtions for viewing data in a dataframe are .head(), .tail(), and .info(). " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import requests\n", - "import pandas as pd\n", - "meteorites = requests.get('https://data.nasa.gov/resource/y77d-th95.json').json()\n", - "mets = pd.DataFrame(meteorites)\n", - "mets.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Great, so we have geolocation, mass, and datetime info for each meteor. Let's try graphing mass per date to see if there's any obvious trend. \n", - "\n", - "We need each column to be the correct datatype before we can generate a plot.\n", - "* To simplify the datetime 'year' column, I use a string operation to split it on the 'T' ang take just the year, month and day. Then we can use pd.to_datetime do convert it to a datetime object by passing in the format to use to convert it. \n", - "* We need the mass to be a numeric value so we overwrite the column with itself converted using pd.to_numeric. Similarly, there ar pd.to_int, pd.to_float, pd.to_string operatoins that we might want to use in other cases. \n", - "\n", - "Finally, pandas has a built in plot function that can generate a bunch of different graph types. Setting 'logy' says to graph the y axis in log scale. Try setting it and see what happens to the data points and y axis scale. \n", - "\n", - "https://www.w3schools.com/python/gloss_python_date_format_codes.asp" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Graph the meteorites by date and mass\n", - "mets['ymd'] = mets['year'].str.split('T').str[0]\n", - "mets['ymd'] = pd.to_datetime(mets['ymd'], format='%Y-%m-%d', errors='coerce')\n", - "mets['mass'] = pd.to_numeric(mets['mass'])\n", - "mets.plot.scatter(x='ymd', y='mass', logy=True, title='Meteorite Mass by Date')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That's neat, but doesn't show much of a trend except that we probably have better records of meteorites found since the late 1800s. Maybe it would be interesting to see where on earth we are finding the meteorites. \n", - "\n", - "Let's plot them on a map of the earth. First thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", - "\n", - "https://geopandas.org/en/stable/docs/user_guide.html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import geopandas\n", - "from geodatasets import get_path\n", - "\n", - "path = get_path(\"naturalearth.land\")\n", - "world = geopandas.read_file(path)\n", - "world.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And now lets put it together! Plotting can get complicated fast... I think that's a weakness of this stuff in python with the pandas, matplotlib libraries, but it's very powerful at least. \n", - "\n", - "To combine plots, we initialize an axis that we pass to the .plot function when we call it for the world and our meteorite dataframes so that the can draw themselves on the same graph. 'ax=ax' looks a littele weird. We'r passing a variable named ax to an argument with the same name. It's just sort of convention to do it this way. Maybe it would be better to use axis for the variable name and pass that to the plot function. \n", - "\n", - "We need to convert our reclong and reclat (longitude and latitude) to numeric values to plot them, so use call .astype(float) to do a type conversion from string.\n", - "\n", - "You can change the colormap - if you put in a bad value, it'll print a bunch you can try in the error message. And the norm= is to convert the mass to log scale here so that we get nice colors for all of the meteorite masses. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots(figsize=(12,6)) # create a figure and axis\n", - "\n", - "world.plot(ax=ax) # plot the world on the axis\n", - "\n", - "mets['reclong'] = mets['reclong'].astype(float) # convert reclong column from string to float\n", - "mets['reclat'] = mets['reclat'].astype(float) # convert reclat column from string to float\n", - "\n", - "# plot the meteorites on the same axis\n", - "mets.plot(x=\"reclong\", y=\"reclat\", kind=\"scatter\", \n", - " c=\"mass\", colormap=\"Accent_r\", \n", - " title=f\"Meteors around the world!\", \n", - " ax=ax, norm=matplotlib.colors.LogNorm())\n", - "\n", - "ax.grid(True) # turn on the grid\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Well that's neat. I extected to see more concentration around the equator. We might need to normalize for population density (people who could see and find an asteroid to report on) to get an idea of were most asteroids actually fall. There is a larger version of this dataset at: \n", - "\n", - "We'll look at more actual numerical analysis stuff in Week 4.\n", - "\n", - "#### *Exercise*\n", - "Open a new notebook and download the dataset for observed meteors from here: https://www.kaggle.com/datasets/ramjasmaurya/fireballsbolides-1988-april-2022. Save it in the same directory as your notebook. If you're working in Google Colab, you should be able to go to File -> Locate notebook in Drive, and then upload the dataset csv file to the same directory in Google drive. \n", - "\n", - "Copy over the following code to get started, and use the above example for the meteorites to make a couple of graphs for this new dataset.\n", - "* radiated energy vs time\n", - "* altitude vs radiated energy\n", - "* try using .corr(numeric_only=True) on the dataframe to see which numeric columns have the strongest correlation. What can we say about these boloids when they enter our atmosphere?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "csv_file_name = 'nasas fireballs.csv'\n", - "nfb = pd.read_csv(csv_file_name)\n", - "# nfb.head() # Uncomment to see the first few rows of the data\n", - "# nfb.info() # Uncomment to see the column names and data types of each column\n", - "\n", - "# the date/time ... column is a string that we want to convert to a datetime object\n", - "# we're creating a 'date' column for this. We could also overwrite the existing column\n", - "# nfb['date'] = pd.to_datetime(nfb['date/time for peak brightness'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "#### *Exercise*\n", - "Go through some of these datasets and find something that looks interesting to you that we can work on next week.\n", - "\n", - "* https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", - "* https://catalog.data.gov/dataset/\n", - "* https://data.fivethirtyeight.com/ - they have zip files with csv data\n", - "* https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Week 3 Turtle Challenge\n", "This week, we can use functions to isolate complex operations into little chunks that are used by other code to perform complex behavior with simple, readable, code.\n", " \n", "#### *Exercise*:\n", - "Streamline your turtle code from last week by moving the functionality to draw arbitrary shapes into a function. The function should take arguments for numbers of sides and size and will be called from the ret of your code from last time." + "Streamline your turtle code from the Dictionaries and Loops notebook by moving the functionality to draw arbitrary shapes into a function. The function should take arguments for numbers of sides and size and will be called from the ret of your code from last time." ] }, { diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 8dbbcf2..2087974 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -4,17 +4,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section D\n", + "# Section D - Pandas\n", "\n", - "**Pandas week!**\n", + "**Topics:** Pandas basics, includeng row and column selections, index, column names, data types and type-casting, and a bit more. \n", "\n", "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to a particular type of data that is multidimensional, involving measurements over time. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", "\n", - "**Pandas** are playfun and memorable, just like **Pandas**!\n", - "\n", - "**Fun detours**\n", - "* Use openai chatgpt to do some text AI\n", - "* Web page hosted in python\n", + "**Pandas** are playfull and memorable, just like **Pandas**!\n", "\n", "# How to approach learning pandas\n", "Start with simple problems. Import a clean excel file. \n", diff --git a/D1-Pandas_Example.ipynb b/D1-Pandas_Example.ipynb new file mode 100644 index 0000000..db2efe4 --- /dev/null +++ b/D1-Pandas_Example.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section D1 - Pandas Example\n", + "\n", + "Let's do some simple data analysis and presentatin with some plots. Nasa has this list of meteorites that we can use. It doesn't require much cleaning/prep to use, so shouldn't take too many steps to make some nice plots and make some observtions.\n", + "\n", + "First thing is importing. We use requests to query the url, get the json data, and convert it to a dataframe. A few useful funtions for viewing data in a dataframe are .head(), .tail(), and .info(). \n", + "\n", + "There's more info on this dataset here: https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh/about_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "meteorites = requests.get('https://data.nasa.gov/resource/y77d-th95.json').json()\n", + "mets = pd.DataFrame(meteorites)\n", + "mets.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, so we have geolocation, mass, and datetime info for each meteor. Let's try graphing mass per date to see if there's any obvious trend. \n", + "\n", + "We need each column to be the correct datatype before we can generate a plot.\n", + "* To simplify the datetime 'year' column, I use a string operation to split it on the 'T' ang take just the year, month and day. Then we can use pd.to_datetime do convert it to a datetime object by passing in the format to use to convert it. \n", + "* We need the mass to be a numeric value so we overwrite the column with itself converted using pd.to_numeric. Similarly, there ar pd.to_int, pd.to_float, pd.to_string operatoins that we might want to use in other cases. \n", + "\n", + "Finally, pandas has a built in plot function that can generate a bunch of different graph types. Setting 'logy' says to graph the y axis in log scale. Try setting it and see what happens to the data points and y axis scale. \n", + "\n", + "https://www.w3schools.com/python/gloss_python_date_format_codes.asp" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Graph the meteorites by date and mass\n", + "mets['ymd'] = mets['year'].str.split('T').str[0]\n", + "mets['ymd'] = pd.to_datetime(mets['ymd'], format='%Y-%m-%d', errors='coerce')\n", + "mets['mass'] = pd.to_numeric(mets['mass'])\n", + "mets.plot.scatter(x='ymd', y='mass', logy=True, title='Meteorite Mass by Date')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's neat, but doesn't show much of a trend except that we probably have better records of meteorites found since the late 1800s. Maybe it would be interesting to see where on earth we are finding the meteorites. \n", + "\n", + "Let's plot them on a map of the earth. First thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", + "\n", + "https://geopandas.org/en/stable/docs/user_guide.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas\n", + "from geodatasets import get_path\n", + "\n", + "path = get_path(\"naturalearth.land\")\n", + "world = geopandas.read_file(path)\n", + "world.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now lets put it together! Plotting can get complicated fast... I think that's a weakness of this stuff in python with the pandas, matplotlib libraries, but it's very powerful at least. \n", + "\n", + "To combine plots, we initialize an axis that we pass to the .plot function when we call it for the world and our meteorite dataframes so that the can draw themselves on the same graph. 'ax=ax' looks a littele weird. We'r passing a variable named ax to an argument with the same name. It's just sort of convention to do it this way. Maybe it would be better to use axis for the variable name and pass that to the plot function. \n", + "\n", + "We need to convert our reclong and reclat (longitude and latitude) to numeric values to plot them, so use call .astype(float) to do a type conversion from string.\n", + "\n", + "You can change the colormap - if you put in a bad value, it'll print a bunch you can try in the error message. And the norm= is to convert the mass to log scale here so that we get nice colors for all of the meteorite masses. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots(figsize=(12,6)) # create a figure and axis\n", + "\n", + "world.plot(ax=ax) # plot the world on the axis\n", + "\n", + "mets['reclong'] = mets['reclong'].astype(float) # convert reclong column from string to float\n", + "mets['reclat'] = mets['reclat'].astype(float) # convert reclat column from string to float\n", + "\n", + "# plot the meteorites on the same axis\n", + "mets.plot(x=\"reclong\", y=\"reclat\", kind=\"scatter\", \n", + " c=\"mass\", colormap=\"Accent_r\", \n", + " title=f\"Meteors around the world!\", \n", + " ax=ax, norm=matplotlib.colors.LogNorm())\n", + "\n", + "ax.grid(True) # turn on the grid\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Well that's neat. I extected to see more concentration around the equator. We might need to normalize for population density (people who could see and find an asteroid to report on) to get an idea of were most asteroids actually fall. There is a larger version of this dataset at: \n", + "\n", + "We'll look at more actual numerical analysis stuff in Week 4.\n", + "\n", + "#### *Exercise*\n", + "Open a new notebook and download the dataset for observed meteors from here: https://www.kaggle.com/datasets/ramjasmaurya/fireballsbolides-1988-april-2022. Save it in the same directory as your notebook. If you're working in Google Colab, you should be able to go to File -> Locate notebook in Drive, and then upload the dataset csv file to the same directory in Google drive. \n", + "\n", + "Copy over the following code to get started, and use the above example for the meteorites to make a couple of graphs for this new dataset.\n", + "* radiated energy vs time\n", + "* altitude vs radiated energy\n", + "* try using .corr(numeric_only=True) on the dataframe to see which numeric columns have the strongest correlation. What can we say about these boloids when they enter our atmosphere?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "csv_file_name = 'nasas fireballs.csv'\n", + "nfb = pd.read_csv(csv_file_name)\n", + "# nfb.head() # Uncomment to see the first few rows of the data\n", + "# nfb.info() # Uncomment to see the column names and data types of each column\n", + "\n", + "# the date/time ... column is a string that we want to convert to a datetime object\n", + "# we're creating a 'date' column for this. We could also overwrite the existing column\n", + "# nfb['date'] = pd.to_datetime(nfb['date/time for peak brightness'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "#### *Exercise*\n", + "Go through some of these datasets and find something that looks interesting to you that we can work on next week.\n", + "\n", + "* https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", + "* https://catalog.data.gov/dataset/\n", + "* https://data.fivethirtyeight.com/ - they have zip files with csv data\n", + "* https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/D2-Advanced_Pandas.ipynb b/D2-Advanced_Pandas.ipynb new file mode 100644 index 0000000..55ca851 --- /dev/null +++ b/D2-Advanced_Pandas.ipynb @@ -0,0 +1,34 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# D2 - Advanced Pandas\n", + "\n", + "**Topics**: loc and iloc, groupby, stack, unstack, pivot, ...\n", + "\n", + "## Wide Format vs Long Format\n", + "\n", + "## .loc and .iloc\n", + "\n", + "## stack, unstack, and pivot\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/F-Microcontrollers.ipynb b/F-Microcontrollers.ipynb index e69de29..9a5b641 100644 --- a/F-Microcontrollers.ipynb +++ b/F-Microcontrollers.ipynb @@ -0,0 +1,27 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section F - Microcontrollers\n", + "\n", + "**Topics:** Programming microcontrollers with CircuitPython" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/G-Web_Scraping.ipynb b/G-Web_Scraping.ipynb new file mode 100644 index 0000000..852d29f --- /dev/null +++ b/G-Web_Scraping.ipynb @@ -0,0 +1,25 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section G - Web Scraping" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From a4ab8ac2f6caece7f71a3c862c10c73c4f62ed78 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 25 Aug 2024 12:57:03 -0700 Subject: [PATCH 080/163] content --- D-Pandas.ipynb | 288 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 272 insertions(+), 16 deletions(-) diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 2087974..ec8aaae 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -11,6 +11,277 @@ "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to a particular type of data that is multidimensional, involving measurements over time. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", "\n", "**Pandas** are playfull and memorable, just like **Pandas**!\n", + "\n", + "Pandas has two types of objects, DataFrames and Series. A dataframe has rows and columns, like a spreadsheet - two dimensional. A single row or column from a dataframe is a Series. If we select a single column from a DataFrame, we get a series, a single dimensional object, and a series can be inserted into a df column. \n", + "\n", + "By convention, we'll import pandas as \"pd\" to save us some typing.\n", + "\n", + " import pandas as pd\n", + "\n", + " It's also common to call a single dataframe we're working on \"df\", but it's a good idea to use a longer more descriptive name for complex tasks.\n", + "\n", + "There is functionality built into pd, as well as the dataframe and series objects that we create that we will use to manipulate the dataframe and series. For example, we use these DataFrame functions a lot to view our data:\n", + "\n", + " df.info() # show a summary of columns and data types in the dataframe. \n", + " df.head() # show the top few rows of the dataframe.\n", + " df.tail() # few bottom rows\n", + " ...and more\n", + "\n", + "And there are functions we call from pd to manipulate the dataframes:\n", + "\n", + " new_df = pd.concat(a_list_of_dataframes) # concatenate dataframes together\n", + " ...and more\n", + "\n", + "## Creating a new Dataframe\n", + "We can create an empty dataframe:\n", + "\n", + " df = pd.DataFrame()\n", + "\n", + "But generally (or always) we'll want to load some data to make a dataframe. Common ways to do this follow. Reference the documentation to see optional arguments to use, like \"skip_rows\" to skip padding rows at the top of an excel or csv file, or use_cols to only import specific columns. \n", + "\n", + "**Excel Files** - https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html\n", + "\n", + " df = pd.read_excel(file_name, ... engine ...)\n", + "\n", + "**CSV Files or dat Files** - https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html\n", + "You may need to set the delimeter for some csv files. \n", + "\n", + " df = pd.read_csv(file_name, ...)\n", + " df = pd.read_table(file_name, ...)\n", + "\n", + "**json Data** - https://pandas.pydata.org/docs/reference/api/pandas.read_json.html\n", + "Useful for data loaded from the web. This is what we use in the D1-Pandas_Example notebook.\n", + "\n", + " df = pd.read_json(json_data, ...)\n", + "\n", + "**Dictionary of Lists to DataFrame**" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Name Age City\n", + "0 Alice 25 New York\n", + "1 Bob 30 Los Angeles\n", + "2 Charlie 35 Chicago\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "data = {\n", + " 'Name': ['Alice', 'Bob', 'Charlie'],\n", + " 'Age': [25, 30, 35],\n", + " 'City': ['New York', 'Los Angeles', 'Chicago']\n", + "}\n", + "\n", + "df = pd.DataFrame(data)\n", + "print(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**list of dictionaries to DataFrame**\n", + "Same idea as above, but slightly different format." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Name Age City\n", + "0 Alice 25 New York\n", + "1 Bob 30 Los Angeles\n", + "2 Charlie 35 Chicago\n" + ] + } + ], + "source": [ + "data = [\n", + " {'Name': 'Alice', 'Age': 25, 'City': 'New York'},\n", + " {'Name': 'Bob', 'Age': 30, 'City': 'Los Angeles'},\n", + " {'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}\n", + "]\n", + "df = pd.DataFrame(data)\n", + "print(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*\n", + "\n", + "In the following code cell, use .info(), .describe(), and .head() to see what kind of data has been loaded into the dataframe. \n", + "\n", + "*We'll use this \"df\" for a few exercises below, so make sure to run this cell before continuing.*" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://api.worldbank.org/v2/countries/USA/indicators/SP.POP.TOTL?per_page=5000&format=json\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
indicatorcountrycountryiso3codedatevalueunitobs_statusdecimal
0{'id': 'SP.POP.TOTL', 'value': 'Population, to...{'id': 'US', 'value': 'United States'}USA20233349148950
1{'id': 'SP.POP.TOTL', 'value': 'Population, to...{'id': 'US', 'value': 'United States'}USA20223332714110
2{'id': 'SP.POP.TOTL', 'value': 'Population, to...{'id': 'US', 'value': 'United States'}USA20213320489770
3{'id': 'SP.POP.TOTL', 'value': 'Population, to...{'id': 'US', 'value': 'United States'}USA20203315269330
4{'id': 'SP.POP.TOTL', 'value': 'Population, to...{'id': 'US', 'value': 'United States'}USA20193283299530
\n", + "
" + ], + "text/plain": [ + " indicator \\\n", + "0 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", + "1 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", + "2 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", + "3 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", + "4 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", + "\n", + " country countryiso3code date value \\\n", + "0 {'id': 'US', 'value': 'United States'} USA 2023 334914895 \n", + "1 {'id': 'US', 'value': 'United States'} USA 2022 333271411 \n", + "2 {'id': 'US', 'value': 'United States'} USA 2021 332048977 \n", + "3 {'id': 'US', 'value': 'United States'} USA 2020 331526933 \n", + "4 {'id': 'US', 'value': 'United States'} USA 2019 328329953 \n", + "\n", + " unit obs_status decimal \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import json\n", + "\n", + "data_url = 'https://api.worldbank.org/v2/countries/USA/indicators/SP.POP.TOTL?per_page=5000&format=json'\n", + "population = requests.get(data_url)\n", + "population = json.loads(population.content)\n", + "population = population[1]\n", + "print(data_url)\n", + "# df = pd.read_json(population.json()[1])\n", + "df = pd.DataFrame(population)\n", + "\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", "# How to approach learning pandas\n", "Start with simple problems. Import a clean excel file. \n", @@ -63,21 +334,6 @@ "### Other" ] }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bar\n" - ] - } - ], - "source": [] - }, { "cell_type": "code", "execution_count": null, @@ -161,7 +417,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, From 42125d039bcd4c4c6670c66b50882d8764cad789 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 28 Aug 2024 17:19:48 -0700 Subject: [PATCH 081/163] content --- B-Dictionaries_and_Loops.ipynb | 2 +- D-Pandas.ipynb | 2 +- E-Writing_Scripts.ipynb | 134 ++++++++++++++++++++++++++++++--- 3 files changed, 127 insertions(+), 11 deletions(-) diff --git a/B-Dictionaries_and_Loops.ipynb b/B-Dictionaries_and_Loops.ipynb index 4b27012..62228f2 100644 --- a/B-Dictionaries_and_Loops.ipynb +++ b/B-Dictionaries_and_Loops.ipynb @@ -41,7 +41,7 @@ "* numbers\n", "* tuples\n", "\n", - "You **cannot use lists** as dictionary keys.\n", + "You **cannot use lists** as dictionary keys, and you cannot use dictionaries as dictionary keys.\n", "\n", "## Using/Accessing dictionary data\n", "We have a few ways to use dictionaries:\n", diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index ec8aaae..9afaf80 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -32,7 +32,7 @@ " new_df = pd.concat(a_list_of_dataframes) # concatenate dataframes together\n", " ...and more\n", "\n", - "## Creating a new Dataframe\n", + "## Creating a Dataframe\n", "We can create an empty dataframe:\n", "\n", " df = pd.DataFrame()\n", diff --git a/E-Writing_Scripts.ipynb b/E-Writing_Scripts.ipynb index 5c626f3..655cc4e 100644 --- a/E-Writing_Scripts.ipynb +++ b/E-Writing_Scripts.ipynb @@ -4,28 +4,144 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section E\n", + "# Section E - Writing Scripts / Programs\n", "\n", "**Topics** - Python Editors, Writing and runnig scripts, argparse library\n", "\n", + "## What is a script?\n", + "It's a text file with code that is executed by an interpreter. Your script might be a program... Calling something a program might imply that it's compiled or that it's more complicated than a script. Python is great for short utility scripts just as well as gigantic compilcated programs. In computationaly intensive programs, you might write moudles in C or or another compiled language, and call those parts from python, keeping all of the complex logic in python so that it's more human friendly to work on. \n", + "\n", "## Python Editors (IDEs)\n", - "A good editor has a few features that really help with writing code:\n", + "It's important to use a good editor for writing scripts. Some features of a good editor include:\n", "* Syntax highlighting\n", "* Linting - A Linter is a tool that looks at your code for issues like missing variables, misspelled stuff, and any time you diverge from standards and conventions that the rest of the world thinks are a good idea. \n", "* You make like for your ide to be able to run your code from the editor and give you the output. Or you may prefer to run it from a terminal window separately. \n", - "* Debugging - If you run your code from the editor, you should be able to set breakpoints to pause your script and see what variables are set, etc. " + "* Debugging - If you run your code from the editor, you should be able to set breakpoints to pause your script and see what variables are set, etc. \n", + "\n", + "A few good ones are:\n", + "* VS Code\n", + "* PyCharm\n", + "* Atom\n", + "* ...\n", + "* VIM or Emacs ()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Template for a script\n", + "\n", + "**The #! shebang line**\n", + "\n", + "Shebang is short for hash bang. This line says which interpreter to use to run the script. A couple of common entries are:\n", + "* In linux for python3:\n", + " * #!/usr/bin/env python3\n", + "* In windows, this would be common:\n", + " * #! python3\n", + "\n", + "In both cases the system PATH variable will be checked to find the given interpreter. \n", + "\n", + "**module description**\n", + "\n", + "You can add a short documentation abou the purpose of the script/module below the shebang line. \n", + "\n", + "**import statements**\n", + "\n", + "They go at the top.\n", + "\n", + "**global variables**\n", + "\n", + "Things like paths to tools that are called by the script, directories. Global variables should be in ALL_CAPS with underscores between the words if they are multi-word. It's common to have a VERBOSE or DEBUG boolean global that's referenced elsewhere do decide whether or not to print debug messages for troubleshooting issues. \n", + "\n", + "**function definitions**\n", + "\n", + "This is the main body of the script. It's not uncommon to have a \"main\" function that is the first thing called when the script starts. You don't have to define any functions if you don't want to. \n", + "\n", + "**the if __name__ ... condition**\n", + "\n", + "This is something that is important if your script might be used as a module that could be imported by another script or module in order to access your scripts functions and global variables. If your script is imported, then it's __name__ will not be \"__main__\", but if it is called as a script, it's name will be \"__main__\", so the code below here gets executed. \n", + "\n", + "You can also skip this section and just start writing code that will run. " ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "vscode": { - "languageId": "plaintext" - } - }, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "#!/usr/bin/env python\n", + "'''Short note about the script/module'''\n", + "\n", + "import stuff\n", + "\n", + "GLOBAL_VAR = 'foo'\n", + "\n", + "def funcDefinition(some, args):\n", + " '''foo'''\n", + " return 'bar'\n", + "\n", + "def main(some, args):\n", + " print('Hello, world!')\n", + "\n", + "if __name__ == '__main__':\n", + " main()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Helpful Libraries for Scripts\n", + "\n", + "### sys\n", + "The sys module provides access to some variables and functions that interact with the Python interpreter.\n", + "* sys.argv - A list of command-line arguments passed to the script. sys.argv[0] is the script name, and if len(sys.argv) > 1, then it was passed some arguments when it was run. \n", + "* sys.exit() - Exits the program with an optional exit code. Exit code zero says that everything worked as expected, and non-zero (positive) says there was an error. You might return different numbers for different errors so if another tool calls your script, it can do something different depending on the exit codes. \n", + "* sys.path - A list of strings that specifies the search path for modules. This is initialized from the PYTHONPATH environment variable or from the PATH environment variable. \n", + "* sys.stdin, sys.stdout, sys.stderr - File objects corresponding to the interpreter’s standard input, output, and error streams.\n", + "* sys.version - A string containing the Python version number.\n", + "\n", + "### os\n", + "The os module provides a way of interacting with the operating system. It allows you to perform actions like reading or writing to the file system, managing directories, and interacting with environment variables.\n", + "\n", + "* os.getenv() - Retrieves the value of an environment variable.\n", + "* os.environ - A dictionary representing the environment variables.\n", + "* os.chdir() - Changes the current working directory.\n", + "* os.getcwd() - Returns the current working directory.\n", + "* os.listdir() - Lists the contents of a directory.\n", + "* os.mkdir() and os.makedirs() - Create directories.\n", + "* os.remove() and os.rmdir() - Remove files and directories.\n", + "* os.path - A submodule for working with file and directory paths, providing functions like:\n", + " * os.path.join()\n", + " * os.path.exists()\n", + " * os.path.isfile()\n", + " * os.path.isdir().\n", + "\n", + "These modules are essential for performing system-level tasks and interacting with the environment in which your Python code is running." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Script Arguments and sys.argv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Argparse\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Logging" + ] } ], "metadata": { From c8ca1941256476d2faf839bc1d9659a507be0fbc Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 28 Aug 2024 17:55:05 -0700 Subject: [PATCH 082/163] add sample data --- SAMPLE_DATA/iris.csv | 151 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 SAMPLE_DATA/iris.csv diff --git a/SAMPLE_DATA/iris.csv b/SAMPLE_DATA/iris.csv new file mode 100644 index 0000000..21ae196 --- /dev/null +++ b/SAMPLE_DATA/iris.csv @@ -0,0 +1,151 @@ +sepal_length,sepal_width,petal_length,petal_width,species +5.1,3.5,1.4,0.2,Iris-setosa +4.9,3,1.4,0.2,Iris-setosa +4.7,3.2,1.3,0.2,Iris-setosa +4.6,3.1,1.5,0.2,Iris-setosa +5,3.6,1.4,0.2,Iris-setosa +5.4,3.9,1.7,0.4,Iris-setosa +4.6,3.4,1.4,0.3,Iris-setosa +5,3.4,1.5,0.2,Iris-setosa +4.4,2.9,1.4,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +5.4,3.7,1.5,0.2,Iris-setosa +4.8,3.4,1.6,0.2,Iris-setosa +4.8,3,1.4,0.1,Iris-setosa +4.3,3,1.1,0.1,Iris-setosa +5.8,4,1.2,0.2,Iris-setosa +5.7,4.4,1.5,0.4,Iris-setosa +5.4,3.9,1.3,0.4,Iris-setosa +5.1,3.5,1.4,0.3,Iris-setosa +5.7,3.8,1.7,0.3,Iris-setosa +5.1,3.8,1.5,0.3,Iris-setosa +5.4,3.4,1.7,0.2,Iris-setosa +5.1,3.7,1.5,0.4,Iris-setosa +4.6,3.6,1,0.2,Iris-setosa +5.1,3.3,1.7,0.5,Iris-setosa +4.8,3.4,1.9,0.2,Iris-setosa +5,3,1.6,0.2,Iris-setosa +5,3.4,1.6,0.4,Iris-setosa +5.2,3.5,1.5,0.2,Iris-setosa +5.2,3.4,1.4,0.2,Iris-setosa +4.7,3.2,1.6,0.2,Iris-setosa +4.8,3.1,1.6,0.2,Iris-setosa +5.4,3.4,1.5,0.4,Iris-setosa +5.2,4.1,1.5,0.1,Iris-setosa +5.5,4.2,1.4,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +5,3.2,1.2,0.2,Iris-setosa +5.5,3.5,1.3,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +4.4,3,1.3,0.2,Iris-setosa +5.1,3.4,1.5,0.2,Iris-setosa +5,3.5,1.3,0.3,Iris-setosa +4.5,2.3,1.3,0.3,Iris-setosa +4.4,3.2,1.3,0.2,Iris-setosa +5,3.5,1.6,0.6,Iris-setosa +5.1,3.8,1.9,0.4,Iris-setosa +4.8,3,1.4,0.3,Iris-setosa +5.1,3.8,1.6,0.2,Iris-setosa +4.6,3.2,1.4,0.2,Iris-setosa +5.3,3.7,1.5,0.2,Iris-setosa +5,3.3,1.4,0.2,Iris-setosa +7,3.2,4.7,1.4,Iris-versicolor +6.4,3.2,4.5,1.5,Iris-versicolor +6.9,3.1,4.9,1.5,Iris-versicolor +5.5,2.3,4,1.3,Iris-versicolor +6.5,2.8,4.6,1.5,Iris-versicolor +5.7,2.8,4.5,1.3,Iris-versicolor +6.3,3.3,4.7,1.6,Iris-versicolor +4.9,2.4,3.3,1,Iris-versicolor +6.6,2.9,4.6,1.3,Iris-versicolor +5.2,2.7,3.9,1.4,Iris-versicolor +5,2,3.5,1,Iris-versicolor +5.9,3,4.2,1.5,Iris-versicolor +6,2.2,4,1,Iris-versicolor +6.1,2.9,4.7,1.4,Iris-versicolor +5.6,2.9,3.6,1.3,Iris-versicolor +6.7,3.1,4.4,1.4,Iris-versicolor +5.6,3,4.5,1.5,Iris-versicolor +5.8,2.7,4.1,1,Iris-versicolor +6.2,2.2,4.5,1.5,Iris-versicolor +5.6,2.5,3.9,1.1,Iris-versicolor +5.9,3.2,4.8,1.8,Iris-versicolor +6.1,2.8,4,1.3,Iris-versicolor +6.3,2.5,4.9,1.5,Iris-versicolor +6.1,2.8,4.7,1.2,Iris-versicolor +6.4,2.9,4.3,1.3,Iris-versicolor +6.6,3,4.4,1.4,Iris-versicolor +6.8,2.8,4.8,1.4,Iris-versicolor +6.7,3,5,1.7,Iris-versicolor +6,2.9,4.5,1.5,Iris-versicolor +5.7,2.6,3.5,1,Iris-versicolor +5.5,2.4,3.8,1.1,Iris-versicolor +5.5,2.4,3.7,1,Iris-versicolor +5.8,2.7,3.9,1.2,Iris-versicolor +6,2.7,5.1,1.6,Iris-versicolor +5.4,3,4.5,1.5,Iris-versicolor +6,3.4,4.5,1.6,Iris-versicolor +6.7,3.1,4.7,1.5,Iris-versicolor +6.3,2.3,4.4,1.3,Iris-versicolor +5.6,3,4.1,1.3,Iris-versicolor +5.5,2.5,4,1.3,Iris-versicolor +5.5,2.6,4.4,1.2,Iris-versicolor +6.1,3,4.6,1.4,Iris-versicolor +5.8,2.6,4,1.2,Iris-versicolor +5,2.3,3.3,1,Iris-versicolor +5.6,2.7,4.2,1.3,Iris-versicolor +5.7,3,4.2,1.2,Iris-versicolor +5.7,2.9,4.2,1.3,Iris-versicolor +6.2,2.9,4.3,1.3,Iris-versicolor +5.1,2.5,3,1.1,Iris-versicolor +5.7,2.8,4.1,1.3,Iris-versicolor +6.3,3.3,6,2.5,Iris-virginica +5.8,2.7,5.1,1.9,Iris-virginica +7.1,3,5.9,2.1,Iris-virginica +6.3,2.9,5.6,1.8,Iris-virginica +6.5,3,5.8,2.2,Iris-virginica +7.6,3,6.6,2.1,Iris-virginica +4.9,2.5,4.5,1.7,Iris-virginica +7.3,2.9,6.3,1.8,Iris-virginica +6.7,2.5,5.8,1.8,Iris-virginica +7.2,3.6,6.1,2.5,Iris-virginica +6.5,3.2,5.1,2,Iris-virginica +6.4,2.7,5.3,1.9,Iris-virginica +6.8,3,5.5,2.1,Iris-virginica +5.7,2.5,5,2,Iris-virginica +5.8,2.8,5.1,2.4,Iris-virginica +6.4,3.2,5.3,2.3,Iris-virginica +6.5,3,5.5,1.8,Iris-virginica +7.7,3.8,6.7,2.2,Iris-virginica +7.7,2.6,6.9,2.3,Iris-virginica +6,2.2,5,1.5,Iris-virginica +6.9,3.2,5.7,2.3,Iris-virginica +5.6,2.8,4.9,2,Iris-virginica +7.7,2.8,6.7,2,Iris-virginica +6.3,2.7,4.9,1.8,Iris-virginica +6.7,3.3,5.7,2.1,Iris-virginica +7.2,3.2,6,1.8,Iris-virginica +6.2,2.8,4.8,1.8,Iris-virginica +6.1,3,4.9,1.8,Iris-virginica +6.4,2.8,5.6,2.1,Iris-virginica +7.2,3,5.8,1.6,Iris-virginica +7.4,2.8,6.1,1.9,Iris-virginica +7.9,3.8,6.4,2,Iris-virginica +6.4,2.8,5.6,2.2,Iris-virginica +6.3,2.8,5.1,1.5,Iris-virginica +6.1,2.6,5.6,1.4,Iris-virginica +7.7,3,6.1,2.3,Iris-virginica +6.3,3.4,5.6,2.4,Iris-virginica +6.4,3.1,5.5,1.8,Iris-virginica +6,3,4.8,1.8,Iris-virginica +6.9,3.1,5.4,2.1,Iris-virginica +6.7,3.1,5.6,2.4,Iris-virginica +6.9,3.1,5.1,2.3,Iris-virginica +5.8,2.7,5.1,1.9,Iris-virginica +6.8,3.2,5.9,2.3,Iris-virginica +6.7,3.3,5.7,2.5,Iris-virginica +6.7,3,5.2,2.3,Iris-virginica +6.3,2.5,5,1.9,Iris-virginica +6.5,3,5.2,2,Iris-virginica +6.2,3.4,5.4,2.3,Iris-virginica +5.9,3,5.1,1.8,Iris-virginica From 8e9427cba96946cddc9e33478fde9c18df36379e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 28 Aug 2024 18:20:45 -0700 Subject: [PATCH 083/163] content --- D-Pandas.ipynb | 208 +++++++++++++++++++++++++------------------------ 1 file changed, 105 insertions(+), 103 deletions(-) diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 9afaf80..51c7233 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -133,16 +133,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 25, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "https://api.worldbank.org/v2/countries/USA/indicators/SP.POP.TOTL?per_page=5000&format=json\n" - ] - }, { "data": { "text/html": [ @@ -164,147 +157,156 @@ " \n", " \n", " \n", - " indicator\n", - " country\n", - " countryiso3code\n", - " date\n", - " value\n", - " unit\n", - " obs_status\n", - " decimal\n", + " sepal_length\n", + " sepal_width\n", + " petal_length\n", + " petal_width\n", + " species\n", " \n", " \n", " \n", " \n", " 0\n", - " {'id': 'SP.POP.TOTL', 'value': 'Population, to...\n", - " {'id': 'US', 'value': 'United States'}\n", - " USA\n", - " 2023\n", - " 334914895\n", - " \n", - " \n", - " 0\n", + " 5.1\n", + " 3.5\n", + " 1.4\n", + " 0.2\n", + " Iris-setosa\n", " \n", " \n", " 1\n", - " {'id': 'SP.POP.TOTL', 'value': 'Population, to...\n", - " {'id': 'US', 'value': 'United States'}\n", - " USA\n", - " 2022\n", - " 333271411\n", - " \n", - " \n", - " 0\n", + " 4.9\n", + " 3.0\n", + " 1.4\n", + " 0.2\n", + " Iris-setosa\n", " \n", " \n", " 2\n", - " {'id': 'SP.POP.TOTL', 'value': 'Population, to...\n", - " {'id': 'US', 'value': 'United States'}\n", - " USA\n", - " 2021\n", - " 332048977\n", - " \n", - " \n", - " 0\n", + " 4.7\n", + " 3.2\n", + " 1.3\n", + " 0.2\n", + " Iris-setosa\n", " \n", " \n", " 3\n", - " {'id': 'SP.POP.TOTL', 'value': 'Population, to...\n", - " {'id': 'US', 'value': 'United States'}\n", - " USA\n", - " 2020\n", - " 331526933\n", - " \n", - " \n", - " 0\n", + " 4.6\n", + " 3.1\n", + " 1.5\n", + " 0.2\n", + " Iris-setosa\n", " \n", " \n", " 4\n", - " {'id': 'SP.POP.TOTL', 'value': 'Population, to...\n", - " {'id': 'US', 'value': 'United States'}\n", - " USA\n", - " 2019\n", - " 328329953\n", - " \n", - " \n", - " 0\n", + " 5.0\n", + " 3.6\n", + " 1.4\n", + " 0.2\n", + " Iris-setosa\n", " \n", " \n", "\n", "" ], "text/plain": [ - " indicator \\\n", - "0 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", - "1 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", - "2 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", - "3 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", - "4 {'id': 'SP.POP.TOTL', 'value': 'Population, to... \n", - "\n", - " country countryiso3code date value \\\n", - "0 {'id': 'US', 'value': 'United States'} USA 2023 334914895 \n", - "1 {'id': 'US', 'value': 'United States'} USA 2022 333271411 \n", - "2 {'id': 'US', 'value': 'United States'} USA 2021 332048977 \n", - "3 {'id': 'US', 'value': 'United States'} USA 2020 331526933 \n", - "4 {'id': 'US', 'value': 'United States'} USA 2019 328329953 \n", - "\n", - " unit obs_status decimal \n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 " + " sepal_length sepal_width petal_length petal_width species\n", + "0 5.1 3.5 1.4 0.2 Iris-setosa\n", + "1 4.9 3.0 1.4 0.2 Iris-setosa\n", + "2 4.7 3.2 1.3 0.2 Iris-setosa\n", + "3 4.6 3.1 1.5 0.2 Iris-setosa\n", + "4 5.0 3.6 1.4 0.2 Iris-setosa" ] }, - "execution_count": 15, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "import requests\n", - "import pandas as pd\n", - "import json\n", - "\n", - "data_url = 'https://api.worldbank.org/v2/countries/USA/indicators/SP.POP.TOTL?per_page=5000&format=json'\n", - "population = requests.get(data_url)\n", - "population = json.loads(population.content)\n", - "population = population[1]\n", - "print(data_url)\n", - "# df = pd.read_json(population.json()[1])\n", - "df = pd.DataFrame(population)\n", - "\n", + "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")\n", "df.head()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Selecting Columns:\n", + "We can both asign or select single column from a datafram with df['column_name']. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the sepal lenghts are:\n", + " 0 5.1\n", + "1 4.9\n", + "2 4.7\n", + "3 4.6\n", + "4 5.0\n", + " ... \n", + "145 6.7\n", + "146 6.3\n", + "147 6.5\n", + "148 6.2\n", + "149 5.9\n", + "Name: sepal_length, Length: 150, dtype: float64\n", + "and in inches:\n", + " 0 2.007875\n", + "1 1.929135\n", + "2 1.850395\n", + "3 1.811025\n", + "4 1.968505\n", + " ... \n", + "145 2.637797\n", + "146 2.480316\n", + "147 2.559057\n", + "148 2.440946\n", + "149 2.322836\n", + "Name: sepal_length_inches, Length: 150, dtype: float64\n" + ] + } + ], + "source": [ + "# a single column is a series, so sepal_lenghts is a series.\n", + "sepal_lenghths = df['sepal_length']\n", + "print('the sepal lenghts are:\\n', sepal_lenghths)\n", + "\n", + "# we're creating a new column in the dataframe here.\n", + "df['sepal_length_inches'] = df['sepal_length'] * 0.393701\n", + "print('and in inches:\\n', df['sepal_length_inches'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is a good time to mention broadcasting - When you perform a mathematical operatino on a column, the operatoin is broadcast to every value in the column. " + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", - "# How to approach learning pandas\n", - "Start with simple problems. Import a clean excel file. \n", + "## Selecting Rows:\n", "\n", - "## Basics\n", - "We use pandas to make **DataFrame**s and **Series**. A single column of a dataframe is a series, and it has some different built in functinoality than a dataframe. \n", + "## Iterating Over rows\n", "\n", - "## Pandas Objects - DataFrames and Series\n", - "The DataFrame is the primary pandas opject we will work with. \n", + "## Type Conversions\n", "\n", "## Note Regading inplace=True\n", "changed_dataframe = df.some_modification()\n", "\n", "Pandas is phasing out inplace modification. It can still be done by passing the 'inplace=True'\n", "\n", - "## Selecting Columns\n", - "a_series = df['some_col'] \n", - "a_dataframe = df[['a_col', 'another_col']]\n", - "\n", - "## Selecting Rows\n", - "\n", - "## Iterating over rows\n", - "\n", "## Type Conversions\n", "Freqently string to numeric\n", "String to datetime\n", From 4e116268665e2d30c644c6d3525c40e6eca97358 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 1 Sep 2024 22:17:18 -0700 Subject: [PATCH 084/163] content --- A-Getting_Started.ipynb | 41 +-- D-Pandas.ipynb | 314 +++++++++--------- E-Writing_Scripts.ipynb | 186 ++++++++--- ...F-Microcontrollers_and_Circuitpython.ipynb | 0 4 files changed, 336 insertions(+), 205 deletions(-) rename F-Microcontrollers.ipynb => F-Microcontrollers_and_Circuitpython.ipynb (100%) diff --git a/A-Getting_Started.ipynb b/A-Getting_Started.ipynb index 354c913..f89377f 100644 --- a/A-Getting_Started.ipynb +++ b/A-Getting_Started.ipynb @@ -66,7 +66,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Libraries\n", + "## Libraries\n", "You'll learn pretty quickly that learing python is as much about understanding how the language works as getting familiar with libraries to do the things you want to do. A few examples:\n", "* import math\n", " * it has functions for rounding, trig, and a lot more\n", @@ -85,10 +85,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Syntax\n", + "## Syntax\n", "Reference this page: https://en.wikipedia.org/wiki/Python_syntax_and_semantics\n", "\n", - "## Keywords\n", + "### Keywords\n", "Some words cannot be used as variables because they have special meaning in the python language: \n", "\n", " and as assert async await break case class continue \n", @@ -96,37 +96,40 @@ " if import in is lambda match None nonlocal not or pass \n", " raise return True try while with yield _.*\n", "\n", - "## Indentation\n", - "Python uses indentation to group code inside of functions, classes, and control blocks. Other languages often use { } for the same purpose. \n", + "### Indentation\n", + "Python uses indentation to group code inside of functions, classes, and control blocks. Other languages often use { } for the same purpose.\n", + "* Be consistent with your indentation. \n", + "* **Four spaces per indentation level** is recommended. It can be hard to see which code aligns with which above it when using only two spaces per indentation level.\n", + "* Many editors can be configured to intent four spaces each time you press the tab key. \n", + "* Technically you can use tab characters or any number of spaces per indentaton level. Above all, **be consistent**.\n", "\n", - "For example, this function called foo has an if else block inside of it, with indentation showing what code belongs to the function:\n", + "Here's an example function named \"foo\" that has an if else condition block inside of it. Everything indented after the def line is part of the function, and the lines after the if and else blocks each have additional indentation. When the indentation ends, the block ends. \n", "\n", " def foo(x):\n", - " if x == 0:\n", - " bar()\n", + " if x > 9000:\n", + " print(\"x is big!\")\n", " else:\n", - " baz(x)\n", - " foo(x - 1)\n", + " print(\"x is small!\")\n", + " print(\"This is in the function. We checked if x is big.\")\n", "\n", - "**What would happen if the last line, 'foo(x-1)' were un-indented to the same level as the if and else lines?**\n", - "\n", - "**What would happen if there were tab characters mixed with the spaces in the indention in the above foo function?**\n", + " print(\"This print statement is outside of the function.\")\n", "\n", "An equivelant function in c could be written like this:\n", "\n", " void foo(int x)\n", " {\n", - " if (x == 0) {\n", - " bar();\n", + " if (x > 9000) {\n", + " printf(\"x is big!\");\n", " } else {\n", - " baz(x);\n", - " foo(x - 1);\n", + " printf(\"x is small!\");\n", " }\n", + " printf(\"This is in the function. We checked if x is big.\");\n", " }\n", + " print(\"This print statement is outside of the function.\");\n", "\n", - "The indentation in c code is functionally unnecessary, but makes it readable.\n", + "The indentation in c code is functionally unnecessary, but makes it readable. The { and } group the code.\n", "\n", - "## Quoting\n", + "### Quoting\n", "Strings, non-numeric values, are quoted with ', \", ''', \"\"\". We'll look at this more in the strings section below. Just note this. Variable names are not quoted, but values when assigned or passed as arguments to a function are if they are to be treated as strings. \n", "\n", "Examples:\n", diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 51c7233..961410a 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -8,28 +8,31 @@ "\n", "**Topics:** Pandas basics, includeng row and column selections, index, column names, data types and type-casting, and a bit more. \n", "\n", - "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to a particular type of data that is multidimensional, involving measurements over time. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", + "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to two dimensoinal data, often including measurements over time - time series - or collections of things/events. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", "\n", "**Pandas** are playfull and memorable, just like **Pandas**!\n", "\n", - "Pandas has two types of objects, DataFrames and Series. A dataframe has rows and columns, like a spreadsheet - two dimensional. A single row or column from a dataframe is a Series. If we select a single column from a DataFrame, we get a series, a single dimensional object, and a series can be inserted into a df column. \n", + "Pandas has two types of objects, **DataFrames** and **Series**. A dataframe has rows and columns, like a spreadsheet - two dimensional. A single row or column from a dataframe is a Series. If we select a single column from a DataFrame, we get a series, a single dimensional object, and a series can be inserted into a df column. \n", "\n", "By convention, we'll import pandas as \"pd\" to save us some typing.\n", "\n", " import pandas as pd\n", "\n", - " It's also common to call a single dataframe we're working on \"df\", but it's a good idea to use a longer more descriptive name for complex tasks.\n", + " It's also common to call a single dataframe that we're working on \"df\", but it's a good idea to use a longer more descriptive name for complex tasks.\n", + "\n", + " df = pd.read_csv('my_data.csv')\n", "\n", "There is functionality built into pd, as well as the dataframe and series objects that we create that we will use to manipulate the dataframe and series. For example, we use these DataFrame functions a lot to view our data:\n", "\n", " df.info() # show a summary of columns and data types in the dataframe. \n", " df.head() # show the top few rows of the dataframe.\n", " df.tail() # few bottom rows\n", + " df.describe()\n", " ...and more\n", "\n", "And there are functions we call from pd to manipulate the dataframes:\n", "\n", - " new_df = pd.concat(a_list_of_dataframes) # concatenate dataframes together\n", + " big_df = pd.concat(a_list_of_small_dataframes) # concatenate dataframes together\n", " ...and more\n", "\n", "## Creating a Dataframe\n", @@ -59,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -126,194 +129,207 @@ "source": [ "#### *Exercise*\n", "\n", - "In the following code cell, use .info(), .describe(), and .head() to see what kind of data has been loaded into the dataframe. \n", + "In the following code cell, use these functions to look at information about the dataframe:\n", + "\n", + " .info(), .describe(), and .head() \n", + "\n", + "And print thef following properties of the dataframe, like: `df.shape`\n", + "\n", + " .columns, .size, .shape\n", "\n", - "*We'll use this \"df\" for a few exercises below, so make sure to run this cell before continuing.*" + "* What data type is each of the columns?\n", + "* How many rows and columns are there?\n", + "* What's the relationship between shape and size?\n", + "* Use a list comprehension to overwrite df.columns and make the comlumn names upper case. `df.columns = [... ... df.comumns]`\n", + "\n", + "Scroll through the DataFrame documentation to get an idea of what methods are built into it: https://pandas.pydata.org/pandas-docs/stable/reference/frame.html" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 4, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", - "
" - ], - "text/plain": [ - " sepal_length sepal_width petal_length petal_width species\n", - "0 5.1 3.5 1.4 0.2 Iris-setosa\n", - "1 4.9 3.0 1.4 0.2 Iris-setosa\n", - "2 4.7 3.2 1.3 0.2 Iris-setosa\n", - "3 4.6 3.1 1.5 0.2 Iris-setosa\n", - "4 5.0 3.6 1.4 0.2 Iris-setosa" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")\n", - "df.head()" + "# *We'll use this \"df\" for a few exercises below, so make sure to run this cell before continuing.*\n", + "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Your code here. You can re-run the above cell if you mess up your dataframe.\n", + "# print(df....)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Selecting Columns:\n", - "We can both asign or select single column from a datafram with df['column_name']. For example:" + "## Selecting Columns by name:\n", + "We can select a single column by passing it's name in brackets, like: `df['column_name']`\n", + "\n", + "And we can select multiple columns by passing a list of column names in nested brackets: `df[['column1', 'column2', ...]]`\n", + "\n", + "This is a bit like string or list slicing, but using names or lists of names to take a selection of the available columns.\n", + "\n", + "We can use this to both get values from columns or to assign values directly into one or more columns, or to create new columns of some name." ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the sepal lenghts are:\n", - " 0 5.1\n", - "1 4.9\n", - "2 4.7\n", - "3 4.6\n", - "4 5.0\n", - " ... \n", - "145 6.7\n", - "146 6.3\n", - "147 6.5\n", - "148 6.2\n", - "149 5.9\n", - "Name: sepal_length, Length: 150, dtype: float64\n", - "and in inches:\n", - " 0 2.007875\n", - "1 1.929135\n", - "2 1.850395\n", - "3 1.811025\n", - "4 1.968505\n", - " ... \n", - "145 2.637797\n", - "146 2.480316\n", - "147 2.559057\n", - "148 2.440946\n", - "149 2.322836\n", - "Name: sepal_length_inches, Length: 150, dtype: float64\n" - ] - } - ], + "outputs": [], "source": [ - "# a single column is a series, so sepal_lenghts is a series.\n", - "sepal_lenghths = df['sepal_length']\n", - "print('the sepal lenghts are:\\n', sepal_lenghths)\n", + "# a single column is a series object, so sepal_lenghts is a series.\n", + "sls = df['sepal_length']\n", + "print('some of the sepal lenghths are:\\n', str(sls))\n", + "print('all the sepal lenghts are:\\n', list(sls))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*\n", + "Just like we did for the dataframe above, let's explore this \"sls\" series object.\n", "\n", - "# we're creating a new column in the dataframe here.\n", - "df['sepal_length_inches'] = df['sepal_length'] * 0.393701\n", - "print('and in inches:\\n', df['sepal_length_inches'])" + "* Use the `.info(), .shape, .size` properties to learn about the object. \n", + "* And Let's try some more interesting functions built into series objects: `.sum(), .value_counts(), .mean()`\n", + "* Check if the series is greater than 3. What is returned? This list of True/False values is important for a future concept, \"masks\", for selecting rows.\n", + "* Scroll through some of the methods listed in the series documentation here: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "This is a good time to mention broadcasting - When you perform a mathematical operatino on a column, the operatoin is broadcast to every value in the column. " + "### Creating and manipulating columns of data:\n", + "We can perform mathematical operations on columns of data and put the result into a new or existing column. For example, if we want to add a column with units inches instead of cm:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df['sepal_length_inches'] = df['sepal_length'] * 0.393701\n", + "length_columns = sorted([c for c in df.columns if 'length' in c])\n", + "print('length comparison:\\n', df[length_columns])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "When you perform operations on a column, like multiplying the 'sepal_length' column by 0.393, that operation is broadcast across all rows in the column. \n", "\n", - "## Selecting Rows:\n", + "We can also select multiple columns py passing the columns in [], like: `df[['petal_length', 'petal_width']]`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df['width_difference'] = (df['sepal_width'] - df['petal_width']).abs()\n", "\n", - "## Iterating Over rows\n", + "\n", + "print('Widths:')\n", + "print(df[['sepal_width', 'petal_width', 'width_difference']])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Selecting Rows with loc and iloc\n", + "**.loc** vs **.iloc**\n", + "* .loc selects rows with particular labels in the series or dataframe index\n", + "* .iloc selects rows at integer locations within the series or dataframe. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Iterating Over rows" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for row in df.iterrows():\n", + " print(row)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", "## Type Conversions\n", + "**String to Numeric**\n", + "**String to Datetime**\n", + "**Datetime to Numeric**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## String Operations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using .apply for arbitrary operations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", "## Note Regading inplace=True\n", "changed_dataframe = df.some_modification()\n", "\n", "Pandas is phasing out inplace modification. It can still be done by passing the 'inplace=True'\n", "\n", - "## Type Conversions\n", - "Freqently string to numeric\n", - "String to datetime\n", "\n", - "### Datetime Conversions\n", "\n", - "## String Operations\n", "\n", "\n", "## Concatenation\n", diff --git a/E-Writing_Scripts.ipynb b/E-Writing_Scripts.ipynb index 655cc4e..161abcb 100644 --- a/E-Writing_Scripts.ipynb +++ b/E-Writing_Scripts.ipynb @@ -8,9 +8,25 @@ "\n", "**Topics** - Python Editors, Writing and runnig scripts, argparse library\n", "\n", - "## What is a script?\n", - "It's a text file with code that is executed by an interpreter. Your script might be a program... Calling something a program might imply that it's compiled or that it's more complicated than a script. Python is great for short utility scripts just as well as gigantic compilcated programs. In computationaly intensive programs, you might write moudles in C or or another compiled language, and call those parts from python, keeping all of the complex logic in python so that it's more human friendly to work on. \n", + "So far, we've been working in python notebooks - these are great for workflows or data centered presentations where you want to mix text, code, and graphs/plots and a human will be interacting with it. \n", "\n", + "But some times we want to make a tool that we can run, maybe part of an automated process, and don't want to see the code to do it. We can write a script - a text file that the python interpreter runs for us. \n", + "\n", + "**Script** vs **Program** - call it what you want. Calling something a program implies that it's compiled, or at least that its more complicated than a script. Python works just as well for short utility scripts as for gigantic programs, but it's not really\n", + "\\* compiled. In computationaly intensive programs, you might write moudles in C or or another compiled language to handle the cpu-heavy tasks, and call those modules from python, keeping all of the complex program logic in python so that it's more human friendly to work on. \n", + "\n", + "\\* *When you run a python .py script, it is converted to a .pyc bytecode file which is executed by the interpreted. The bytecode is obfuscated, but is trivial to convert back to python code, unlike a truely compiled language. sometimes you'll see people/companies distribute .pyc files to obfuscate their tools somewhat.*\n", + "\n", + "## Installing Python\n", + "You need to have a python interpreter installed on your computer in order to run a python script. You should **select the option during install to add the interpreter to the system PATH** so that when you open up a cmd or powershell window, you can directly run a .py file with \"python3\" in the shebang line and it just runs, or you can say \"pyhon my_script.py\" and python is in your path so it just works. \n", + "\n", + "https://www.python.org/downloads/" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Python Editors (IDEs)\n", "It's important to use a good editor for writing scripts. Some features of a good editor include:\n", "* Syntax highlighting\n", @@ -20,49 +36,44 @@ "\n", "A few good ones are:\n", "* VS Code\n", - "* PyCharm\n", + "* IntelliJ or PyCharm\n", "* Atom\n", - "* ...\n", - "* VIM or Emacs ()" + "* Sublime\n", + "* VIM, NeoVIM, or Emacs (there are more of a Linux thing)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Template for a script\n", + "#### *Exercise*\n", + "Open a cmd (windows) or xterm (linux) an try running `python --version` or `python3 --version`. if you don't have python installed, you'll get an error. Windows might pop up a windows store page to instal python. That'll probably work. Install python if you need to and get this working. \n", "\n", - "**The #! shebang line**\n", + "Install an IDE - I recommend VS Code, but use what you want. The instructions here will all be for VS Code. once installed, go into the extensions menu and search for \"python microsoft\". Install the \"python\", \"Pylance\", \"Pylint\", \"autopep8\" extensions specifically from microsoft. You may also like the \"Jupyter\" extension for notebooks. \"Copilot\" is great too, but requires signing up for it at github.com. \n", "\n", - "Shebang is short for hash bang. This line says which interpreter to use to run the script. A couple of common entries are:\n", - "* In linux for python3:\n", - " * #!/usr/bin/env python3\n", - "* In windows, this would be common:\n", - " * #! python3\n", + "Make a folder in your home directory for python scripts and open that folder with Code. Use the exploror winodw pane on the left to create a new file caled hello.py. Add the following to the file and save it (ctrl+s is a shortcut to save):\n", "\n", - "In both cases the system PATH variable will be checked to find the given interpreter. \n", + " #! pyhon3\n", "\n", - "**module description**\n", + " print(\"Hello World!\")\n", "\n", - "You can add a short documentation abou the purpose of the script/module below the shebang line. \n", + "Pretty Simple! Now cd to that directory in your command window and run the script by typing it's name and hitting enter! You should see the hello world in the cmd window. \n", "\n", - "**import statements**\n", + "We can run it from the IDE too. Use the little triangle in the top right corner of the window to run it and you should see a console pop up on the bottom showing the hello world message. \n", "\n", - "They go at the top.\n", + "Finally, if you have any hilighted lines in the script indicating issues, try to resolve them. For example, I see, \"Missing module docstring\" and \"Final newline missing\". A module docstring is a tripple quoted string at the top of the file, just below the shebang line, that says what the file/module does. For example:\n", "\n", - "**global variables**\n", + " #! python3\n", + " '''Simple hello world test script'''\n", "\n", - "Things like paths to tools that are called by the script, directories. Global variables should be in ALL_CAPS with underscores between the words if they are multi-word. It's common to have a VERBOSE or DEBUG boolean global that's referenced elsewhere do decide whether or not to print debug messages for troubleshooting issues. \n", - "\n", - "**function definitions**\n", - "\n", - "This is the main body of the script. It's not uncommon to have a \"main\" function that is the first thing called when the script starts. You don't have to define any functions if you don't want to. \n", - "\n", - "**the if __name__ ... condition**\n", - "\n", - "This is something that is important if your script might be used as a module that could be imported by another script or module in order to access your scripts functions and global variables. If your script is imported, then it's __name__ will not be \"__main__\", but if it is called as a script, it's name will be \"__main__\", so the code below here gets executed. \n", - "\n", - "You can also skip this section and just start writing code that will run. " + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Template for a script" ] }, { @@ -89,6 +100,46 @@ " main()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**The #! shebang line**\n", + "\n", + "Shebang is short for hash bang. This line says which interpreter to use to run the script. A couple of common entries are:\n", + "* In linux for python3:\n", + " * `#!/usr/bin/env python3`\n", + "* In windows, this would be common:\n", + " * `#! python3`\n", + "\n", + "In both cases the system PATH variable will be checked to find the given interpreter. \n", + "\n", + "You can also specify the complete path to the interpreter you want to use. I might do this to make sure it uses a virtual env that I've configured:\n", + "* `#!/home/my_user/venv/bin/python3`\n", + "\n", + "**module description**\n", + "\n", + "You can add a short documentation abou the purpose of the script/module below the shebang line. \n", + "\n", + "**import statements**\n", + "\n", + "They go at the top.\n", + "\n", + "**global variables**\n", + "\n", + "Things like paths to tools that are called by the script, directories. Global variables should be in ALL_CAPS with underscores between the words if they are multi-word. It's common to have a VERBOSE or DEBUG boolean global that's referenced elsewhere do decide whether or not to print debug messages for troubleshooting issues. \n", + "\n", + "**function definitions**\n", + "\n", + "This is the main body of the script. It's not uncommon to have a \"main\" function that is the first thing called when the script starts. You don't have to define any functions if you don't want to. \n", + "\n", + "**the if __name__ ... condition**\n", + "\n", + "This is something that is important if your script might be used as a module that could be imported by another script or module in order to access your scripts functions and global variables. If your script is imported, then it's __name__ will not be \"__main__\", but if it is called as a script, it's name will be \"__main__\", so the code below here gets executed. \n", + "\n", + "You can also skip this section and just start writing code that will run. " + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -97,14 +148,12 @@ "\n", "### sys\n", "The sys module provides access to some variables and functions that interact with the Python interpreter.\n", - "* sys.argv - A list of command-line arguments passed to the script. sys.argv[0] is the script name, and if len(sys.argv) > 1, then it was passed some arguments when it was run. \n", - "* sys.exit() - Exits the program with an optional exit code. Exit code zero says that everything worked as expected, and non-zero (positive) says there was an error. You might return different numbers for different errors so if another tool calls your script, it can do something different depending on the exit codes. \n", - "* sys.path - A list of strings that specifies the search path for modules. This is initialized from the PYTHONPATH environment variable or from the PATH environment variable. \n", + "* **sys.argv** - A list of command-line arguments passed to the script. sys.argv[0] is the script name, and if len(sys.argv) > 1, then it was passed some arguments when it was run. \n", + "* **sys.exit()** - Exits the program with an optional exit code. Exit code zero says that everything worked as expected, and non-zero (positive) says there was an error. You might return different numbers for different errors so if another tool calls your script, it can do something different depending on the exit codes. \n", "* sys.stdin, sys.stdout, sys.stderr - File objects corresponding to the interpreter’s standard input, output, and error streams.\n", - "* sys.version - A string containing the Python version number.\n", "\n", "### os\n", - "The os module provides a way of interacting with the operating system. It allows you to perform actions like reading or writing to the file system, managing directories, and interacting with environment variables.\n", + "The os module provides a way of interacting with the operating system. These are a few essential functions to view current working dir and change directories; list or remove files and directories; create directories. \n", "\n", "* os.getenv() - Retrieves the value of an environment variable.\n", "* os.environ - A dictionary representing the environment variables.\n", @@ -126,14 +175,63 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Script Arguments and sys.argv" + "#### *Exercise*\n", + "Create a whats_here.py script that does the following:\n", + "* Prints the current working directory. This is the directory that the process that called your script has as its CWD. \n", + "* Gets the current user and saves it to a variable\n", + "* Make a directory called \"foo\" if it does not exist. \n", + "* Checks if a file called f\"foo/{current_user}_was_here.txt\" exists and creates it if not. You should see this in the file explorer and in your command window (run dir foo or ls foo for windows/linux) after it's created. \n", + "* Change directory to f\"C:/Users/{current_user}/Desktop\" and list out the files here. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Script Arguments and sys.argv\n", + "Some times we need scripts to take some parameters to change their behavior. Any arguments you pass to your script when running it get stored in sys.argv so you can check them from the script. This is just like passing arguments to a function. \n", + "\n", + "#### *Exercise*\n", + "Put the following code into a script called \"show_args.py\" and run it with different combinations of arguments passed to it:\n", + "\n", + " #! python3\n", + " '''A simple tool to see what arguments are set when running.'''\n", + " import sys\n", + "\n", + " VERBOSE = False\n", + "\n", + " if '-v' in sys.argv or '--verbose' in sys.argv:\n", + " print('Verbose is set, so I will give detailed messages about what is happening.)\n", + " VERBOSE = True\n", + "\n", + " for n, arg in enumerate(sys.argv):\n", + " if n == 0:\n", + " print(f\"The name of the script is: {arg}\")\n", + " else:\n", + " print(f'arg {n} is: {arg})\n", + " if VERBOSE:\n", + " print(f\"This arg was {len(arg)} characters long!\")\n", + " \n", + " if VERBOSE:\n", + " print(\"Number of args received:\", len(sys.argv) - 1)\n", + "\n", + "For example, you could run: `show_args.py foo bar omg-wow`\n", + "\n", + "For 10 points extra credit, you can make the following modification to the args script: Check if each arg has an '=' character in it. If an = is present, split the arg on the = to keg a key=value pair and assign it to an args_kv dictionary. Then print all of the key value pair given in addition to the other non-kv arguments. \n", + "\n", + "And for an additional 5 points extra credit, handle all of the argument checkin in a function called checkArguments() which returns a tuple with args and args_kv. The function should not print anything. The script should call the function, save the return values, and then print a summary. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Argparse\n" + "## Argparse\n", + "The previous exercise hopefully proved that we can simply pass data into a script and check for it, but a really high quality script is able to also provide documentaion about what it does, what arguments are allowed, verify that correct arguments are given and that the values set with them are valid, and return them all in a simple data structure that can be used by the script. It would require a lot of code to do this ourselves, so thankfully we have the \"argparse\" library. \n", + "\n", + "Argparse lets you define what arguments the script accepts, say which of them are required, if any, set default values, set required data types, etc etc. You can find documentation for it here: https://docs.python.org/3/library/argparse.html\n", + "\n", + "Here's an example script utilizing argparse:" ] }, { @@ -145,8 +243,22 @@ } ], "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" } }, "nbformat": 4, diff --git a/F-Microcontrollers.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb similarity index 100% rename from F-Microcontrollers.ipynb rename to F-Microcontrollers_and_Circuitpython.ipynb From a2d462b222ecee2aacf8b1b91b0a1c1265204bfa Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 2 Sep 2024 11:20:06 -0700 Subject: [PATCH 085/163] content --- D-Pandas.ipynb | 20 +- SAMPLE_DATA/titaninc.csv | 892 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 907 insertions(+), 5 deletions(-) create mode 100644 SAMPLE_DATA/titaninc.csv diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 961410a..726db32 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -152,7 +152,8 @@ "outputs": [], "source": [ "# *We'll use this \"df\" for a few exercises below, so make sure to run this cell before continuing.*\n", - "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")" + "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")\n", + "# You can also try saving iris.csv in the directory with your notebook and opening it from a local path." ] }, { @@ -187,8 +188,8 @@ "source": [ "# a single column is a series object, so sepal_lenghts is a series.\n", "sls = df['sepal_length']\n", - "print('some of the sepal lenghths are:\\n', str(sls))\n", - "print('all the sepal lenghts are:\\n', list(sls))" + "print('Some of the sepal lenghths are:\\n', sls)\n", + "print('All the lenghts are:\\n', list(sls))" ] }, { @@ -216,7 +217,7 @@ "metadata": {}, "source": [ "### Creating and manipulating columns of data:\n", - "We can perform mathematical operations on columns of data and put the result into a new or existing column. For example, if we want to add a column with units inches instead of cm:" + "We can perform mathematical operations on columns of data and put the result into a new or overwrite an existing column. For example, if we want to add a column with units inches instead of cm:" ] }, { @@ -226,6 +227,7 @@ "outputs": [], "source": [ "df['sepal_length_inches'] = df['sepal_length'] * 0.393701\n", + "\n", "length_columns = sorted([c for c in df.columns if 'length' in c])\n", "print('length comparison:\\n', df[length_columns])" ] @@ -236,6 +238,8 @@ "source": [ "When you perform operations on a column, like multiplying the 'sepal_length' column by 0.393, that operation is broadcast across all rows in the column. \n", "\n", + "And when we perform operation aginst two columns, each row in the columns is matched with the same index row in the other column for the operation, as with the width_differenc calculation below.\n", + "\n", "We can also select multiple columns py passing the columns in [], like: `df[['petal_length', 'petal_width']]`" ] }, @@ -247,9 +251,15 @@ "source": [ "df['width_difference'] = (df['sepal_width'] - df['petal_width']).abs()\n", "\n", + "# Alternate ways of doing things are commented out below:\n", + "\n", + "# width_columns = df.columns[df.columns.str.contains('width')]\n", + "# width_columns = ['sepal_width', 'petal_width', 'width_difference']\n", + "width_columns = sorted([c for c in df.columns if 'width' in c])\n", "\n", "print('Widths:')\n", - "print(df[['sepal_width', 'petal_width', 'width_difference']])" + "# print(df[['sepal_width', 'petal_width', 'width_difference']])\n", + "print(df[width_columns])" ] }, { diff --git a/SAMPLE_DATA/titaninc.csv b/SAMPLE_DATA/titaninc.csv new file mode 100644 index 0000000..63b68ab --- /dev/null +++ b/SAMPLE_DATA/titaninc.csv @@ -0,0 +1,892 @@ +PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked +1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S +2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C +3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S +4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S +5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S +6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q +7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S +8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S +9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S +10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C +11,1,3,"Sandstrom, Miss. Marguerite Rut",female,4,1,1,PP 9549,16.7,G6,S +12,1,1,"Bonnell, Miss. Elizabeth",female,58,0,0,113783,26.55,C103,S +13,0,3,"Saundercock, Mr. William Henry",male,20,0,0,A/5. 2151,8.05,,S +14,0,3,"Andersson, Mr. Anders Johan",male,39,1,5,347082,31.275,,S +15,0,3,"Vestrom, Miss. Hulda Amanda Adolfina",female,14,0,0,350406,7.8542,,S +16,1,2,"Hewlett, Mrs. (Mary D Kingcome) ",female,55,0,0,248706,16,,S +17,0,3,"Rice, Master. Eugene",male,2,4,1,382652,29.125,,Q +18,1,2,"Williams, Mr. Charles Eugene",male,,0,0,244373,13,,S +19,0,3,"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",female,31,1,0,345763,18,,S +20,1,3,"Masselmani, Mrs. Fatima",female,,0,0,2649,7.225,,C +21,0,2,"Fynney, Mr. Joseph J",male,35,0,0,239865,26,,S +22,1,2,"Beesley, Mr. Lawrence",male,34,0,0,248698,13,D56,S +23,1,3,"McGowan, Miss. Anna ""Annie""",female,15,0,0,330923,8.0292,,Q +24,1,1,"Sloper, Mr. William Thompson",male,28,0,0,113788,35.5,A6,S +25,0,3,"Palsson, Miss. Torborg Danira",female,8,3,1,349909,21.075,,S +26,1,3,"Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",female,38,1,5,347077,31.3875,,S +27,0,3,"Emir, Mr. Farred Chehab",male,,0,0,2631,7.225,,C +28,0,1,"Fortune, Mr. Charles Alexander",male,19,3,2,19950,263,C23 C25 C27,S +29,1,3,"O'Dwyer, Miss. Ellen ""Nellie""",female,,0,0,330959,7.8792,,Q +30,0,3,"Todoroff, Mr. Lalio",male,,0,0,349216,7.8958,,S +31,0,1,"Uruchurtu, Don. Manuel E",male,40,0,0,PC 17601,27.7208,,C +32,1,1,"Spencer, Mrs. William Augustus (Marie Eugenie)",female,,1,0,PC 17569,146.5208,B78,C +33,1,3,"Glynn, Miss. Mary Agatha",female,,0,0,335677,7.75,,Q +34,0,2,"Wheadon, Mr. Edward H",male,66,0,0,C.A. 24579,10.5,,S +35,0,1,"Meyer, Mr. Edgar Joseph",male,28,1,0,PC 17604,82.1708,,C +36,0,1,"Holverson, Mr. Alexander Oskar",male,42,1,0,113789,52,,S +37,1,3,"Mamee, Mr. Hanna",male,,0,0,2677,7.2292,,C +38,0,3,"Cann, Mr. Ernest Charles",male,21,0,0,A./5. 2152,8.05,,S +39,0,3,"Vander Planke, Miss. Augusta Maria",female,18,2,0,345764,18,,S +40,1,3,"Nicola-Yarred, Miss. Jamila",female,14,1,0,2651,11.2417,,C +41,0,3,"Ahlin, Mrs. Johan (Johanna Persdotter Larsson)",female,40,1,0,7546,9.475,,S +42,0,2,"Turpin, Mrs. William John Robert (Dorothy Ann Wonnacott)",female,27,1,0,11668,21,,S +43,0,3,"Kraeff, Mr. Theodor",male,,0,0,349253,7.8958,,C +44,1,2,"Laroche, Miss. Simonne Marie Anne Andree",female,3,1,2,SC/Paris 2123,41.5792,,C +45,1,3,"Devaney, Miss. Margaret Delia",female,19,0,0,330958,7.8792,,Q +46,0,3,"Rogers, Mr. William John",male,,0,0,S.C./A.4. 23567,8.05,,S +47,0,3,"Lennon, Mr. Denis",male,,1,0,370371,15.5,,Q +48,1,3,"O'Driscoll, Miss. Bridget",female,,0,0,14311,7.75,,Q +49,0,3,"Samaan, Mr. Youssef",male,,2,0,2662,21.6792,,C +50,0,3,"Arnold-Franchi, Mrs. Josef (Josefine Franchi)",female,18,1,0,349237,17.8,,S +51,0,3,"Panula, Master. Juha Niilo",male,7,4,1,3101295,39.6875,,S +52,0,3,"Nosworthy, Mr. Richard Cater",male,21,0,0,A/4. 39886,7.8,,S +53,1,1,"Harper, Mrs. Henry Sleeper (Myna Haxtun)",female,49,1,0,PC 17572,76.7292,D33,C +54,1,2,"Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson)",female,29,1,0,2926,26,,S +55,0,1,"Ostby, Mr. Engelhart Cornelius",male,65,0,1,113509,61.9792,B30,C +56,1,1,"Woolner, Mr. Hugh",male,,0,0,19947,35.5,C52,S +57,1,2,"Rugg, Miss. Emily",female,21,0,0,C.A. 31026,10.5,,S +58,0,3,"Novel, Mr. Mansouer",male,28.5,0,0,2697,7.2292,,C +59,1,2,"West, Miss. Constance Mirium",female,5,1,2,C.A. 34651,27.75,,S +60,0,3,"Goodwin, Master. William Frederick",male,11,5,2,CA 2144,46.9,,S +61,0,3,"Sirayanian, Mr. Orsen",male,22,0,0,2669,7.2292,,C +62,1,1,"Icard, Miss. Amelie",female,38,0,0,113572,80,B28, +63,0,1,"Harris, Mr. Henry Birkhardt",male,45,1,0,36973,83.475,C83,S +64,0,3,"Skoog, Master. Harald",male,4,3,2,347088,27.9,,S +65,0,1,"Stewart, Mr. Albert A",male,,0,0,PC 17605,27.7208,,C +66,1,3,"Moubarek, Master. Gerios",male,,1,1,2661,15.2458,,C +67,1,2,"Nye, Mrs. (Elizabeth Ramell)",female,29,0,0,C.A. 29395,10.5,F33,S +68,0,3,"Crease, Mr. Ernest James",male,19,0,0,S.P. 3464,8.1583,,S +69,1,3,"Andersson, Miss. Erna Alexandra",female,17,4,2,3101281,7.925,,S +70,0,3,"Kink, Mr. Vincenz",male,26,2,0,315151,8.6625,,S +71,0,2,"Jenkin, Mr. Stephen Curnow",male,32,0,0,C.A. 33111,10.5,,S +72,0,3,"Goodwin, Miss. Lillian Amy",female,16,5,2,CA 2144,46.9,,S +73,0,2,"Hood, Mr. Ambrose Jr",male,21,0,0,S.O.C. 14879,73.5,,S +74,0,3,"Chronopoulos, Mr. Apostolos",male,26,1,0,2680,14.4542,,C +75,1,3,"Bing, Mr. Lee",male,32,0,0,1601,56.4958,,S +76,0,3,"Moen, Mr. Sigurd Hansen",male,25,0,0,348123,7.65,F G73,S +77,0,3,"Staneff, Mr. Ivan",male,,0,0,349208,7.8958,,S +78,0,3,"Moutal, Mr. Rahamin Haim",male,,0,0,374746,8.05,,S +79,1,2,"Caldwell, Master. Alden Gates",male,0.83,0,2,248738,29,,S +80,1,3,"Dowdell, Miss. Elizabeth",female,30,0,0,364516,12.475,,S +81,0,3,"Waelens, Mr. Achille",male,22,0,0,345767,9,,S +82,1,3,"Sheerlinck, Mr. Jan Baptist",male,29,0,0,345779,9.5,,S +83,1,3,"McDermott, Miss. Brigdet Delia",female,,0,0,330932,7.7875,,Q +84,0,1,"Carrau, Mr. Francisco M",male,28,0,0,113059,47.1,,S +85,1,2,"Ilett, Miss. Bertha",female,17,0,0,SO/C 14885,10.5,,S +86,1,3,"Backstrom, Mrs. Karl Alfred (Maria Mathilda Gustafsson)",female,33,3,0,3101278,15.85,,S +87,0,3,"Ford, Mr. William Neal",male,16,1,3,W./C. 6608,34.375,,S +88,0,3,"Slocovski, Mr. Selman Francis",male,,0,0,SOTON/OQ 392086,8.05,,S +89,1,1,"Fortune, Miss. Mabel Helen",female,23,3,2,19950,263,C23 C25 C27,S +90,0,3,"Celotti, Mr. Francesco",male,24,0,0,343275,8.05,,S +91,0,3,"Christmann, Mr. Emil",male,29,0,0,343276,8.05,,S +92,0,3,"Andreasson, Mr. Paul Edvin",male,20,0,0,347466,7.8542,,S +93,0,1,"Chaffee, Mr. Herbert Fuller",male,46,1,0,W.E.P. 5734,61.175,E31,S +94,0,3,"Dean, Mr. Bertram Frank",male,26,1,2,C.A. 2315,20.575,,S +95,0,3,"Coxon, Mr. Daniel",male,59,0,0,364500,7.25,,S +96,0,3,"Shorney, Mr. Charles Joseph",male,,0,0,374910,8.05,,S +97,0,1,"Goldschmidt, Mr. George B",male,71,0,0,PC 17754,34.6542,A5,C +98,1,1,"Greenfield, Mr. William Bertram",male,23,0,1,PC 17759,63.3583,D10 D12,C +99,1,2,"Doling, Mrs. John T (Ada Julia Bone)",female,34,0,1,231919,23,,S +100,0,2,"Kantor, Mr. Sinai",male,34,1,0,244367,26,,S +101,0,3,"Petranec, Miss. Matilda",female,28,0,0,349245,7.8958,,S +102,0,3,"Petroff, Mr. Pastcho (""Pentcho"")",male,,0,0,349215,7.8958,,S +103,0,1,"White, Mr. Richard Frasar",male,21,0,1,35281,77.2875,D26,S +104,0,3,"Johansson, Mr. Gustaf Joel",male,33,0,0,7540,8.6542,,S +105,0,3,"Gustafsson, Mr. Anders Vilhelm",male,37,2,0,3101276,7.925,,S +106,0,3,"Mionoff, Mr. Stoytcho",male,28,0,0,349207,7.8958,,S +107,1,3,"Salkjelsvik, Miss. Anna Kristine",female,21,0,0,343120,7.65,,S +108,1,3,"Moss, Mr. Albert Johan",male,,0,0,312991,7.775,,S +109,0,3,"Rekic, Mr. Tido",male,38,0,0,349249,7.8958,,S +110,1,3,"Moran, Miss. Bertha",female,,1,0,371110,24.15,,Q +111,0,1,"Porter, Mr. Walter Chamberlain",male,47,0,0,110465,52,C110,S +112,0,3,"Zabour, Miss. Hileni",female,14.5,1,0,2665,14.4542,,C +113,0,3,"Barton, Mr. David John",male,22,0,0,324669,8.05,,S +114,0,3,"Jussila, Miss. Katriina",female,20,1,0,4136,9.825,,S +115,0,3,"Attalah, Miss. Malake",female,17,0,0,2627,14.4583,,C +116,0,3,"Pekoniemi, Mr. Edvard",male,21,0,0,STON/O 2. 3101294,7.925,,S +117,0,3,"Connors, Mr. Patrick",male,70.5,0,0,370369,7.75,,Q +118,0,2,"Turpin, Mr. William John Robert",male,29,1,0,11668,21,,S +119,0,1,"Baxter, Mr. Quigg Edmond",male,24,0,1,PC 17558,247.5208,B58 B60,C +120,0,3,"Andersson, Miss. Ellis Anna Maria",female,2,4,2,347082,31.275,,S +121,0,2,"Hickman, Mr. Stanley George",male,21,2,0,S.O.C. 14879,73.5,,S +122,0,3,"Moore, Mr. Leonard Charles",male,,0,0,A4. 54510,8.05,,S +123,0,2,"Nasser, Mr. Nicholas",male,32.5,1,0,237736,30.0708,,C +124,1,2,"Webber, Miss. Susan",female,32.5,0,0,27267,13,E101,S +125,0,1,"White, Mr. Percival Wayland",male,54,0,1,35281,77.2875,D26,S +126,1,3,"Nicola-Yarred, Master. Elias",male,12,1,0,2651,11.2417,,C +127,0,3,"McMahon, Mr. Martin",male,,0,0,370372,7.75,,Q +128,1,3,"Madsen, Mr. Fridtjof Arne",male,24,0,0,C 17369,7.1417,,S +129,1,3,"Peter, Miss. Anna",female,,1,1,2668,22.3583,F E69,C +130,0,3,"Ekstrom, Mr. Johan",male,45,0,0,347061,6.975,,S +131,0,3,"Drazenoic, Mr. Jozef",male,33,0,0,349241,7.8958,,C +132,0,3,"Coelho, Mr. Domingos Fernandeo",male,20,0,0,SOTON/O.Q. 3101307,7.05,,S +133,0,3,"Robins, Mrs. Alexander A (Grace Charity Laury)",female,47,1,0,A/5. 3337,14.5,,S +134,1,2,"Weisz, Mrs. Leopold (Mathilde Francoise Pede)",female,29,1,0,228414,26,,S +135,0,2,"Sobey, Mr. Samuel James Hayden",male,25,0,0,C.A. 29178,13,,S +136,0,2,"Richard, Mr. Emile",male,23,0,0,SC/PARIS 2133,15.0458,,C +137,1,1,"Newsom, Miss. Helen Monypeny",female,19,0,2,11752,26.2833,D47,S +138,0,1,"Futrelle, Mr. Jacques Heath",male,37,1,0,113803,53.1,C123,S +139,0,3,"Osen, Mr. Olaf Elon",male,16,0,0,7534,9.2167,,S +140,0,1,"Giglio, Mr. Victor",male,24,0,0,PC 17593,79.2,B86,C +141,0,3,"Boulos, Mrs. Joseph (Sultana)",female,,0,2,2678,15.2458,,C +142,1,3,"Nysten, Miss. Anna Sofia",female,22,0,0,347081,7.75,,S +143,1,3,"Hakkarainen, Mrs. Pekka Pietari (Elin Matilda Dolck)",female,24,1,0,STON/O2. 3101279,15.85,,S +144,0,3,"Burke, Mr. Jeremiah",male,19,0,0,365222,6.75,,Q +145,0,2,"Andrew, Mr. Edgardo Samuel",male,18,0,0,231945,11.5,,S +146,0,2,"Nicholls, Mr. Joseph Charles",male,19,1,1,C.A. 33112,36.75,,S +147,1,3,"Andersson, Mr. August Edvard (""Wennerstrom"")",male,27,0,0,350043,7.7958,,S +148,0,3,"Ford, Miss. Robina Maggie ""Ruby""",female,9,2,2,W./C. 6608,34.375,,S +149,0,2,"Navratil, Mr. Michel (""Louis M Hoffman"")",male,36.5,0,2,230080,26,F2,S +150,0,2,"Byles, Rev. Thomas Roussel Davids",male,42,0,0,244310,13,,S +151,0,2,"Bateman, Rev. Robert James",male,51,0,0,S.O.P. 1166,12.525,,S +152,1,1,"Pears, Mrs. Thomas (Edith Wearne)",female,22,1,0,113776,66.6,C2,S +153,0,3,"Meo, Mr. Alfonzo",male,55.5,0,0,A.5. 11206,8.05,,S +154,0,3,"van Billiard, Mr. Austin Blyler",male,40.5,0,2,A/5. 851,14.5,,S +155,0,3,"Olsen, Mr. Ole Martin",male,,0,0,Fa 265302,7.3125,,S +156,0,1,"Williams, Mr. Charles Duane",male,51,0,1,PC 17597,61.3792,,C +157,1,3,"Gilnagh, Miss. Katherine ""Katie""",female,16,0,0,35851,7.7333,,Q +158,0,3,"Corn, Mr. Harry",male,30,0,0,SOTON/OQ 392090,8.05,,S +159,0,3,"Smiljanic, Mr. Mile",male,,0,0,315037,8.6625,,S +160,0,3,"Sage, Master. Thomas Henry",male,,8,2,CA. 2343,69.55,,S +161,0,3,"Cribb, Mr. John Hatfield",male,44,0,1,371362,16.1,,S +162,1,2,"Watt, Mrs. James (Elizabeth ""Bessie"" Inglis Milne)",female,40,0,0,C.A. 33595,15.75,,S +163,0,3,"Bengtsson, Mr. John Viktor",male,26,0,0,347068,7.775,,S +164,0,3,"Calic, Mr. Jovo",male,17,0,0,315093,8.6625,,S +165,0,3,"Panula, Master. Eino Viljami",male,1,4,1,3101295,39.6875,,S +166,1,3,"Goldsmith, Master. Frank John William ""Frankie""",male,9,0,2,363291,20.525,,S +167,1,1,"Chibnall, Mrs. (Edith Martha Bowerman)",female,,0,1,113505,55,E33,S +168,0,3,"Skoog, Mrs. William (Anna Bernhardina Karlsson)",female,45,1,4,347088,27.9,,S +169,0,1,"Baumann, Mr. John D",male,,0,0,PC 17318,25.925,,S +170,0,3,"Ling, Mr. Lee",male,28,0,0,1601,56.4958,,S +171,0,1,"Van der hoef, Mr. Wyckoff",male,61,0,0,111240,33.5,B19,S +172,0,3,"Rice, Master. Arthur",male,4,4,1,382652,29.125,,Q +173,1,3,"Johnson, Miss. Eleanor Ileen",female,1,1,1,347742,11.1333,,S +174,0,3,"Sivola, Mr. Antti Wilhelm",male,21,0,0,STON/O 2. 3101280,7.925,,S +175,0,1,"Smith, Mr. James Clinch",male,56,0,0,17764,30.6958,A7,C +176,0,3,"Klasen, Mr. Klas Albin",male,18,1,1,350404,7.8542,,S +177,0,3,"Lefebre, Master. Henry Forbes",male,,3,1,4133,25.4667,,S +178,0,1,"Isham, Miss. Ann Elizabeth",female,50,0,0,PC 17595,28.7125,C49,C +179,0,2,"Hale, Mr. Reginald",male,30,0,0,250653,13,,S +180,0,3,"Leonard, Mr. Lionel",male,36,0,0,LINE,0,,S +181,0,3,"Sage, Miss. Constance Gladys",female,,8,2,CA. 2343,69.55,,S +182,0,2,"Pernot, Mr. Rene",male,,0,0,SC/PARIS 2131,15.05,,C +183,0,3,"Asplund, Master. Clarence Gustaf Hugo",male,9,4,2,347077,31.3875,,S +184,1,2,"Becker, Master. Richard F",male,1,2,1,230136,39,F4,S +185,1,3,"Kink-Heilmann, Miss. Luise Gretchen",female,4,0,2,315153,22.025,,S +186,0,1,"Rood, Mr. Hugh Roscoe",male,,0,0,113767,50,A32,S +187,1,3,"O'Brien, Mrs. Thomas (Johanna ""Hannah"" Godfrey)",female,,1,0,370365,15.5,,Q +188,1,1,"Romaine, Mr. Charles Hallace (""Mr C Rolmane"")",male,45,0,0,111428,26.55,,S +189,0,3,"Bourke, Mr. John",male,40,1,1,364849,15.5,,Q +190,0,3,"Turcin, Mr. Stjepan",male,36,0,0,349247,7.8958,,S +191,1,2,"Pinsky, Mrs. (Rosa)",female,32,0,0,234604,13,,S +192,0,2,"Carbines, Mr. William",male,19,0,0,28424,13,,S +193,1,3,"Andersen-Jensen, Miss. Carla Christine Nielsine",female,19,1,0,350046,7.8542,,S +194,1,2,"Navratil, Master. Michel M",male,3,1,1,230080,26,F2,S +195,1,1,"Brown, Mrs. James Joseph (Margaret Tobin)",female,44,0,0,PC 17610,27.7208,B4,C +196,1,1,"Lurette, Miss. Elise",female,58,0,0,PC 17569,146.5208,B80,C +197,0,3,"Mernagh, Mr. Robert",male,,0,0,368703,7.75,,Q +198,0,3,"Olsen, Mr. Karl Siegwart Andreas",male,42,0,1,4579,8.4042,,S +199,1,3,"Madigan, Miss. Margaret ""Maggie""",female,,0,0,370370,7.75,,Q +200,0,2,"Yrois, Miss. Henriette (""Mrs Harbeck"")",female,24,0,0,248747,13,,S +201,0,3,"Vande Walle, Mr. Nestor Cyriel",male,28,0,0,345770,9.5,,S +202,0,3,"Sage, Mr. Frederick",male,,8,2,CA. 2343,69.55,,S +203,0,3,"Johanson, Mr. Jakob Alfred",male,34,0,0,3101264,6.4958,,S +204,0,3,"Youseff, Mr. Gerious",male,45.5,0,0,2628,7.225,,C +205,1,3,"Cohen, Mr. Gurshon ""Gus""",male,18,0,0,A/5 3540,8.05,,S +206,0,3,"Strom, Miss. Telma Matilda",female,2,0,1,347054,10.4625,G6,S +207,0,3,"Backstrom, Mr. Karl Alfred",male,32,1,0,3101278,15.85,,S +208,1,3,"Albimona, Mr. Nassef Cassem",male,26,0,0,2699,18.7875,,C +209,1,3,"Carr, Miss. Helen ""Ellen""",female,16,0,0,367231,7.75,,Q +210,1,1,"Blank, Mr. Henry",male,40,0,0,112277,31,A31,C +211,0,3,"Ali, Mr. Ahmed",male,24,0,0,SOTON/O.Q. 3101311,7.05,,S +212,1,2,"Cameron, Miss. Clear Annie",female,35,0,0,F.C.C. 13528,21,,S +213,0,3,"Perkin, Mr. John Henry",male,22,0,0,A/5 21174,7.25,,S +214,0,2,"Givard, Mr. Hans Kristensen",male,30,0,0,250646,13,,S +215,0,3,"Kiernan, Mr. Philip",male,,1,0,367229,7.75,,Q +216,1,1,"Newell, Miss. Madeleine",female,31,1,0,35273,113.275,D36,C +217,1,3,"Honkanen, Miss. Eliina",female,27,0,0,STON/O2. 3101283,7.925,,S +218,0,2,"Jacobsohn, Mr. Sidney Samuel",male,42,1,0,243847,27,,S +219,1,1,"Bazzani, Miss. Albina",female,32,0,0,11813,76.2917,D15,C +220,0,2,"Harris, Mr. Walter",male,30,0,0,W/C 14208,10.5,,S +221,1,3,"Sunderland, Mr. Victor Francis",male,16,0,0,SOTON/OQ 392089,8.05,,S +222,0,2,"Bracken, Mr. James H",male,27,0,0,220367,13,,S +223,0,3,"Green, Mr. George Henry",male,51,0,0,21440,8.05,,S +224,0,3,"Nenkoff, Mr. Christo",male,,0,0,349234,7.8958,,S +225,1,1,"Hoyt, Mr. Frederick Maxfield",male,38,1,0,19943,90,C93,S +226,0,3,"Berglund, Mr. Karl Ivar Sven",male,22,0,0,PP 4348,9.35,,S +227,1,2,"Mellors, Mr. William John",male,19,0,0,SW/PP 751,10.5,,S +228,0,3,"Lovell, Mr. John Hall (""Henry"")",male,20.5,0,0,A/5 21173,7.25,,S +229,0,2,"Fahlstrom, Mr. Arne Jonas",male,18,0,0,236171,13,,S +230,0,3,"Lefebre, Miss. Mathilde",female,,3,1,4133,25.4667,,S +231,1,1,"Harris, Mrs. Henry Birkhardt (Irene Wallach)",female,35,1,0,36973,83.475,C83,S +232,0,3,"Larsson, Mr. Bengt Edvin",male,29,0,0,347067,7.775,,S +233,0,2,"Sjostedt, Mr. Ernst Adolf",male,59,0,0,237442,13.5,,S +234,1,3,"Asplund, Miss. Lillian Gertrud",female,5,4,2,347077,31.3875,,S +235,0,2,"Leyson, Mr. Robert William Norman",male,24,0,0,C.A. 29566,10.5,,S +236,0,3,"Harknett, Miss. Alice Phoebe",female,,0,0,W./C. 6609,7.55,,S +237,0,2,"Hold, Mr. Stephen",male,44,1,0,26707,26,,S +238,1,2,"Collyer, Miss. Marjorie ""Lottie""",female,8,0,2,C.A. 31921,26.25,,S +239,0,2,"Pengelly, Mr. Frederick William",male,19,0,0,28665,10.5,,S +240,0,2,"Hunt, Mr. George Henry",male,33,0,0,SCO/W 1585,12.275,,S +241,0,3,"Zabour, Miss. Thamine",female,,1,0,2665,14.4542,,C +242,1,3,"Murphy, Miss. Katherine ""Kate""",female,,1,0,367230,15.5,,Q +243,0,2,"Coleridge, Mr. Reginald Charles",male,29,0,0,W./C. 14263,10.5,,S +244,0,3,"Maenpaa, Mr. Matti Alexanteri",male,22,0,0,STON/O 2. 3101275,7.125,,S +245,0,3,"Attalah, Mr. Sleiman",male,30,0,0,2694,7.225,,C +246,0,1,"Minahan, Dr. William Edward",male,44,2,0,19928,90,C78,Q +247,0,3,"Lindahl, Miss. Agda Thorilda Viktoria",female,25,0,0,347071,7.775,,S +248,1,2,"Hamalainen, Mrs. William (Anna)",female,24,0,2,250649,14.5,,S +249,1,1,"Beckwith, Mr. Richard Leonard",male,37,1,1,11751,52.5542,D35,S +250,0,2,"Carter, Rev. Ernest Courtenay",male,54,1,0,244252,26,,S +251,0,3,"Reed, Mr. James George",male,,0,0,362316,7.25,,S +252,0,3,"Strom, Mrs. Wilhelm (Elna Matilda Persson)",female,29,1,1,347054,10.4625,G6,S +253,0,1,"Stead, Mr. William Thomas",male,62,0,0,113514,26.55,C87,S +254,0,3,"Lobb, Mr. William Arthur",male,30,1,0,A/5. 3336,16.1,,S +255,0,3,"Rosblom, Mrs. Viktor (Helena Wilhelmina)",female,41,0,2,370129,20.2125,,S +256,1,3,"Touma, Mrs. Darwis (Hanne Youssef Razi)",female,29,0,2,2650,15.2458,,C +257,1,1,"Thorne, Mrs. Gertrude Maybelle",female,,0,0,PC 17585,79.2,,C +258,1,1,"Cherry, Miss. Gladys",female,30,0,0,110152,86.5,B77,S +259,1,1,"Ward, Miss. Anna",female,35,0,0,PC 17755,512.3292,,C +260,1,2,"Parrish, Mrs. (Lutie Davis)",female,50,0,1,230433,26,,S +261,0,3,"Smith, Mr. Thomas",male,,0,0,384461,7.75,,Q +262,1,3,"Asplund, Master. Edvin Rojj Felix",male,3,4,2,347077,31.3875,,S +263,0,1,"Taussig, Mr. Emil",male,52,1,1,110413,79.65,E67,S +264,0,1,"Harrison, Mr. William",male,40,0,0,112059,0,B94,S +265,0,3,"Henry, Miss. Delia",female,,0,0,382649,7.75,,Q +266,0,2,"Reeves, Mr. David",male,36,0,0,C.A. 17248,10.5,,S +267,0,3,"Panula, Mr. Ernesti Arvid",male,16,4,1,3101295,39.6875,,S +268,1,3,"Persson, Mr. Ernst Ulrik",male,25,1,0,347083,7.775,,S +269,1,1,"Graham, Mrs. William Thompson (Edith Junkins)",female,58,0,1,PC 17582,153.4625,C125,S +270,1,1,"Bissette, Miss. Amelia",female,35,0,0,PC 17760,135.6333,C99,S +271,0,1,"Cairns, Mr. Alexander",male,,0,0,113798,31,,S +272,1,3,"Tornquist, Mr. William Henry",male,25,0,0,LINE,0,,S +273,1,2,"Mellinger, Mrs. (Elizabeth Anne Maidment)",female,41,0,1,250644,19.5,,S +274,0,1,"Natsch, Mr. Charles H",male,37,0,1,PC 17596,29.7,C118,C +275,1,3,"Healy, Miss. Hanora ""Nora""",female,,0,0,370375,7.75,,Q +276,1,1,"Andrews, Miss. Kornelia Theodosia",female,63,1,0,13502,77.9583,D7,S +277,0,3,"Lindblom, Miss. Augusta Charlotta",female,45,0,0,347073,7.75,,S +278,0,2,"Parkes, Mr. Francis ""Frank""",male,,0,0,239853,0,,S +279,0,3,"Rice, Master. Eric",male,7,4,1,382652,29.125,,Q +280,1,3,"Abbott, Mrs. Stanton (Rosa Hunt)",female,35,1,1,C.A. 2673,20.25,,S +281,0,3,"Duane, Mr. Frank",male,65,0,0,336439,7.75,,Q +282,0,3,"Olsson, Mr. Nils Johan Goransson",male,28,0,0,347464,7.8542,,S +283,0,3,"de Pelsmaeker, Mr. Alfons",male,16,0,0,345778,9.5,,S +284,1,3,"Dorking, Mr. Edward Arthur",male,19,0,0,A/5. 10482,8.05,,S +285,0,1,"Smith, Mr. Richard William",male,,0,0,113056,26,A19,S +286,0,3,"Stankovic, Mr. Ivan",male,33,0,0,349239,8.6625,,C +287,1,3,"de Mulder, Mr. Theodore",male,30,0,0,345774,9.5,,S +288,0,3,"Naidenoff, Mr. Penko",male,22,0,0,349206,7.8958,,S +289,1,2,"Hosono, Mr. Masabumi",male,42,0,0,237798,13,,S +290,1,3,"Connolly, Miss. Kate",female,22,0,0,370373,7.75,,Q +291,1,1,"Barber, Miss. Ellen ""Nellie""",female,26,0,0,19877,78.85,,S +292,1,1,"Bishop, Mrs. Dickinson H (Helen Walton)",female,19,1,0,11967,91.0792,B49,C +293,0,2,"Levy, Mr. Rene Jacques",male,36,0,0,SC/Paris 2163,12.875,D,C +294,0,3,"Haas, Miss. Aloisia",female,24,0,0,349236,8.85,,S +295,0,3,"Mineff, Mr. Ivan",male,24,0,0,349233,7.8958,,S +296,0,1,"Lewy, Mr. Ervin G",male,,0,0,PC 17612,27.7208,,C +297,0,3,"Hanna, Mr. Mansour",male,23.5,0,0,2693,7.2292,,C +298,0,1,"Allison, Miss. Helen Loraine",female,2,1,2,113781,151.55,C22 C26,S +299,1,1,"Saalfeld, Mr. Adolphe",male,,0,0,19988,30.5,C106,S +300,1,1,"Baxter, Mrs. James (Helene DeLaudeniere Chaput)",female,50,0,1,PC 17558,247.5208,B58 B60,C +301,1,3,"Kelly, Miss. Anna Katherine ""Annie Kate""",female,,0,0,9234,7.75,,Q +302,1,3,"McCoy, Mr. Bernard",male,,2,0,367226,23.25,,Q +303,0,3,"Johnson, Mr. William Cahoone Jr",male,19,0,0,LINE,0,,S +304,1,2,"Keane, Miss. Nora A",female,,0,0,226593,12.35,E101,Q +305,0,3,"Williams, Mr. Howard Hugh ""Harry""",male,,0,0,A/5 2466,8.05,,S +306,1,1,"Allison, Master. Hudson Trevor",male,0.92,1,2,113781,151.55,C22 C26,S +307,1,1,"Fleming, Miss. Margaret",female,,0,0,17421,110.8833,,C +308,1,1,"Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)",female,17,1,0,PC 17758,108.9,C65,C +309,0,2,"Abelson, Mr. Samuel",male,30,1,0,P/PP 3381,24,,C +310,1,1,"Francatelli, Miss. Laura Mabel",female,30,0,0,PC 17485,56.9292,E36,C +311,1,1,"Hays, Miss. Margaret Bechstein",female,24,0,0,11767,83.1583,C54,C +312,1,1,"Ryerson, Miss. Emily Borie",female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C +313,0,2,"Lahtinen, Mrs. William (Anna Sylfven)",female,26,1,1,250651,26,,S +314,0,3,"Hendekovic, Mr. Ignjac",male,28,0,0,349243,7.8958,,S +315,0,2,"Hart, Mr. Benjamin",male,43,1,1,F.C.C. 13529,26.25,,S +316,1,3,"Nilsson, Miss. Helmina Josefina",female,26,0,0,347470,7.8542,,S +317,1,2,"Kantor, Mrs. Sinai (Miriam Sternin)",female,24,1,0,244367,26,,S +318,0,2,"Moraweck, Dr. Ernest",male,54,0,0,29011,14,,S +319,1,1,"Wick, Miss. Mary Natalie",female,31,0,2,36928,164.8667,C7,S +320,1,1,"Spedden, Mrs. Frederic Oakley (Margaretta Corning Stone)",female,40,1,1,16966,134.5,E34,C +321,0,3,"Dennis, Mr. Samuel",male,22,0,0,A/5 21172,7.25,,S +322,0,3,"Danoff, Mr. Yoto",male,27,0,0,349219,7.8958,,S +323,1,2,"Slayter, Miss. Hilda Mary",female,30,0,0,234818,12.35,,Q +324,1,2,"Caldwell, Mrs. Albert Francis (Sylvia Mae Harbaugh)",female,22,1,1,248738,29,,S +325,0,3,"Sage, Mr. George John Jr",male,,8,2,CA. 2343,69.55,,S +326,1,1,"Young, Miss. Marie Grice",female,36,0,0,PC 17760,135.6333,C32,C +327,0,3,"Nysveen, Mr. Johan Hansen",male,61,0,0,345364,6.2375,,S +328,1,2,"Ball, Mrs. (Ada E Hall)",female,36,0,0,28551,13,D,S +329,1,3,"Goldsmith, Mrs. Frank John (Emily Alice Brown)",female,31,1,1,363291,20.525,,S +330,1,1,"Hippach, Miss. Jean Gertrude",female,16,0,1,111361,57.9792,B18,C +331,1,3,"McCoy, Miss. Agnes",female,,2,0,367226,23.25,,Q +332,0,1,"Partner, Mr. Austen",male,45.5,0,0,113043,28.5,C124,S +333,0,1,"Graham, Mr. George Edward",male,38,0,1,PC 17582,153.4625,C91,S +334,0,3,"Vander Planke, Mr. Leo Edmondus",male,16,2,0,345764,18,,S +335,1,1,"Frauenthal, Mrs. Henry William (Clara Heinsheimer)",female,,1,0,PC 17611,133.65,,S +336,0,3,"Denkoff, Mr. Mitto",male,,0,0,349225,7.8958,,S +337,0,1,"Pears, Mr. Thomas Clinton",male,29,1,0,113776,66.6,C2,S +338,1,1,"Burns, Miss. Elizabeth Margaret",female,41,0,0,16966,134.5,E40,C +339,1,3,"Dahl, Mr. Karl Edwart",male,45,0,0,7598,8.05,,S +340,0,1,"Blackwell, Mr. Stephen Weart",male,45,0,0,113784,35.5,T,S +341,1,2,"Navratil, Master. Edmond Roger",male,2,1,1,230080,26,F2,S +342,1,1,"Fortune, Miss. Alice Elizabeth",female,24,3,2,19950,263,C23 C25 C27,S +343,0,2,"Collander, Mr. Erik Gustaf",male,28,0,0,248740,13,,S +344,0,2,"Sedgwick, Mr. Charles Frederick Waddington",male,25,0,0,244361,13,,S +345,0,2,"Fox, Mr. Stanley Hubert",male,36,0,0,229236,13,,S +346,1,2,"Brown, Miss. Amelia ""Mildred""",female,24,0,0,248733,13,F33,S +347,1,2,"Smith, Miss. Marion Elsie",female,40,0,0,31418,13,,S +348,1,3,"Davison, Mrs. Thomas Henry (Mary E Finck)",female,,1,0,386525,16.1,,S +349,1,3,"Coutts, Master. William Loch ""William""",male,3,1,1,C.A. 37671,15.9,,S +350,0,3,"Dimic, Mr. Jovan",male,42,0,0,315088,8.6625,,S +351,0,3,"Odahl, Mr. Nils Martin",male,23,0,0,7267,9.225,,S +352,0,1,"Williams-Lambert, Mr. Fletcher Fellows",male,,0,0,113510,35,C128,S +353,0,3,"Elias, Mr. Tannous",male,15,1,1,2695,7.2292,,C +354,0,3,"Arnold-Franchi, Mr. Josef",male,25,1,0,349237,17.8,,S +355,0,3,"Yousif, Mr. Wazli",male,,0,0,2647,7.225,,C +356,0,3,"Vanden Steen, Mr. Leo Peter",male,28,0,0,345783,9.5,,S +357,1,1,"Bowerman, Miss. Elsie Edith",female,22,0,1,113505,55,E33,S +358,0,2,"Funk, Miss. Annie Clemmer",female,38,0,0,237671,13,,S +359,1,3,"McGovern, Miss. Mary",female,,0,0,330931,7.8792,,Q +360,1,3,"Mockler, Miss. Helen Mary ""Ellie""",female,,0,0,330980,7.8792,,Q +361,0,3,"Skoog, Mr. Wilhelm",male,40,1,4,347088,27.9,,S +362,0,2,"del Carlo, Mr. Sebastiano",male,29,1,0,SC/PARIS 2167,27.7208,,C +363,0,3,"Barbara, Mrs. (Catherine David)",female,45,0,1,2691,14.4542,,C +364,0,3,"Asim, Mr. Adola",male,35,0,0,SOTON/O.Q. 3101310,7.05,,S +365,0,3,"O'Brien, Mr. Thomas",male,,1,0,370365,15.5,,Q +366,0,3,"Adahl, Mr. Mauritz Nils Martin",male,30,0,0,C 7076,7.25,,S +367,1,1,"Warren, Mrs. Frank Manley (Anna Sophia Atkinson)",female,60,1,0,110813,75.25,D37,C +368,1,3,"Moussa, Mrs. (Mantoura Boulos)",female,,0,0,2626,7.2292,,C +369,1,3,"Jermyn, Miss. Annie",female,,0,0,14313,7.75,,Q +370,1,1,"Aubart, Mme. Leontine Pauline",female,24,0,0,PC 17477,69.3,B35,C +371,1,1,"Harder, Mr. George Achilles",male,25,1,0,11765,55.4417,E50,C +372,0,3,"Wiklund, Mr. Jakob Alfred",male,18,1,0,3101267,6.4958,,S +373,0,3,"Beavan, Mr. William Thomas",male,19,0,0,323951,8.05,,S +374,0,1,"Ringhini, Mr. Sante",male,22,0,0,PC 17760,135.6333,,C +375,0,3,"Palsson, Miss. Stina Viola",female,3,3,1,349909,21.075,,S +376,1,1,"Meyer, Mrs. Edgar Joseph (Leila Saks)",female,,1,0,PC 17604,82.1708,,C +377,1,3,"Landergren, Miss. Aurora Adelia",female,22,0,0,C 7077,7.25,,S +378,0,1,"Widener, Mr. Harry Elkins",male,27,0,2,113503,211.5,C82,C +379,0,3,"Betros, Mr. Tannous",male,20,0,0,2648,4.0125,,C +380,0,3,"Gustafsson, Mr. Karl Gideon",male,19,0,0,347069,7.775,,S +381,1,1,"Bidois, Miss. Rosalie",female,42,0,0,PC 17757,227.525,,C +382,1,3,"Nakid, Miss. Maria (""Mary"")",female,1,0,2,2653,15.7417,,C +383,0,3,"Tikkanen, Mr. Juho",male,32,0,0,STON/O 2. 3101293,7.925,,S +384,1,1,"Holverson, Mrs. Alexander Oskar (Mary Aline Towner)",female,35,1,0,113789,52,,S +385,0,3,"Plotcharsky, Mr. Vasil",male,,0,0,349227,7.8958,,S +386,0,2,"Davies, Mr. Charles Henry",male,18,0,0,S.O.C. 14879,73.5,,S +387,0,3,"Goodwin, Master. Sidney Leonard",male,1,5,2,CA 2144,46.9,,S +388,1,2,"Buss, Miss. Kate",female,36,0,0,27849,13,,S +389,0,3,"Sadlier, Mr. Matthew",male,,0,0,367655,7.7292,,Q +390,1,2,"Lehmann, Miss. Bertha",female,17,0,0,SC 1748,12,,C +391,1,1,"Carter, Mr. William Ernest",male,36,1,2,113760,120,B96 B98,S +392,1,3,"Jansson, Mr. Carl Olof",male,21,0,0,350034,7.7958,,S +393,0,3,"Gustafsson, Mr. Johan Birger",male,28,2,0,3101277,7.925,,S +394,1,1,"Newell, Miss. Marjorie",female,23,1,0,35273,113.275,D36,C +395,1,3,"Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson)",female,24,0,2,PP 9549,16.7,G6,S +396,0,3,"Johansson, Mr. Erik",male,22,0,0,350052,7.7958,,S +397,0,3,"Olsson, Miss. Elina",female,31,0,0,350407,7.8542,,S +398,0,2,"McKane, Mr. Peter David",male,46,0,0,28403,26,,S +399,0,2,"Pain, Dr. Alfred",male,23,0,0,244278,10.5,,S +400,1,2,"Trout, Mrs. William H (Jessie L)",female,28,0,0,240929,12.65,,S +401,1,3,"Niskanen, Mr. Juha",male,39,0,0,STON/O 2. 3101289,7.925,,S +402,0,3,"Adams, Mr. John",male,26,0,0,341826,8.05,,S +403,0,3,"Jussila, Miss. Mari Aina",female,21,1,0,4137,9.825,,S +404,0,3,"Hakkarainen, Mr. Pekka Pietari",male,28,1,0,STON/O2. 3101279,15.85,,S +405,0,3,"Oreskovic, Miss. Marija",female,20,0,0,315096,8.6625,,S +406,0,2,"Gale, Mr. Shadrach",male,34,1,0,28664,21,,S +407,0,3,"Widegren, Mr. Carl/Charles Peter",male,51,0,0,347064,7.75,,S +408,1,2,"Richards, Master. William Rowe",male,3,1,1,29106,18.75,,S +409,0,3,"Birkeland, Mr. Hans Martin Monsen",male,21,0,0,312992,7.775,,S +410,0,3,"Lefebre, Miss. Ida",female,,3,1,4133,25.4667,,S +411,0,3,"Sdycoff, Mr. Todor",male,,0,0,349222,7.8958,,S +412,0,3,"Hart, Mr. Henry",male,,0,0,394140,6.8583,,Q +413,1,1,"Minahan, Miss. Daisy E",female,33,1,0,19928,90,C78,Q +414,0,2,"Cunningham, Mr. Alfred Fleming",male,,0,0,239853,0,,S +415,1,3,"Sundman, Mr. Johan Julian",male,44,0,0,STON/O 2. 3101269,7.925,,S +416,0,3,"Meek, Mrs. Thomas (Annie Louise Rowley)",female,,0,0,343095,8.05,,S +417,1,2,"Drew, Mrs. James Vivian (Lulu Thorne Christian)",female,34,1,1,28220,32.5,,S +418,1,2,"Silven, Miss. Lyyli Karoliina",female,18,0,2,250652,13,,S +419,0,2,"Matthews, Mr. William John",male,30,0,0,28228,13,,S +420,0,3,"Van Impe, Miss. Catharina",female,10,0,2,345773,24.15,,S +421,0,3,"Gheorgheff, Mr. Stanio",male,,0,0,349254,7.8958,,C +422,0,3,"Charters, Mr. David",male,21,0,0,A/5. 13032,7.7333,,Q +423,0,3,"Zimmerman, Mr. Leo",male,29,0,0,315082,7.875,,S +424,0,3,"Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren)",female,28,1,1,347080,14.4,,S +425,0,3,"Rosblom, Mr. Viktor Richard",male,18,1,1,370129,20.2125,,S +426,0,3,"Wiseman, Mr. Phillippe",male,,0,0,A/4. 34244,7.25,,S +427,1,2,"Clarke, Mrs. Charles V (Ada Maria Winfield)",female,28,1,0,2003,26,,S +428,1,2,"Phillips, Miss. Kate Florence (""Mrs Kate Louise Phillips Marshall"")",female,19,0,0,250655,26,,S +429,0,3,"Flynn, Mr. James",male,,0,0,364851,7.75,,Q +430,1,3,"Pickard, Mr. Berk (Berk Trembisky)",male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S +431,1,1,"Bjornstrom-Steffansson, Mr. Mauritz Hakan",male,28,0,0,110564,26.55,C52,S +432,1,3,"Thorneycroft, Mrs. Percival (Florence Kate White)",female,,1,0,376564,16.1,,S +433,1,2,"Louch, Mrs. Charles Alexander (Alice Adelaide Slow)",female,42,1,0,SC/AH 3085,26,,S +434,0,3,"Kallio, Mr. Nikolai Erland",male,17,0,0,STON/O 2. 3101274,7.125,,S +435,0,1,"Silvey, Mr. William Baird",male,50,1,0,13507,55.9,E44,S +436,1,1,"Carter, Miss. Lucile Polk",female,14,1,2,113760,120,B96 B98,S +437,0,3,"Ford, Miss. Doolina Margaret ""Daisy""",female,21,2,2,W./C. 6608,34.375,,S +438,1,2,"Richards, Mrs. Sidney (Emily Hocking)",female,24,2,3,29106,18.75,,S +439,0,1,"Fortune, Mr. Mark",male,64,1,4,19950,263,C23 C25 C27,S +440,0,2,"Kvillner, Mr. Johan Henrik Johannesson",male,31,0,0,C.A. 18723,10.5,,S +441,1,2,"Hart, Mrs. Benjamin (Esther Ada Bloomfield)",female,45,1,1,F.C.C. 13529,26.25,,S +442,0,3,"Hampe, Mr. Leon",male,20,0,0,345769,9.5,,S +443,0,3,"Petterson, Mr. Johan Emil",male,25,1,0,347076,7.775,,S +444,1,2,"Reynaldo, Ms. Encarnacion",female,28,0,0,230434,13,,S +445,1,3,"Johannesen-Bratthammer, Mr. Bernt",male,,0,0,65306,8.1125,,S +446,1,1,"Dodge, Master. Washington",male,4,0,2,33638,81.8583,A34,S +447,1,2,"Mellinger, Miss. Madeleine Violet",female,13,0,1,250644,19.5,,S +448,1,1,"Seward, Mr. Frederic Kimber",male,34,0,0,113794,26.55,,S +449,1,3,"Baclini, Miss. Marie Catherine",female,5,2,1,2666,19.2583,,C +450,1,1,"Peuchen, Major. Arthur Godfrey",male,52,0,0,113786,30.5,C104,S +451,0,2,"West, Mr. Edwy Arthur",male,36,1,2,C.A. 34651,27.75,,S +452,0,3,"Hagland, Mr. Ingvald Olai Olsen",male,,1,0,65303,19.9667,,S +453,0,1,"Foreman, Mr. Benjamin Laventall",male,30,0,0,113051,27.75,C111,C +454,1,1,"Goldenberg, Mr. Samuel L",male,49,1,0,17453,89.1042,C92,C +455,0,3,"Peduzzi, Mr. Joseph",male,,0,0,A/5 2817,8.05,,S +456,1,3,"Jalsevac, Mr. Ivan",male,29,0,0,349240,7.8958,,C +457,0,1,"Millet, Mr. Francis Davis",male,65,0,0,13509,26.55,E38,S +458,1,1,"Kenyon, Mrs. Frederick R (Marion)",female,,1,0,17464,51.8625,D21,S +459,1,2,"Toomey, Miss. Ellen",female,50,0,0,F.C.C. 13531,10.5,,S +460,0,3,"O'Connor, Mr. Maurice",male,,0,0,371060,7.75,,Q +461,1,1,"Anderson, Mr. Harry",male,48,0,0,19952,26.55,E12,S +462,0,3,"Morley, Mr. William",male,34,0,0,364506,8.05,,S +463,0,1,"Gee, Mr. Arthur H",male,47,0,0,111320,38.5,E63,S +464,0,2,"Milling, Mr. Jacob Christian",male,48,0,0,234360,13,,S +465,0,3,"Maisner, Mr. Simon",male,,0,0,A/S 2816,8.05,,S +466,0,3,"Goncalves, Mr. Manuel Estanslas",male,38,0,0,SOTON/O.Q. 3101306,7.05,,S +467,0,2,"Campbell, Mr. William",male,,0,0,239853,0,,S +468,0,1,"Smart, Mr. John Montgomery",male,56,0,0,113792,26.55,,S +469,0,3,"Scanlan, Mr. James",male,,0,0,36209,7.725,,Q +470,1,3,"Baclini, Miss. Helene Barbara",female,0.75,2,1,2666,19.2583,,C +471,0,3,"Keefe, Mr. Arthur",male,,0,0,323592,7.25,,S +472,0,3,"Cacic, Mr. Luka",male,38,0,0,315089,8.6625,,S +473,1,2,"West, Mrs. Edwy Arthur (Ada Mary Worth)",female,33,1,2,C.A. 34651,27.75,,S +474,1,2,"Jerwan, Mrs. Amin S (Marie Marthe Thuillard)",female,23,0,0,SC/AH Basle 541,13.7917,D,C +475,0,3,"Strandberg, Miss. Ida Sofia",female,22,0,0,7553,9.8375,,S +476,0,1,"Clifford, Mr. George Quincy",male,,0,0,110465,52,A14,S +477,0,2,"Renouf, Mr. Peter Henry",male,34,1,0,31027,21,,S +478,0,3,"Braund, Mr. Lewis Richard",male,29,1,0,3460,7.0458,,S +479,0,3,"Karlsson, Mr. Nils August",male,22,0,0,350060,7.5208,,S +480,1,3,"Hirvonen, Miss. Hildur E",female,2,0,1,3101298,12.2875,,S +481,0,3,"Goodwin, Master. Harold Victor",male,9,5,2,CA 2144,46.9,,S +482,0,2,"Frost, Mr. Anthony Wood ""Archie""",male,,0,0,239854,0,,S +483,0,3,"Rouse, Mr. Richard Henry",male,50,0,0,A/5 3594,8.05,,S +484,1,3,"Turkula, Mrs. (Hedwig)",female,63,0,0,4134,9.5875,,S +485,1,1,"Bishop, Mr. Dickinson H",male,25,1,0,11967,91.0792,B49,C +486,0,3,"Lefebre, Miss. Jeannie",female,,3,1,4133,25.4667,,S +487,1,1,"Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby)",female,35,1,0,19943,90,C93,S +488,0,1,"Kent, Mr. Edward Austin",male,58,0,0,11771,29.7,B37,C +489,0,3,"Somerton, Mr. Francis William",male,30,0,0,A.5. 18509,8.05,,S +490,1,3,"Coutts, Master. Eden Leslie ""Neville""",male,9,1,1,C.A. 37671,15.9,,S +491,0,3,"Hagland, Mr. Konrad Mathias Reiersen",male,,1,0,65304,19.9667,,S +492,0,3,"Windelov, Mr. Einar",male,21,0,0,SOTON/OQ 3101317,7.25,,S +493,0,1,"Molson, Mr. Harry Markland",male,55,0,0,113787,30.5,C30,S +494,0,1,"Artagaveytia, Mr. Ramon",male,71,0,0,PC 17609,49.5042,,C +495,0,3,"Stanley, Mr. Edward Roland",male,21,0,0,A/4 45380,8.05,,S +496,0,3,"Yousseff, Mr. Gerious",male,,0,0,2627,14.4583,,C +497,1,1,"Eustis, Miss. Elizabeth Mussey",female,54,1,0,36947,78.2667,D20,C +498,0,3,"Shellard, Mr. Frederick William",male,,0,0,C.A. 6212,15.1,,S +499,0,1,"Allison, Mrs. Hudson J C (Bessie Waldo Daniels)",female,25,1,2,113781,151.55,C22 C26,S +500,0,3,"Svensson, Mr. Olof",male,24,0,0,350035,7.7958,,S +501,0,3,"Calic, Mr. Petar",male,17,0,0,315086,8.6625,,S +502,0,3,"Canavan, Miss. Mary",female,21,0,0,364846,7.75,,Q +503,0,3,"O'Sullivan, Miss. Bridget Mary",female,,0,0,330909,7.6292,,Q +504,0,3,"Laitinen, Miss. Kristina Sofia",female,37,0,0,4135,9.5875,,S +505,1,1,"Maioni, Miss. Roberta",female,16,0,0,110152,86.5,B79,S +506,0,1,"Penasco y Castellana, Mr. Victor de Satode",male,18,1,0,PC 17758,108.9,C65,C +507,1,2,"Quick, Mrs. Frederick Charles (Jane Richards)",female,33,0,2,26360,26,,S +508,1,1,"Bradley, Mr. George (""George Arthur Brayton"")",male,,0,0,111427,26.55,,S +509,0,3,"Olsen, Mr. Henry Margido",male,28,0,0,C 4001,22.525,,S +510,1,3,"Lang, Mr. Fang",male,26,0,0,1601,56.4958,,S +511,1,3,"Daly, Mr. Eugene Patrick",male,29,0,0,382651,7.75,,Q +512,0,3,"Webber, Mr. James",male,,0,0,SOTON/OQ 3101316,8.05,,S +513,1,1,"McGough, Mr. James Robert",male,36,0,0,PC 17473,26.2875,E25,S +514,1,1,"Rothschild, Mrs. Martin (Elizabeth L. Barrett)",female,54,1,0,PC 17603,59.4,,C +515,0,3,"Coleff, Mr. Satio",male,24,0,0,349209,7.4958,,S +516,0,1,"Walker, Mr. William Anderson",male,47,0,0,36967,34.0208,D46,S +517,1,2,"Lemore, Mrs. (Amelia Milley)",female,34,0,0,C.A. 34260,10.5,F33,S +518,0,3,"Ryan, Mr. Patrick",male,,0,0,371110,24.15,,Q +519,1,2,"Angle, Mrs. William A (Florence ""Mary"" Agnes Hughes)",female,36,1,0,226875,26,,S +520,0,3,"Pavlovic, Mr. Stefo",male,32,0,0,349242,7.8958,,S +521,1,1,"Perreault, Miss. Anne",female,30,0,0,12749,93.5,B73,S +522,0,3,"Vovk, Mr. Janko",male,22,0,0,349252,7.8958,,S +523,0,3,"Lahoud, Mr. Sarkis",male,,0,0,2624,7.225,,C +524,1,1,"Hippach, Mrs. Louis Albert (Ida Sophia Fischer)",female,44,0,1,111361,57.9792,B18,C +525,0,3,"Kassem, Mr. Fared",male,,0,0,2700,7.2292,,C +526,0,3,"Farrell, Mr. James",male,40.5,0,0,367232,7.75,,Q +527,1,2,"Ridsdale, Miss. Lucy",female,50,0,0,W./C. 14258,10.5,,S +528,0,1,"Farthing, Mr. John",male,,0,0,PC 17483,221.7792,C95,S +529,0,3,"Salonen, Mr. Johan Werner",male,39,0,0,3101296,7.925,,S +530,0,2,"Hocking, Mr. Richard George",male,23,2,1,29104,11.5,,S +531,1,2,"Quick, Miss. Phyllis May",female,2,1,1,26360,26,,S +532,0,3,"Toufik, Mr. Nakli",male,,0,0,2641,7.2292,,C +533,0,3,"Elias, Mr. Joseph Jr",male,17,1,1,2690,7.2292,,C +534,1,3,"Peter, Mrs. Catherine (Catherine Rizk)",female,,0,2,2668,22.3583,,C +535,0,3,"Cacic, Miss. Marija",female,30,0,0,315084,8.6625,,S +536,1,2,"Hart, Miss. Eva Miriam",female,7,0,2,F.C.C. 13529,26.25,,S +537,0,1,"Butt, Major. Archibald Willingham",male,45,0,0,113050,26.55,B38,S +538,1,1,"LeRoy, Miss. Bertha",female,30,0,0,PC 17761,106.425,,C +539,0,3,"Risien, Mr. Samuel Beard",male,,0,0,364498,14.5,,S +540,1,1,"Frolicher, Miss. Hedwig Margaritha",female,22,0,2,13568,49.5,B39,C +541,1,1,"Crosby, Miss. Harriet R",female,36,0,2,WE/P 5735,71,B22,S +542,0,3,"Andersson, Miss. Ingeborg Constanzia",female,9,4,2,347082,31.275,,S +543,0,3,"Andersson, Miss. Sigrid Elisabeth",female,11,4,2,347082,31.275,,S +544,1,2,"Beane, Mr. Edward",male,32,1,0,2908,26,,S +545,0,1,"Douglas, Mr. Walter Donald",male,50,1,0,PC 17761,106.425,C86,C +546,0,1,"Nicholson, Mr. Arthur Ernest",male,64,0,0,693,26,,S +547,1,2,"Beane, Mrs. Edward (Ethel Clarke)",female,19,1,0,2908,26,,S +548,1,2,"Padro y Manent, Mr. Julian",male,,0,0,SC/PARIS 2146,13.8625,,C +549,0,3,"Goldsmith, Mr. Frank John",male,33,1,1,363291,20.525,,S +550,1,2,"Davies, Master. John Morgan Jr",male,8,1,1,C.A. 33112,36.75,,S +551,1,1,"Thayer, Mr. John Borland Jr",male,17,0,2,17421,110.8833,C70,C +552,0,2,"Sharp, Mr. Percival James R",male,27,0,0,244358,26,,S +553,0,3,"O'Brien, Mr. Timothy",male,,0,0,330979,7.8292,,Q +554,1,3,"Leeni, Mr. Fahim (""Philip Zenni"")",male,22,0,0,2620,7.225,,C +555,1,3,"Ohman, Miss. Velin",female,22,0,0,347085,7.775,,S +556,0,1,"Wright, Mr. George",male,62,0,0,113807,26.55,,S +557,1,1,"Duff Gordon, Lady. (Lucille Christiana Sutherland) (""Mrs Morgan"")",female,48,1,0,11755,39.6,A16,C +558,0,1,"Robbins, Mr. Victor",male,,0,0,PC 17757,227.525,,C +559,1,1,"Taussig, Mrs. Emil (Tillie Mandelbaum)",female,39,1,1,110413,79.65,E67,S +560,1,3,"de Messemaeker, Mrs. Guillaume Joseph (Emma)",female,36,1,0,345572,17.4,,S +561,0,3,"Morrow, Mr. Thomas Rowan",male,,0,0,372622,7.75,,Q +562,0,3,"Sivic, Mr. Husein",male,40,0,0,349251,7.8958,,S +563,0,2,"Norman, Mr. Robert Douglas",male,28,0,0,218629,13.5,,S +564,0,3,"Simmons, Mr. John",male,,0,0,SOTON/OQ 392082,8.05,,S +565,0,3,"Meanwell, Miss. (Marion Ogden)",female,,0,0,SOTON/O.Q. 392087,8.05,,S +566,0,3,"Davies, Mr. Alfred J",male,24,2,0,A/4 48871,24.15,,S +567,0,3,"Stoytcheff, Mr. Ilia",male,19,0,0,349205,7.8958,,S +568,0,3,"Palsson, Mrs. Nils (Alma Cornelia Berglund)",female,29,0,4,349909,21.075,,S +569,0,3,"Doharr, Mr. Tannous",male,,0,0,2686,7.2292,,C +570,1,3,"Jonsson, Mr. Carl",male,32,0,0,350417,7.8542,,S +571,1,2,"Harris, Mr. George",male,62,0,0,S.W./PP 752,10.5,,S +572,1,1,"Appleton, Mrs. Edward Dale (Charlotte Lamson)",female,53,2,0,11769,51.4792,C101,S +573,1,1,"Flynn, Mr. John Irwin (""Irving"")",male,36,0,0,PC 17474,26.3875,E25,S +574,1,3,"Kelly, Miss. Mary",female,,0,0,14312,7.75,,Q +575,0,3,"Rush, Mr. Alfred George John",male,16,0,0,A/4. 20589,8.05,,S +576,0,3,"Patchett, Mr. George",male,19,0,0,358585,14.5,,S +577,1,2,"Garside, Miss. Ethel",female,34,0,0,243880,13,,S +578,1,1,"Silvey, Mrs. William Baird (Alice Munger)",female,39,1,0,13507,55.9,E44,S +579,0,3,"Caram, Mrs. Joseph (Maria Elias)",female,,1,0,2689,14.4583,,C +580,1,3,"Jussila, Mr. Eiriik",male,32,0,0,STON/O 2. 3101286,7.925,,S +581,1,2,"Christy, Miss. Julie Rachel",female,25,1,1,237789,30,,S +582,1,1,"Thayer, Mrs. John Borland (Marian Longstreth Morris)",female,39,1,1,17421,110.8833,C68,C +583,0,2,"Downton, Mr. William James",male,54,0,0,28403,26,,S +584,0,1,"Ross, Mr. John Hugo",male,36,0,0,13049,40.125,A10,C +585,0,3,"Paulner, Mr. Uscher",male,,0,0,3411,8.7125,,C +586,1,1,"Taussig, Miss. Ruth",female,18,0,2,110413,79.65,E68,S +587,0,2,"Jarvis, Mr. John Denzil",male,47,0,0,237565,15,,S +588,1,1,"Frolicher-Stehli, Mr. Maxmillian",male,60,1,1,13567,79.2,B41,C +589,0,3,"Gilinski, Mr. Eliezer",male,22,0,0,14973,8.05,,S +590,0,3,"Murdlin, Mr. Joseph",male,,0,0,A./5. 3235,8.05,,S +591,0,3,"Rintamaki, Mr. Matti",male,35,0,0,STON/O 2. 3101273,7.125,,S +592,1,1,"Stephenson, Mrs. Walter Bertram (Martha Eustis)",female,52,1,0,36947,78.2667,D20,C +593,0,3,"Elsbury, Mr. William James",male,47,0,0,A/5 3902,7.25,,S +594,0,3,"Bourke, Miss. Mary",female,,0,2,364848,7.75,,Q +595,0,2,"Chapman, Mr. John Henry",male,37,1,0,SC/AH 29037,26,,S +596,0,3,"Van Impe, Mr. Jean Baptiste",male,36,1,1,345773,24.15,,S +597,1,2,"Leitch, Miss. Jessie Wills",female,,0,0,248727,33,,S +598,0,3,"Johnson, Mr. Alfred",male,49,0,0,LINE,0,,S +599,0,3,"Boulos, Mr. Hanna",male,,0,0,2664,7.225,,C +600,1,1,"Duff Gordon, Sir. Cosmo Edmund (""Mr Morgan"")",male,49,1,0,PC 17485,56.9292,A20,C +601,1,2,"Jacobsohn, Mrs. Sidney Samuel (Amy Frances Christy)",female,24,2,1,243847,27,,S +602,0,3,"Slabenoff, Mr. Petco",male,,0,0,349214,7.8958,,S +603,0,1,"Harrington, Mr. Charles H",male,,0,0,113796,42.4,,S +604,0,3,"Torber, Mr. Ernst William",male,44,0,0,364511,8.05,,S +605,1,1,"Homer, Mr. Harry (""Mr E Haven"")",male,35,0,0,111426,26.55,,C +606,0,3,"Lindell, Mr. Edvard Bengtsson",male,36,1,0,349910,15.55,,S +607,0,3,"Karaic, Mr. Milan",male,30,0,0,349246,7.8958,,S +608,1,1,"Daniel, Mr. Robert Williams",male,27,0,0,113804,30.5,,S +609,1,2,"Laroche, Mrs. Joseph (Juliette Marie Louise Lafargue)",female,22,1,2,SC/Paris 2123,41.5792,,C +610,1,1,"Shutes, Miss. Elizabeth W",female,40,0,0,PC 17582,153.4625,C125,S +611,0,3,"Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren)",female,39,1,5,347082,31.275,,S +612,0,3,"Jardin, Mr. Jose Neto",male,,0,0,SOTON/O.Q. 3101305,7.05,,S +613,1,3,"Murphy, Miss. Margaret Jane",female,,1,0,367230,15.5,,Q +614,0,3,"Horgan, Mr. John",male,,0,0,370377,7.75,,Q +615,0,3,"Brocklebank, Mr. William Alfred",male,35,0,0,364512,8.05,,S +616,1,2,"Herman, Miss. Alice",female,24,1,2,220845,65,,S +617,0,3,"Danbom, Mr. Ernst Gilbert",male,34,1,1,347080,14.4,,S +618,0,3,"Lobb, Mrs. William Arthur (Cordelia K Stanlick)",female,26,1,0,A/5. 3336,16.1,,S +619,1,2,"Becker, Miss. Marion Louise",female,4,2,1,230136,39,F4,S +620,0,2,"Gavey, Mr. Lawrence",male,26,0,0,31028,10.5,,S +621,0,3,"Yasbeck, Mr. Antoni",male,27,1,0,2659,14.4542,,C +622,1,1,"Kimball, Mr. Edwin Nelson Jr",male,42,1,0,11753,52.5542,D19,S +623,1,3,"Nakid, Mr. Sahid",male,20,1,1,2653,15.7417,,C +624,0,3,"Hansen, Mr. Henry Damsgaard",male,21,0,0,350029,7.8542,,S +625,0,3,"Bowen, Mr. David John ""Dai""",male,21,0,0,54636,16.1,,S +626,0,1,"Sutton, Mr. Frederick",male,61,0,0,36963,32.3208,D50,S +627,0,2,"Kirkland, Rev. Charles Leonard",male,57,0,0,219533,12.35,,Q +628,1,1,"Longley, Miss. Gretchen Fiske",female,21,0,0,13502,77.9583,D9,S +629,0,3,"Bostandyeff, Mr. Guentcho",male,26,0,0,349224,7.8958,,S +630,0,3,"O'Connell, Mr. Patrick D",male,,0,0,334912,7.7333,,Q +631,1,1,"Barkworth, Mr. Algernon Henry Wilson",male,80,0,0,27042,30,A23,S +632,0,3,"Lundahl, Mr. Johan Svensson",male,51,0,0,347743,7.0542,,S +633,1,1,"Stahelin-Maeglin, Dr. Max",male,32,0,0,13214,30.5,B50,C +634,0,1,"Parr, Mr. William Henry Marsh",male,,0,0,112052,0,,S +635,0,3,"Skoog, Miss. Mabel",female,9,3,2,347088,27.9,,S +636,1,2,"Davis, Miss. Mary",female,28,0,0,237668,13,,S +637,0,3,"Leinonen, Mr. Antti Gustaf",male,32,0,0,STON/O 2. 3101292,7.925,,S +638,0,2,"Collyer, Mr. Harvey",male,31,1,1,C.A. 31921,26.25,,S +639,0,3,"Panula, Mrs. Juha (Maria Emilia Ojala)",female,41,0,5,3101295,39.6875,,S +640,0,3,"Thorneycroft, Mr. Percival",male,,1,0,376564,16.1,,S +641,0,3,"Jensen, Mr. Hans Peder",male,20,0,0,350050,7.8542,,S +642,1,1,"Sagesser, Mlle. Emma",female,24,0,0,PC 17477,69.3,B35,C +643,0,3,"Skoog, Miss. Margit Elizabeth",female,2,3,2,347088,27.9,,S +644,1,3,"Foo, Mr. Choong",male,,0,0,1601,56.4958,,S +645,1,3,"Baclini, Miss. Eugenie",female,0.75,2,1,2666,19.2583,,C +646,1,1,"Harper, Mr. Henry Sleeper",male,48,1,0,PC 17572,76.7292,D33,C +647,0,3,"Cor, Mr. Liudevit",male,19,0,0,349231,7.8958,,S +648,1,1,"Simonius-Blumer, Col. Oberst Alfons",male,56,0,0,13213,35.5,A26,C +649,0,3,"Willey, Mr. Edward",male,,0,0,S.O./P.P. 751,7.55,,S +650,1,3,"Stanley, Miss. Amy Zillah Elsie",female,23,0,0,CA. 2314,7.55,,S +651,0,3,"Mitkoff, Mr. Mito",male,,0,0,349221,7.8958,,S +652,1,2,"Doling, Miss. Elsie",female,18,0,1,231919,23,,S +653,0,3,"Kalvik, Mr. Johannes Halvorsen",male,21,0,0,8475,8.4333,,S +654,1,3,"O'Leary, Miss. Hanora ""Norah""",female,,0,0,330919,7.8292,,Q +655,0,3,"Hegarty, Miss. Hanora ""Nora""",female,18,0,0,365226,6.75,,Q +656,0,2,"Hickman, Mr. Leonard Mark",male,24,2,0,S.O.C. 14879,73.5,,S +657,0,3,"Radeff, Mr. Alexander",male,,0,0,349223,7.8958,,S +658,0,3,"Bourke, Mrs. John (Catherine)",female,32,1,1,364849,15.5,,Q +659,0,2,"Eitemiller, Mr. George Floyd",male,23,0,0,29751,13,,S +660,0,1,"Newell, Mr. Arthur Webster",male,58,0,2,35273,113.275,D48,C +661,1,1,"Frauenthal, Dr. Henry William",male,50,2,0,PC 17611,133.65,,S +662,0,3,"Badt, Mr. Mohamed",male,40,0,0,2623,7.225,,C +663,0,1,"Colley, Mr. Edward Pomeroy",male,47,0,0,5727,25.5875,E58,S +664,0,3,"Coleff, Mr. Peju",male,36,0,0,349210,7.4958,,S +665,1,3,"Lindqvist, Mr. Eino William",male,20,1,0,STON/O 2. 3101285,7.925,,S +666,0,2,"Hickman, Mr. Lewis",male,32,2,0,S.O.C. 14879,73.5,,S +667,0,2,"Butler, Mr. Reginald Fenton",male,25,0,0,234686,13,,S +668,0,3,"Rommetvedt, Mr. Knud Paust",male,,0,0,312993,7.775,,S +669,0,3,"Cook, Mr. Jacob",male,43,0,0,A/5 3536,8.05,,S +670,1,1,"Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright)",female,,1,0,19996,52,C126,S +671,1,2,"Brown, Mrs. Thomas William Solomon (Elizabeth Catherine Ford)",female,40,1,1,29750,39,,S +672,0,1,"Davidson, Mr. Thornton",male,31,1,0,F.C. 12750,52,B71,S +673,0,2,"Mitchell, Mr. Henry Michael",male,70,0,0,C.A. 24580,10.5,,S +674,1,2,"Wilhelms, Mr. Charles",male,31,0,0,244270,13,,S +675,0,2,"Watson, Mr. Ennis Hastings",male,,0,0,239856,0,,S +676,0,3,"Edvardsson, Mr. Gustaf Hjalmar",male,18,0,0,349912,7.775,,S +677,0,3,"Sawyer, Mr. Frederick Charles",male,24.5,0,0,342826,8.05,,S +678,1,3,"Turja, Miss. Anna Sofia",female,18,0,0,4138,9.8417,,S +679,0,3,"Goodwin, Mrs. Frederick (Augusta Tyler)",female,43,1,6,CA 2144,46.9,,S +680,1,1,"Cardeza, Mr. Thomas Drake Martinez",male,36,0,1,PC 17755,512.3292,B51 B53 B55,C +681,0,3,"Peters, Miss. Katie",female,,0,0,330935,8.1375,,Q +682,1,1,"Hassab, Mr. Hammad",male,27,0,0,PC 17572,76.7292,D49,C +683,0,3,"Olsvigen, Mr. Thor Anderson",male,20,0,0,6563,9.225,,S +684,0,3,"Goodwin, Mr. Charles Edward",male,14,5,2,CA 2144,46.9,,S +685,0,2,"Brown, Mr. Thomas William Solomon",male,60,1,1,29750,39,,S +686,0,2,"Laroche, Mr. Joseph Philippe Lemercier",male,25,1,2,SC/Paris 2123,41.5792,,C +687,0,3,"Panula, Mr. Jaako Arnold",male,14,4,1,3101295,39.6875,,S +688,0,3,"Dakic, Mr. Branko",male,19,0,0,349228,10.1708,,S +689,0,3,"Fischer, Mr. Eberhard Thelander",male,18,0,0,350036,7.7958,,S +690,1,1,"Madill, Miss. Georgette Alexandra",female,15,0,1,24160,211.3375,B5,S +691,1,1,"Dick, Mr. Albert Adrian",male,31,1,0,17474,57,B20,S +692,1,3,"Karun, Miss. Manca",female,4,0,1,349256,13.4167,,C +693,1,3,"Lam, Mr. Ali",male,,0,0,1601,56.4958,,S +694,0,3,"Saad, Mr. Khalil",male,25,0,0,2672,7.225,,C +695,0,1,"Weir, Col. John",male,60,0,0,113800,26.55,,S +696,0,2,"Chapman, Mr. Charles Henry",male,52,0,0,248731,13.5,,S +697,0,3,"Kelly, Mr. James",male,44,0,0,363592,8.05,,S +698,1,3,"Mullens, Miss. Katherine ""Katie""",female,,0,0,35852,7.7333,,Q +699,0,1,"Thayer, Mr. John Borland",male,49,1,1,17421,110.8833,C68,C +700,0,3,"Humblen, Mr. Adolf Mathias Nicolai Olsen",male,42,0,0,348121,7.65,F G63,S +701,1,1,"Astor, Mrs. John Jacob (Madeleine Talmadge Force)",female,18,1,0,PC 17757,227.525,C62 C64,C +702,1,1,"Silverthorne, Mr. Spencer Victor",male,35,0,0,PC 17475,26.2875,E24,S +703,0,3,"Barbara, Miss. Saiide",female,18,0,1,2691,14.4542,,C +704,0,3,"Gallagher, Mr. Martin",male,25,0,0,36864,7.7417,,Q +705,0,3,"Hansen, Mr. Henrik Juul",male,26,1,0,350025,7.8542,,S +706,0,2,"Morley, Mr. Henry Samuel (""Mr Henry Marshall"")",male,39,0,0,250655,26,,S +707,1,2,"Kelly, Mrs. Florence ""Fannie""",female,45,0,0,223596,13.5,,S +708,1,1,"Calderhead, Mr. Edward Pennington",male,42,0,0,PC 17476,26.2875,E24,S +709,1,1,"Cleaver, Miss. Alice",female,22,0,0,113781,151.55,,S +710,1,3,"Moubarek, Master. Halim Gonios (""William George"")",male,,1,1,2661,15.2458,,C +711,1,1,"Mayne, Mlle. Berthe Antonine (""Mrs de Villiers"")",female,24,0,0,PC 17482,49.5042,C90,C +712,0,1,"Klaber, Mr. Herman",male,,0,0,113028,26.55,C124,S +713,1,1,"Taylor, Mr. Elmer Zebley",male,48,1,0,19996,52,C126,S +714,0,3,"Larsson, Mr. August Viktor",male,29,0,0,7545,9.4833,,S +715,0,2,"Greenberg, Mr. Samuel",male,52,0,0,250647,13,,S +716,0,3,"Soholt, Mr. Peter Andreas Lauritz Andersen",male,19,0,0,348124,7.65,F G73,S +717,1,1,"Endres, Miss. Caroline Louise",female,38,0,0,PC 17757,227.525,C45,C +718,1,2,"Troutt, Miss. Edwina Celia ""Winnie""",female,27,0,0,34218,10.5,E101,S +719,0,3,"McEvoy, Mr. Michael",male,,0,0,36568,15.5,,Q +720,0,3,"Johnson, Mr. Malkolm Joackim",male,33,0,0,347062,7.775,,S +721,1,2,"Harper, Miss. Annie Jessie ""Nina""",female,6,0,1,248727,33,,S +722,0,3,"Jensen, Mr. Svend Lauritz",male,17,1,0,350048,7.0542,,S +723,0,2,"Gillespie, Mr. William Henry",male,34,0,0,12233,13,,S +724,0,2,"Hodges, Mr. Henry Price",male,50,0,0,250643,13,,S +725,1,1,"Chambers, Mr. Norman Campbell",male,27,1,0,113806,53.1,E8,S +726,0,3,"Oreskovic, Mr. Luka",male,20,0,0,315094,8.6625,,S +727,1,2,"Renouf, Mrs. Peter Henry (Lillian Jefferys)",female,30,3,0,31027,21,,S +728,1,3,"Mannion, Miss. Margareth",female,,0,0,36866,7.7375,,Q +729,0,2,"Bryhl, Mr. Kurt Arnold Gottfrid",male,25,1,0,236853,26,,S +730,0,3,"Ilmakangas, Miss. Pieta Sofia",female,25,1,0,STON/O2. 3101271,7.925,,S +731,1,1,"Allen, Miss. Elisabeth Walton",female,29,0,0,24160,211.3375,B5,S +732,0,3,"Hassan, Mr. Houssein G N",male,11,0,0,2699,18.7875,,C +733,0,2,"Knight, Mr. Robert J",male,,0,0,239855,0,,S +734,0,2,"Berriman, Mr. William John",male,23,0,0,28425,13,,S +735,0,2,"Troupiansky, Mr. Moses Aaron",male,23,0,0,233639,13,,S +736,0,3,"Williams, Mr. Leslie",male,28.5,0,0,54636,16.1,,S +737,0,3,"Ford, Mrs. Edward (Margaret Ann Watson)",female,48,1,3,W./C. 6608,34.375,,S +738,1,1,"Lesurer, Mr. Gustave J",male,35,0,0,PC 17755,512.3292,B101,C +739,0,3,"Ivanoff, Mr. Kanio",male,,0,0,349201,7.8958,,S +740,0,3,"Nankoff, Mr. Minko",male,,0,0,349218,7.8958,,S +741,1,1,"Hawksford, Mr. Walter James",male,,0,0,16988,30,D45,S +742,0,1,"Cavendish, Mr. Tyrell William",male,36,1,0,19877,78.85,C46,S +743,1,1,"Ryerson, Miss. Susan Parker ""Suzette""",female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C +744,0,3,"McNamee, Mr. Neal",male,24,1,0,376566,16.1,,S +745,1,3,"Stranden, Mr. Juho",male,31,0,0,STON/O 2. 3101288,7.925,,S +746,0,1,"Crosby, Capt. Edward Gifford",male,70,1,1,WE/P 5735,71,B22,S +747,0,3,"Abbott, Mr. Rossmore Edward",male,16,1,1,C.A. 2673,20.25,,S +748,1,2,"Sinkkonen, Miss. Anna",female,30,0,0,250648,13,,S +749,0,1,"Marvin, Mr. Daniel Warner",male,19,1,0,113773,53.1,D30,S +750,0,3,"Connaghton, Mr. Michael",male,31,0,0,335097,7.75,,Q +751,1,2,"Wells, Miss. Joan",female,4,1,1,29103,23,,S +752,1,3,"Moor, Master. Meier",male,6,0,1,392096,12.475,E121,S +753,0,3,"Vande Velde, Mr. Johannes Joseph",male,33,0,0,345780,9.5,,S +754,0,3,"Jonkoff, Mr. Lalio",male,23,0,0,349204,7.8958,,S +755,1,2,"Herman, Mrs. Samuel (Jane Laver)",female,48,1,2,220845,65,,S +756,1,2,"Hamalainen, Master. Viljo",male,0.67,1,1,250649,14.5,,S +757,0,3,"Carlsson, Mr. August Sigfrid",male,28,0,0,350042,7.7958,,S +758,0,2,"Bailey, Mr. Percy Andrew",male,18,0,0,29108,11.5,,S +759,0,3,"Theobald, Mr. Thomas Leonard",male,34,0,0,363294,8.05,,S +760,1,1,"Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)",female,33,0,0,110152,86.5,B77,S +761,0,3,"Garfirth, Mr. John",male,,0,0,358585,14.5,,S +762,0,3,"Nirva, Mr. Iisakki Antino Aijo",male,41,0,0,SOTON/O2 3101272,7.125,,S +763,1,3,"Barah, Mr. Hanna Assi",male,20,0,0,2663,7.2292,,C +764,1,1,"Carter, Mrs. William Ernest (Lucile Polk)",female,36,1,2,113760,120,B96 B98,S +765,0,3,"Eklund, Mr. Hans Linus",male,16,0,0,347074,7.775,,S +766,1,1,"Hogeboom, Mrs. John C (Anna Andrews)",female,51,1,0,13502,77.9583,D11,S +767,0,1,"Brewe, Dr. Arthur Jackson",male,,0,0,112379,39.6,,C +768,0,3,"Mangan, Miss. Mary",female,30.5,0,0,364850,7.75,,Q +769,0,3,"Moran, Mr. Daniel J",male,,1,0,371110,24.15,,Q +770,0,3,"Gronnestad, Mr. Daniel Danielsen",male,32,0,0,8471,8.3625,,S +771,0,3,"Lievens, Mr. Rene Aime",male,24,0,0,345781,9.5,,S +772,0,3,"Jensen, Mr. Niels Peder",male,48,0,0,350047,7.8542,,S +773,0,2,"Mack, Mrs. (Mary)",female,57,0,0,S.O./P.P. 3,10.5,E77,S +774,0,3,"Elias, Mr. Dibo",male,,0,0,2674,7.225,,C +775,1,2,"Hocking, Mrs. Elizabeth (Eliza Needs)",female,54,1,3,29105,23,,S +776,0,3,"Myhrman, Mr. Pehr Fabian Oliver Malkolm",male,18,0,0,347078,7.75,,S +777,0,3,"Tobin, Mr. Roger",male,,0,0,383121,7.75,F38,Q +778,1,3,"Emanuel, Miss. Virginia Ethel",female,5,0,0,364516,12.475,,S +779,0,3,"Kilgannon, Mr. Thomas J",male,,0,0,36865,7.7375,,Q +780,1,1,"Robert, Mrs. Edward Scott (Elisabeth Walton McMillan)",female,43,0,1,24160,211.3375,B3,S +781,1,3,"Ayoub, Miss. Banoura",female,13,0,0,2687,7.2292,,C +782,1,1,"Dick, Mrs. Albert Adrian (Vera Gillespie)",female,17,1,0,17474,57,B20,S +783,0,1,"Long, Mr. Milton Clyde",male,29,0,0,113501,30,D6,S +784,0,3,"Johnston, Mr. Andrew G",male,,1,2,W./C. 6607,23.45,,S +785,0,3,"Ali, Mr. William",male,25,0,0,SOTON/O.Q. 3101312,7.05,,S +786,0,3,"Harmer, Mr. Abraham (David Lishin)",male,25,0,0,374887,7.25,,S +787,1,3,"Sjoblom, Miss. Anna Sofia",female,18,0,0,3101265,7.4958,,S +788,0,3,"Rice, Master. George Hugh",male,8,4,1,382652,29.125,,Q +789,1,3,"Dean, Master. Bertram Vere",male,1,1,2,C.A. 2315,20.575,,S +790,0,1,"Guggenheim, Mr. Benjamin",male,46,0,0,PC 17593,79.2,B82 B84,C +791,0,3,"Keane, Mr. Andrew ""Andy""",male,,0,0,12460,7.75,,Q +792,0,2,"Gaskell, Mr. Alfred",male,16,0,0,239865,26,,S +793,0,3,"Sage, Miss. Stella Anna",female,,8,2,CA. 2343,69.55,,S +794,0,1,"Hoyt, Mr. William Fisher",male,,0,0,PC 17600,30.6958,,C +795,0,3,"Dantcheff, Mr. Ristiu",male,25,0,0,349203,7.8958,,S +796,0,2,"Otter, Mr. Richard",male,39,0,0,28213,13,,S +797,1,1,"Leader, Dr. Alice (Farnham)",female,49,0,0,17465,25.9292,D17,S +798,1,3,"Osman, Mrs. Mara",female,31,0,0,349244,8.6833,,S +799,0,3,"Ibrahim Shawah, Mr. Yousseff",male,30,0,0,2685,7.2292,,C +800,0,3,"Van Impe, Mrs. Jean Baptiste (Rosalie Paula Govaert)",female,30,1,1,345773,24.15,,S +801,0,2,"Ponesell, Mr. Martin",male,34,0,0,250647,13,,S +802,1,2,"Collyer, Mrs. Harvey (Charlotte Annie Tate)",female,31,1,1,C.A. 31921,26.25,,S +803,1,1,"Carter, Master. William Thornton II",male,11,1,2,113760,120,B96 B98,S +804,1,3,"Thomas, Master. Assad Alexander",male,0.42,0,1,2625,8.5167,,C +805,1,3,"Hedman, Mr. Oskar Arvid",male,27,0,0,347089,6.975,,S +806,0,3,"Johansson, Mr. Karl Johan",male,31,0,0,347063,7.775,,S +807,0,1,"Andrews, Mr. Thomas Jr",male,39,0,0,112050,0,A36,S +808,0,3,"Pettersson, Miss. Ellen Natalia",female,18,0,0,347087,7.775,,S +809,0,2,"Meyer, Mr. August",male,39,0,0,248723,13,,S +810,1,1,"Chambers, Mrs. Norman Campbell (Bertha Griggs)",female,33,1,0,113806,53.1,E8,S +811,0,3,"Alexander, Mr. William",male,26,0,0,3474,7.8875,,S +812,0,3,"Lester, Mr. James",male,39,0,0,A/4 48871,24.15,,S +813,0,2,"Slemen, Mr. Richard James",male,35,0,0,28206,10.5,,S +814,0,3,"Andersson, Miss. Ebba Iris Alfrida",female,6,4,2,347082,31.275,,S +815,0,3,"Tomlin, Mr. Ernest Portage",male,30.5,0,0,364499,8.05,,S +816,0,1,"Fry, Mr. Richard",male,,0,0,112058,0,B102,S +817,0,3,"Heininen, Miss. Wendla Maria",female,23,0,0,STON/O2. 3101290,7.925,,S +818,0,2,"Mallet, Mr. Albert",male,31,1,1,S.C./PARIS 2079,37.0042,,C +819,0,3,"Holm, Mr. John Fredrik Alexander",male,43,0,0,C 7075,6.45,,S +820,0,3,"Skoog, Master. Karl Thorsten",male,10,3,2,347088,27.9,,S +821,1,1,"Hays, Mrs. Charles Melville (Clara Jennings Gregg)",female,52,1,1,12749,93.5,B69,S +822,1,3,"Lulic, Mr. Nikola",male,27,0,0,315098,8.6625,,S +823,0,1,"Reuchlin, Jonkheer. John George",male,38,0,0,19972,0,,S +824,1,3,"Moor, Mrs. (Beila)",female,27,0,1,392096,12.475,E121,S +825,0,3,"Panula, Master. Urho Abraham",male,2,4,1,3101295,39.6875,,S +826,0,3,"Flynn, Mr. John",male,,0,0,368323,6.95,,Q +827,0,3,"Lam, Mr. Len",male,,0,0,1601,56.4958,,S +828,1,2,"Mallet, Master. Andre",male,1,0,2,S.C./PARIS 2079,37.0042,,C +829,1,3,"McCormack, Mr. Thomas Joseph",male,,0,0,367228,7.75,,Q +830,1,1,"Stone, Mrs. George Nelson (Martha Evelyn)",female,62,0,0,113572,80,B28, +831,1,3,"Yasbeck, Mrs. Antoni (Selini Alexander)",female,15,1,0,2659,14.4542,,C +832,1,2,"Richards, Master. George Sibley",male,0.83,1,1,29106,18.75,,S +833,0,3,"Saad, Mr. Amin",male,,0,0,2671,7.2292,,C +834,0,3,"Augustsson, Mr. Albert",male,23,0,0,347468,7.8542,,S +835,0,3,"Allum, Mr. Owen George",male,18,0,0,2223,8.3,,S +836,1,1,"Compton, Miss. Sara Rebecca",female,39,1,1,PC 17756,83.1583,E49,C +837,0,3,"Pasic, Mr. Jakob",male,21,0,0,315097,8.6625,,S +838,0,3,"Sirota, Mr. Maurice",male,,0,0,392092,8.05,,S +839,1,3,"Chip, Mr. Chang",male,32,0,0,1601,56.4958,,S +840,1,1,"Marechal, Mr. Pierre",male,,0,0,11774,29.7,C47,C +841,0,3,"Alhomaki, Mr. Ilmari Rudolf",male,20,0,0,SOTON/O2 3101287,7.925,,S +842,0,2,"Mudd, Mr. Thomas Charles",male,16,0,0,S.O./P.P. 3,10.5,,S +843,1,1,"Serepeca, Miss. Augusta",female,30,0,0,113798,31,,C +844,0,3,"Lemberopolous, Mr. Peter L",male,34.5,0,0,2683,6.4375,,C +845,0,3,"Culumovic, Mr. Jeso",male,17,0,0,315090,8.6625,,S +846,0,3,"Abbing, Mr. Anthony",male,42,0,0,C.A. 5547,7.55,,S +847,0,3,"Sage, Mr. Douglas Bullen",male,,8,2,CA. 2343,69.55,,S +848,0,3,"Markoff, Mr. Marin",male,35,0,0,349213,7.8958,,C +849,0,2,"Harper, Rev. John",male,28,0,1,248727,33,,S +850,1,1,"Goldenberg, Mrs. Samuel L (Edwiga Grabowska)",female,,1,0,17453,89.1042,C92,C +851,0,3,"Andersson, Master. Sigvard Harald Elias",male,4,4,2,347082,31.275,,S +852,0,3,"Svensson, Mr. Johan",male,74,0,0,347060,7.775,,S +853,0,3,"Boulos, Miss. Nourelain",female,9,1,1,2678,15.2458,,C +854,1,1,"Lines, Miss. Mary Conover",female,16,0,1,PC 17592,39.4,D28,S +855,0,2,"Carter, Mrs. Ernest Courtenay (Lilian Hughes)",female,44,1,0,244252,26,,S +856,1,3,"Aks, Mrs. Sam (Leah Rosen)",female,18,0,1,392091,9.35,,S +857,1,1,"Wick, Mrs. George Dennick (Mary Hitchcock)",female,45,1,1,36928,164.8667,,S +858,1,1,"Daly, Mr. Peter Denis ",male,51,0,0,113055,26.55,E17,S +859,1,3,"Baclini, Mrs. Solomon (Latifa Qurban)",female,24,0,3,2666,19.2583,,C +860,0,3,"Razi, Mr. Raihed",male,,0,0,2629,7.2292,,C +861,0,3,"Hansen, Mr. Claus Peter",male,41,2,0,350026,14.1083,,S +862,0,2,"Giles, Mr. Frederick Edward",male,21,1,0,28134,11.5,,S +863,1,1,"Swift, Mrs. Frederick Joel (Margaret Welles Barron)",female,48,0,0,17466,25.9292,D17,S +864,0,3,"Sage, Miss. Dorothy Edith ""Dolly""",female,,8,2,CA. 2343,69.55,,S +865,0,2,"Gill, Mr. John William",male,24,0,0,233866,13,,S +866,1,2,"Bystrom, Mrs. (Karolina)",female,42,0,0,236852,13,,S +867,1,2,"Duran y More, Miss. Asuncion",female,27,1,0,SC/PARIS 2149,13.8583,,C +868,0,1,"Roebling, Mr. Washington Augustus II",male,31,0,0,PC 17590,50.4958,A24,S +869,0,3,"van Melkebeke, Mr. Philemon",male,,0,0,345777,9.5,,S +870,1,3,"Johnson, Master. Harold Theodor",male,4,1,1,347742,11.1333,,S +871,0,3,"Balkic, Mr. Cerin",male,26,0,0,349248,7.8958,,S +872,1,1,"Beckwith, Mrs. Richard Leonard (Sallie Monypeny)",female,47,1,1,11751,52.5542,D35,S +873,0,1,"Carlsson, Mr. Frans Olof",male,33,0,0,695,5,B51 B53 B55,S +874,0,3,"Vander Cruyssen, Mr. Victor",male,47,0,0,345765,9,,S +875,1,2,"Abelson, Mrs. Samuel (Hannah Wizosky)",female,28,1,0,P/PP 3381,24,,C +876,1,3,"Najib, Miss. Adele Kiamie ""Jane""",female,15,0,0,2667,7.225,,C +877,0,3,"Gustafsson, Mr. Alfred Ossian",male,20,0,0,7534,9.8458,,S +878,0,3,"Petroff, Mr. Nedelio",male,19,0,0,349212,7.8958,,S +879,0,3,"Laleff, Mr. Kristo",male,,0,0,349217,7.8958,,S +880,1,1,"Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)",female,56,0,1,11767,83.1583,C50,C +881,1,2,"Shelley, Mrs. William (Imanita Parrish Hall)",female,25,0,1,230433,26,,S +882,0,3,"Markun, Mr. Johann",male,33,0,0,349257,7.8958,,S +883,0,3,"Dahlberg, Miss. Gerda Ulrika",female,22,0,0,7552,10.5167,,S +884,0,2,"Banfield, Mr. Frederick James",male,28,0,0,C.A./SOTON 34068,10.5,,S +885,0,3,"Sutehall, Mr. Henry Jr",male,25,0,0,SOTON/OQ 392076,7.05,,S +886,0,3,"Rice, Mrs. William (Margaret Norton)",female,39,0,5,382652,29.125,,Q +887,0,2,"Montvila, Rev. Juozas",male,27,0,0,211536,13,,S +888,1,1,"Graham, Miss. Margaret Edith",female,19,0,0,112053,30,B42,S +889,0,3,"Johnston, Miss. Catherine Helen ""Carrie""",female,,1,2,W./C. 6607,23.45,,S +890,1,1,"Behr, Mr. Karl Howell",male,26,0,0,111369,30,C148,C +891,0,3,"Dooley, Mr. Patrick",male,32,0,0,370376,7.75,,Q From 5436838ea434a25e9a759a3b8f26415dc1ff0d06 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 2 Sep 2024 20:36:24 -0700 Subject: [PATCH 086/163] content --- D-Pandas.ipynb | 412 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 407 insertions(+), 5 deletions(-) diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 726db32..65f53ff 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -158,12 +158,113 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sepal_lengthsepal_widthpetal_lengthpetal_widthspeciessepal_length_inches
05.13.51.40.2Iris-setosa2.007875
14.93.01.40.2Iris-setosa1.929135
24.73.21.30.2Iris-setosa1.850395
34.63.11.50.2Iris-setosa1.811025
45.03.61.40.2Iris-setosa1.968505
\n", + "
" + ], + "text/plain": [ + " sepal_length sepal_width petal_length petal_width species \\\n", + "0 5.1 3.5 1.4 0.2 Iris-setosa \n", + "1 4.9 3.0 1.4 0.2 Iris-setosa \n", + "2 4.7 3.2 1.3 0.2 Iris-setosa \n", + "3 4.6 3.1 1.5 0.2 Iris-setosa \n", + "4 5.0 3.6 1.4 0.2 Iris-setosa \n", + "\n", + " sepal_length_inches \n", + "0 2.007875 \n", + "1 1.929135 \n", + "2 1.850395 \n", + "3 1.811025 \n", + "4 1.968505 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Your code here. You can re-run the above cell if you mess up your dataframe.\n", - "# print(df....)" + "# print(df....)\n", + "df.head()" ] }, { @@ -251,7 +352,7 @@ "source": [ "df['width_difference'] = (df['sepal_width'] - df['petal_width']).abs()\n", "\n", - "# Alternate ways of doing things are commented out below:\n", + "# Alternate ways of selecting and printing columns are commented out below:\n", "\n", "# width_columns = df.columns[df.columns.str.contains('width')]\n", "# width_columns = ['sepal_width', 'petal_width', 'width_difference']\n", @@ -269,9 +370,310 @@ "## Selecting Rows with loc and iloc\n", "**.loc** vs **.iloc**\n", "* .loc selects rows with particular labels in the series or dataframe index\n", - "* .iloc selects rows at integer locations within the series or dataframe. " + " * https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html\n", + "* .iloc selects rows at integer locations within the series or dataframe.\n", + " * https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Name Age SSN City\n", + "0 Alice 25 123-45-6789 New York\n", + "1 Bob 30 234-56-7890 Los Angeles\n", + "2 Charlie 35 345-67-8901 Chicago\n", + "3 David 40 456-78-9012 Houston\n", + "4 Eve 45 567-89-0123 Phoenix\n", + "5 Frank 50 678-90-1234 Philadelphia\n", + "6 Grace 55 789-01-2345 San Antonio\n", + "7 Hannah 60 890-12-3456 San Diego\n", + "8 Isaac 65 901-23-4567 Dallas\n", + "9 Jack 70 123-45-5789 San Jose\n" + ] + } + ], + "source": [ + "# generate dataframe with ten people wih random ages, social security numbers, ages, cities, and sex:\n", + "df = pd.DataFrame({\n", + " 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', \n", + " 'Grace', 'Hannah', 'Isaac', 'Jack'],\n", + " 'Age': [25, 30, 35, 40, 45, 50, 55, 60, 65, 70],\n", + " 'SSN': ['123-45-6789', '234-56-7890', '345-67-8901', '456-78-9012', \n", + " '567-89-0123', '678-90-1234', '789-01-2345', '890-12-3456', \n", + " '901-23-4567', '123-45-5789'],\n", + " 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', \n", + " 'Philadelphia', 'San Antonio', 'San Diego', 'Dallas', 'San Jose'],\n", + "})\n", + "print(df)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/titaninc.csv\")\n", + "# Note that by default, an arbitrary numerical index is assigned to the rows.\n", + "# That default index would match exactly with the numeric address of each row, \n", + "# so it is not useful for this example. \n", + "# We instead set the passenger ID as the index - loc refers to this, and iloc \n", + "# refers to the literal numerical address of each row. \n", + "df = df.set_index('PassengerId')" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedPassId
PassengerId
103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS1
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C2
313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS3
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S4
\n", + "
" + ], + "text/plain": [ + " Survived Pclass \\\n", + "PassengerId \n", + "1 0 3 \n", + "2 1 1 \n", + "3 1 3 \n", + "4 1 1 \n", + "\n", + " Name Sex Age \\\n", + "PassengerId \n", + "1 Braund, Mr. Owen Harris male 22.0 \n", + "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", + "3 Heikkinen, Miss. Laina female 26.0 \n", + "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", + "\n", + " SibSp Parch Ticket Fare Cabin Embarked PassId \n", + "PassengerId \n", + "1 1 0 A/5 21171 7.2500 NaN S 1 \n", + "2 1 0 PC 17599 71.2833 C85 C 2 \n", + "3 0 0 STON/O2. 3101282 7.9250 NaN S 3 \n", + "4 1 0 113803 53.1000 C123 S 4 " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(4)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So lets print row number 2 using iloc, and the passenger with PassengerId 2 using loc:" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loc:\n", + " Cumings, Mrs. John Bradley (Florence Briggs Thayer)\n", + "iloc:\n", + " Heikkinen, Miss. Laina\n" + ] + } + ], + "source": [ + "print('loc:\\n', df.loc[2]['Name'])\n", + "print('iloc:\\n', df.iloc[2]['Name'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### loc selectoin of rows and columns\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### iloc selection of rows and columns\n", + "iloc can multiple rows and columns by their address and slices of rows and columns:\n", + "\n", + "* **Multiple rows**: `df.iloc[[2,3,4]]\n", + "* **Multiple rows and cols**: `df.iloc[[2,3], [0,1,2]]\n", + "* **Slice of rows**:\n", + " * `df.iloc[2:5]`\n", + " * `df.iloc[:5]`\n", + "* **slice of rows and cols**: `df.iloc[1:3, 1:4]`\n", + "\n", + "A simple example of use of this might be if I wanted to split my data into a training set and a testing set for some machine learning prediction algorithm. I would randomize order of the data, then select 70% of the rows for training and 30% for testing:" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "# Ramdomize order of the rows\n", + "df_randomized = df.sample(frac=1)\n", + "\n", + "# figure ou thow many rows we need:\n", + "training_size = int(len(df_randomized) * 0.7)\n", + "testing_size = len(df_randomized) - training_size\n", + "\n", + "# split the data\n", + "df_trianing = df_randomized.iloc[:training_size]\n", + "df_testing = df_randomized.iloc[training_size:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*\n", + "Use iloc to show these views of the titanic passengers:\n", + "* The 4th through 6th passengers\n", + "* Even numbered passenger rows (not even PassengerId) and columns 1:4." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, From 6080143aebad1526a29b1929a6c6e65287f7e99a Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 3 Sep 2024 21:30:13 -0700 Subject: [PATCH 087/163] content --- D-Pandas.ipynb | 467 ++++++++++++++++++++++++------------------------- 1 file changed, 226 insertions(+), 241 deletions(-) diff --git a/D-Pandas.ipynb b/D-Pandas.ipynb index 65f53ff..35a2f2b 100644 --- a/D-Pandas.ipynb +++ b/D-Pandas.ipynb @@ -377,29 +377,24 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Name Age SSN City\n", - "0 Alice 25 123-45-6789 New York\n", - "1 Bob 30 234-56-7890 Los Angeles\n", - "2 Charlie 35 345-67-8901 Chicago\n", - "3 David 40 456-78-9012 Houston\n", - "4 Eve 45 567-89-0123 Phoenix\n", - "5 Frank 50 678-90-1234 Philadelphia\n", - "6 Grace 55 789-01-2345 San Antonio\n", - "7 Hannah 60 890-12-3456 San Diego\n", - "8 Isaac 65 901-23-4567 Dallas\n", - "9 Jack 70 123-45-5789 San Jose\n" + " Name Age City\n", + "SSN \n", + "123-45-6789 Alice 25 New York\n", + "234-56-7890 Bob 30 Los Angeles\n", + "345-67-8901 Charlie 35 Chicago\n", + "456-78-9012 David 40 Houston\n", + "567-89-0123 Eve 45 Phoenix\n" ] } ], "source": [ - "# generate dataframe with ten people wih random ages, social security numbers, ages, cities, and sex:\n", "df = pd.DataFrame({\n", " 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', \n", " 'Grace', 'Hannah', 'Isaac', 'Jack'],\n", @@ -410,7 +405,59 @@ " 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', \n", " 'Philadelphia', 'San Antonio', 'San Diego', 'Dallas', 'San Jose'],\n", "})\n", - "print(df)" + "df = df.set_index('SSN')\n", + "print(df.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we set the index of our dataframe to the 'SSN' column, we can use loc to print rows with a specific SSN, or lists of SSNs:" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A single row:\n", + " Name Charlie\n", + "Age 35\n", + "City Saskatoon\n", + "Name: 345-67-8901, dtype: object\n", + "A list of rows by SSN:\n", + " Age City\n", + "SSN \n", + "345-67-8901 35 Saskatoon\n", + "456-78-9012 40 Houston\n", + "A range of rows by SSN:\n", + " SSN\n", + "345-67-8901 Saskatoon\n", + "456-78-9012 Houston\n", + "567-89-0123 Phoenix\n", + "Name: City, dtype: object\n" + ] + } + ], + "source": [ + "print('A single row:\\n', \n", + " df.loc['345-67-8901'])\n", + "print('A list of rows by SSN and a slice of columns from Age to City:\\n', \n", + " df.loc[['345-67-8901','456-78-9012'], 'Age':'City'])\n", + "print('A range of rows by SSN:\\n',\n", + " df.loc['345-67-8901':'567-89-0123', 'City'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can include a column name to print specific values or to set them:" ] }, { @@ -419,200 +466,184 @@ "metadata": {}, "outputs": [], "source": [ - "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/titaninc.csv\")\n", - "# Note that by default, an arbitrary numerical index is assigned to the rows.\n", - "# That default index would match exactly with the numeric address of each row, \n", - "# so it is not useful for this example. \n", - "# We instead set the passenger ID as the index - loc refers to this, and iloc \n", - "# refers to the literal numerical address of each row. \n", - "df = df.set_index('PassengerId')" + "some_ssn = '345-67-8901'\n", + "print(f'{some_ssn} lives in:', df.loc[some_ssn, 'City'])\n", + "df.loc[some_ssn, 'City'] = 'Saskatoon'\n", + "print('Or was it:', df.loc[some_ssn, 'City'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "A few people have moved, please update their addresses:\n", + "* People with SSNs '678-90-1234' and '789-01-2345' didn't pay their taxes and are singing the blues in Folsom. \n", + "* People with SSNs '890-12-3456', '901-23-4567', and '123-45-5789' are retiring and moved to Palm Beach." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### loc selection of rows and columns\n", + "Rather than selecting by index value with loc, we can use iloc to select by row address, like 0, 1 or 2, a list of addresses, [1, 2, 3], or a range of addresses, [2:6]. And same for the columns returned. A few examples:" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 72, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedPassId
PassengerId
103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS1
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C2
313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS3
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S4
\n", - "
" - ], - "text/plain": [ - " Survived Pclass \\\n", - "PassengerId \n", - "1 0 3 \n", - "2 1 1 \n", - "3 1 3 \n", - "4 1 1 \n", - "\n", - " Name Sex Age \\\n", - "PassengerId \n", - "1 Braund, Mr. Owen Harris male 22.0 \n", - "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", - "3 Heikkinen, Miss. Laina female 26.0 \n", - "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", - "\n", - " SibSp Parch Ticket Fare Cabin Embarked PassId \n", - "PassengerId \n", - "1 1 0 A/5 21171 7.2500 NaN S 1 \n", - "2 1 0 PC 17599 71.2833 C85 C 2 \n", - "3 0 0 STON/O2. 3101282 7.9250 NaN S 3 \n", - "4 1 0 113803 53.1000 C123 S 4 " - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "Row 0:\n", + " Name Alice\n", + "Age 25\n", + "City New York\n", + "Name: 123-45-6789, dtype: object\n", + "\n", + "Rows 2 and 5 and Age column:\n", + " SSN\n", + "345-67-8901 35\n", + "678-90-1234 50\n", + "Name: Age, dtype: int64\n", + "\n", + "Rows 2:6 and columns 0 and 1 using slices:\n", + " Name Age\n", + "SSN \n", + "345-67-8901 Charlie 35\n", + "456-78-9012 David 40\n", + "567-89-0123 Eve 45\n", + "678-90-1234 Frank 50\n", + "789-01-2345 Grace 55\n" + ] } ], "source": [ - "df.head(4)" + "print('Row 0:\\n', \n", + " df.iloc[0])\n", + "print('\\nRows 2 and 5 and Age column:\\n', \n", + " df.iloc[[2,5], 1])\n", + "print('\\nRows 2:6 and columns 0 and 1 using slices:\\n', \n", + " df.iloc[2:7, :2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "So lets print row number 2 using iloc, and the passenger with PassengerId 2 using loc:" + "\n", + "Just like with loc, we can assign values to rows and columns selected using .loc, and we can capture those selections in new dataframes as needed. \n", + "\n", + "Also notice that the SSN index is shown... if you do a .reset_index, you'd instead see a new numerical index instead of the SSNs. \n", + "We'll look more at the index below.\n", + "\n", + "#### *Exercise*\n", + "Studies have shown that older people tend to be more fun than younger people. \n", + "* Use iloc to creat two new dataframes called 'top_five' and 'bottom_five' from the top and bottom five rows from 'df'. \n", + "* Calculate the average age of each group and determine which group is likely to be the most fun! You can compute the average of a column using .mean()... something like foo['col_name'].mean(). \n", + "\n", + "Do the cities that each group of people live in corroborate the results of the study, or is this silly?" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using .iterrows() to iterate over rows\n", + ".iterrows() returns an iterator that we can pair with a for loop to look at each row one at a time. This isn't in the spirit of pandas, which would prefer that we do something to all of the rows at the same time, but it can be very useful. " + ] + }, + { + "cell_type": "code", + "execution_count": 94, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "loc:\n", - " Cumings, Mrs. John Bradley (Florence Briggs Thayer)\n", - "iloc:\n", - " Heikkinen, Miss. Laina\n" + "Row_index: 0\n", + "Alice lives in New York and is 25 years old.\n", + "We can use loc to get the name from the same row: Alice was here\n", + "\n", + "Row_index: 1\n", + "Bob lives in Los Angeles and is 30 years old.\n", + "We can use loc to get the name from the same row: Bob\n", + "\n", + "Row_index: 2\n", + "Charlie lives in Saskatoon and is 35 years old.\n", + "We can use loc to get the name from the same row: Charlie\n", + "\n", + "Row_index: 3\n", + "David lives in Houston and is 40 years old.\n", + "We can use loc to get the name from the same row: David\n", + "\n", + "Row_index: 4\n", + "Eve lives in Phoenix and is 45 years old.\n", + "We can use loc to get the name from the same row: Eve\n", + "\n", + "Row_index: 5\n", + "Frank lives in Philadelphia and is 50 years old.\n", + "We can use loc to get the name from the same row: Frank\n", + "\n", + "Row_index: 6\n", + "Grace lives in San Antonio and is 55 years old.\n", + "We can use loc to get the name from the same row: Grace\n", + "\n", + "Row_index: 7\n", + "Hannah lives in San Diego and is 60 years old.\n", + "We can use loc to get the name from the same row: Hannah\n", + "\n", + "Row_index: 8\n", + "Isaac lives in Dallas and is 65 years old.\n", + "We can use loc to get the name from the same row: Isaac\n", + "\n", + "Row_index: 9\n", + "Jack lives in San Jose and is 70 years old.\n", + "We can use loc to get the name from the same row: Jack\n", + "\n" ] } ], "source": [ - "print('loc:\\n', df.loc[2]['Name'])\n", - "print('iloc:\\n', df.iloc[2]['Name'])" + "for row_index, row_vals in df.iterrows():\n", + " # print out the name, city, and age of the person in this row:\n", + " # print(row[1]['Name'], 'lives in', row[1]['City'], 'and is', row[1]['Age'], 'years old.')\n", + " # the [1] is \n", + " print('Row_index:', row_index)\n", + " print(row_vals['Name'], 'lives in', row_vals['City'], 'and is', row_vals['Age'], 'years old.')\n", + " \n", + " if row_vals['Name'].startswith('A'):\n", + " df.loc[row_index, 'Name'] = df.loc[row_index, 'Name'] + ' was here'\n", + " \n", + " print('We can use loc to get the name from the same row:', df.loc[row_index, 'Name'])\n", + " print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### loc selectoin of rows and columns\n" + "#### *Exercise*\n", + "Use .reset_index() on the df and then iterrows again to see what is changed. " ] }, { @@ -626,37 +657,38 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### iloc selection of rows and columns\n", - "iloc can multiple rows and columns by their address and slices of rows and columns:\n", - "\n", - "* **Multiple rows**: `df.iloc[[2,3,4]]\n", - "* **Multiple rows and cols**: `df.iloc[[2,3], [0,1,2]]\n", - "* **Slice of rows**:\n", - " * `df.iloc[2:5]`\n", - " * `df.iloc[:5]`\n", - "* **slice of rows and cols**: `df.iloc[1:3, 1:4]`\n", - "\n", - "A simple example of use of this might be if I wanted to split my data into a training set and a testing set for some machine learning prediction algorithm. I would randomize order of the data, then select 70% of the rows for training and 30% for testing:" + "## The Dataframe Index and why it's important" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "# Ramdomize order of the rows\n", - "df_randomized = df.sample(frac=1)\n", - "\n", - "# figure ou thow many rows we need:\n", - "training_size = int(len(df_randomized) * 0.7)\n", - "testing_size = len(df_randomized) - training_size\n", - "\n", - "# split the data\n", - "df_trianing = df_randomized.iloc[:training_size]\n", - "df_testing = df_randomized.iloc[training_size:]" + "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/titaninc.csv\")\n", + "# Note that by default, an arbitrary numerical index is assigned to the rows.\n", + "# That default index would match exactly with the numeric address of each row, \n", + "# so it is not useful for this example. \n", + "# We instead set the passenger ID as the index - loc refers to this, and iloc \n", + "# refers to the literal numerical address of each row. \n", + "df = df.set_index('PassengerId')" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -778,53 +810,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Creating a Dataframe\n", - "Just skim over this for the general idea on how it works, and come back to each method for importing data as you need it. \n", - "\n", - "## Empty Dataframe\n", - "Why would we want an empty dataframe? I think it's generally not needed... but maybe there's a good case for starting with an empty df... \n", - "\n", - " df = pd.DataFrame()\n", - "\n", - "## From a CSV file\n", - "\n", - " df = pd.read_csv('data.csv')\n", - "\n", - "## From an Excel file\n", - "The sheet name is only needed if we have multiple sheets in the .xlsx.\n", - "\n", - " df = pd.read_excel('data.xlsx', sheet_name='Sheet1')\n", - "\n", - "## From a list of lists or tuples\n", - "We need to specify the column names in this case:\n", - "\n", - " data = [[1, 2], [3, 4], [5, 6]]\n", - " df = pd.DataFrame(data, columns=['A', 'B'])\n", - "\n", - "## From a dictionary \n", - "The dictionary keys are the **column** names, and the each list is a column of data. \n", - "\n", - " data = {'A': [1, 2, 3], 'B': [4, 5, 6]}\n", - " df = pd.DataFrame(data)\n", - "\n", - "## From a database\n", - "Note that a database connection, called \"conn\" here, is a pretty standard thing. You can create a connection to many database types and pass the connectin and query to pd.read_sql_query and it will just work. Sqlite3 is a file based database that doesn't require a server to host it. \n", - "\n", - " import sqlite3\n", - "\n", - " conn = sqlite3.connect('database.db')\n", - " df = pd.read_sql_query('SELECT * FROM table_name', conn)\n", - "\n", - "## From an html table\n", - "Note that you can also generate html tables from dataframes... \n", - "\n", - "\n" - ] - }, { "cell_type": "markdown", "metadata": {}, From 1b352f532c7277ab65d89d3f2065d4ad434e322b Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 4 Sep 2024 15:58:08 -0700 Subject: [PATCH 088/163] update dates --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 4e627d1..f45d097 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,8 @@ We have a bunch of coureswork ready to use, including: See the Notebooks list below for a more detailed list. ## Current Schedule: -* Monday Aug 26th 4-5PM -* Thursday Aug 29th 4:30-6:30PM * Wednesday Sep 4th 4-5PM -* TBD (probably not) Sep 11th and 18th +* NO WORKSHOP on Sep 11th and 18th * Wednesday Sep 25th 4-5PM * Wednesday Oct 2nd 4-5PM * Each wednesday from 4-5PM ongoing. From cb3073a7f8327c8a1cf9df0d10f2a4514b9d7ae8 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 15 Sep 2024 16:31:55 -0700 Subject: [PATCH 089/163] pandas work --- D1-Pandas_Example.ipynb => D0-Pandas_Example.ipynb | 0 D-Pandas.ipynb => D1-Data_Importing_and_Selection.ipynb | 0 D2-Data_Cleaning.ipynb | 0 D3-Pandas_Graphing.ipynb | 0 D2-Advanced_Pandas.ipynb => D4-Advanced_Pandas.ipynb | 6 ++++-- E-Writing_Scripts.ipynb | 2 +- 6 files changed, 5 insertions(+), 3 deletions(-) rename D1-Pandas_Example.ipynb => D0-Pandas_Example.ipynb (100%) rename D-Pandas.ipynb => D1-Data_Importing_and_Selection.ipynb (100%) create mode 100644 D2-Data_Cleaning.ipynb create mode 100644 D3-Pandas_Graphing.ipynb rename D2-Advanced_Pandas.ipynb => D4-Advanced_Pandas.ipynb (90%) diff --git a/D1-Pandas_Example.ipynb b/D0-Pandas_Example.ipynb similarity index 100% rename from D1-Pandas_Example.ipynb rename to D0-Pandas_Example.ipynb diff --git a/D-Pandas.ipynb b/D1-Data_Importing_and_Selection.ipynb similarity index 100% rename from D-Pandas.ipynb rename to D1-Data_Importing_and_Selection.ipynb diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/D2-Advanced_Pandas.ipynb b/D4-Advanced_Pandas.ipynb similarity index 90% rename from D2-Advanced_Pandas.ipynb rename to D4-Advanced_Pandas.ipynb index 55ca851..f98ad4f 100644 --- a/D2-Advanced_Pandas.ipynb +++ b/D4-Advanced_Pandas.ipynb @@ -10,9 +10,11 @@ "\n", "## Wide Format vs Long Format\n", "\n", - "## .loc and .iloc\n", - "\n", "## stack, unstack, and pivot\n", + "\n", + "## where\n", + "\n", + "## interpolation\n", "\n" ] }, diff --git a/E-Writing_Scripts.ipynb b/E-Writing_Scripts.ipynb index 161abcb..29e31b7 100644 --- a/E-Writing_Scripts.ipynb +++ b/E-Writing_Scripts.ipynb @@ -258,7 +258,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From 5a85ef747047510a86bfdf7be2607664535392ec Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 17 Sep 2024 11:01:02 -0700 Subject: [PATCH 090/163] add calories data --- SAMPLE_DATA/README.md | 22 +++ SAMPLE_DATA/pulse_calories_modified.csv | 170 ++++++++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 SAMPLE_DATA/README.md create mode 100644 SAMPLE_DATA/pulse_calories_modified.csv diff --git a/SAMPLE_DATA/README.md b/SAMPLE_DATA/README.md new file mode 100644 index 0000000..dca9195 --- /dev/null +++ b/SAMPLE_DATA/README.md @@ -0,0 +1,22 @@ + +Sources for data in this directory: +* titanic.csv: https://www.kaggle.com/c/titanic/ +* iris.csv: +* pulse_calories_modified.csv: modified from https://www.kaggle.com/datasets/vivekbaaganps/maxpulse-calories +* AAPL, GME, GOOG, NVDA Historycal data - yahoo finance. + +Notes on where USGS stores data: +Aquarious TS - time series +* moored data +* fixed stations on interval over time +* nwis.gov sacramento river nwis, grizzley bay nwis +* requires a station number + +Aquarious Samples / AQS +* Launched in March +* water data for the nation, wdfn +* discrete data + +ScienceBase +* Mapping data +* Stuff that doesn't fit in the above two. diff --git a/SAMPLE_DATA/pulse_calories_modified.csv b/SAMPLE_DATA/pulse_calories_modified.csv new file mode 100644 index 0000000..bfead9b --- /dev/null +++ b/SAMPLE_DATA/pulse_calories_modified.csv @@ -0,0 +1,170 @@ +Duration,Pulse,Maxpulse,Calories +60,110,130,409.1 +60,117,145,479.0 +60,103,135,340.0 +45,109,275,282.4 +45,117,148,406.0 +60,102,127,300.0 +60,110,136,374.0 +45,104,134,253.3 +,109,133,195.1 +60,98,124,269.0 +60,103,147,329.3 +60,100,120,250.7 +60,106,128,345.3 +60,104,132,379.3 +6000,98,123,275.0 +60,98,120,215.2 +60,100,120,300.0 +45,90,112, +60,103,123,323.0 +45,97,125,243.0 +60,108,131,364.2 +45,100,119,282.0 +60,130,101,300.0 +45,105,132,246.0 +60,102,126,334.5 +60,100,320,250.0 +60,92,118,241.0 +60,103,132, +60,100,132,280.0 +60,102,129,380.3 +60,92,115,243.0 +45,90,112,180.1 +60,101,124,299.0 +60,93,113,223.0 +60,107,136,361.0 +60,114,140,415.0 +60,102,127,300.0 +60,100,120,300.0 +60,100,120,300.0 +45,104,129,266.0 +45,90,112,180.1 +60,98,126,286.0 +60,100,122,329.4 +60,111,138,400.0 +60,111,131,397.0 +60,99,119,273.0 +60,109,153,387.6 +45,111,136,300.0 +45,108,129,298.0 +60,111,139,397.6 +60,107,136,380.2 +80,123,146,643.1 +60,106,130,263.0 +60,118,151,486.0 +30,136,175,238.0 +60,121,146,450.7 +60,118,121,413.0 +45,115,144,305.0 +20,153,172,226.4 +45,123,152,321.0 +210,108,160,1376.0 +160,110,137,1034.4 +160,109,135,853.0 +45,118,141,341.0 +20,110,130,131.4 +180,90,130,800.4 +150,105,135,873.4 +150,107,130,816.0 +20,106,136,110.4 +300,108,143,1500.2 +150,97,129,1115.0 +60,109,153,387.6 +90,100,127,700.0 +150,97,127,953.2 +45,114,146,304.0 +90,98,125,563.2 +45,105,134,251.0 +45,110,141,300.0 +120,100,130,500.4 +270,100,131,1729.0 +30,159,182,319.2 +45,149,169,344.0 +30,103,139,151.1 +120,100,130,500.0 +45,100,120,225.3 +30,151,170,300.0 +45,102,136,234.0 +120,100,157,1000.1 +45,129,103,242.0 +20,83,107,50.3 +180,101,127,600.1 +45,107,137, +30,90,107,105.3 +15,80,100,50.5 +20,150,171,127.4 +20,151,168,229.4 +30,95,128,128.2 +25,152,168,244.2 +30,109,131,188.2 +90,93,124,604.1 +20,95,112,77.7 +90,90,110,500.0 +90,90,100,500.0 +90,90,100,500.4 +30,92,408,92.7 +30,93,128,124.0 +180,90,120,800.3 +30,90,120,86.2 +90,90,120,500.3 +210,137,184,1860.4 +60,102,124,325.2 +45,107,124,275.0 +15,124,139,124.2 +45,100,120,225.3 +60,108,131,367.6 +60,108,151,351.7 +60,116,141,443.0 +60,97,122,277.4 +60,105,125, +60,103,124,332.7 +30,112,137,193.9 +45,100,120,100.7 +60,119,169,336.7 +60,107,127,344.9 +60,111,151,368.5 +60,98,122,271.0 +60,97,124,275.3 +60,109,127,382.0 +90,99,125,466.4 +60,114,151,384.0 +60,104,134,342.5 +60,107,138,357.5 +60,103,133,335.0 +60,106,132,327.5 +60,103,136,339.0 +20,,156,189.0 +45,117,143,317.7 +45,115,137,318.0 +45,113,138,308.0 +20,141,162,222.4 +60,108,135,390.0 +60,97,127, +45,100,120,250.4 +45,122,149,335.4 +60,136,170,470.2 +45,106,126,270.8 +60,107,,400.0 +60,112,146,361.9 +30,103,127,185.0 +60,110,150,409.4 +60,185,134,343.0 +60,109,129,353.2 +60,109,138,374.0 +30,150,167,275.8 +60,105,128,328.0 +60,111,151,368.5 +60,97,131,270.4 +60,100,120,270.4 +60,114,150,382.8 +30,180,120,240.9 +30,85,120,250.4 +45,90,130,260.4 +45,95,130,270.0 +45,100,140,280.9 +60,105,140,290.8 +60,110,145,300.0 +60,-115,145,310.2 +75,120,150,320.4 +75,125,150,330.4 From 0593a56e5faa83a80991fa8796f8c458481c30bf Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 18 Sep 2024 16:30:14 -0700 Subject: [PATCH 091/163] content --- D0-Pandas_Example.ipynb | 59 +++++-- ...> D1-Pandas_Intro_and_Data_Selection.ipynb | 161 +++++++++++++----- D2-Data_Cleaning.ipynb | 154 +++++++++++++++++ D4-Advanced_Pandas.ipynb | 2 + 4 files changed, 320 insertions(+), 56 deletions(-) rename D1-Data_Importing_and_Selection.ipynb => D1-Pandas_Intro_and_Data_Selection.ipynb (86%) diff --git a/D0-Pandas_Example.ipynb b/D0-Pandas_Example.ipynb index db2efe4..c6be62d 100644 --- a/D0-Pandas_Example.ipynb +++ b/D0-Pandas_Example.ipynb @@ -4,13 +4,25 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section D1 - Pandas Example\n", + "# Section D0 - Pandas Example\n", "\n", - "Let's do some simple data analysis and presentatin with some plots. Nasa has this list of meteorites that we can use. It doesn't require much cleaning/prep to use, so shouldn't take too many steps to make some nice plots and make some observtions.\n", + "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to two dimensoinal data, often including measurements over time - time series - or collections of things/events. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", "\n", - "First thing is importing. We use requests to query the url, get the json data, and convert it to a dataframe. A few useful funtions for viewing data in a dataframe are .head(), .tail(), and .info(). \n", + "**Pandas** are playfull and memorable, just like **Pandas**!\n", "\n", - "There's more info on this dataset here: https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh/about_data" + "Pandas has two types of objects, **DataFrames** and **Series**. A dataframe has rows and columns, like a spreadsheet - two dimensional. A single row or column from a dataframe is a Series. If we select a single column from a DataFrame, we get a series, a single dimensional object, and a series can be inserted into a df column. \n", + "\n", + "By convention, we'll import pandas as \"pd\" to save us some typing.\n", + "\n", + " import pandas as pd\n", + "\n", + "**This notebook has an example workflow of importing some data into a pandas dataframe and then graphing it** to get a feel for how things work with pandas. Don't worry if not everything here makes sense. **The D1 and following notebooks will go through everything in detail.**\n", + "\n", + "So let's see what we dan do with a list of metiorites from Nasa. The data is is pretty clean (no missing values, bad data, etc), so it doesn't require much cleaning/prep to use. It shouldn't take too many steps to make some nice plots and make some observtions.\n", + "\n", + "First thing is importing. We use requests to query the url, get the json data, and convert it to a **dataframe**. A few useful funtions for viewing data in a dataframe are .head(), .tail(), and .info(). \n", + "\n", + "*There's more info on this meteorite dataset here: https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh/about_data*" ] }, { @@ -33,12 +45,10 @@ "Great, so we have geolocation, mass, and datetime info for each meteor. Let's try graphing mass per date to see if there's any obvious trend. \n", "\n", "We need each column to be the correct datatype before we can generate a plot.\n", - "* To simplify the datetime 'year' column, I use a string operation to split it on the 'T' ang take just the year, month and day. Then we can use pd.to_datetime do convert it to a datetime object by passing in the format to use to convert it. \n", + "* To simplify the datetime 'year' column, we use a string operation to split it on the 'T' ang take just the year, month and day. Then we can use pd.to_datetime do convert it to a datetime object by passing in the format to use to convert it. Info on datetime conversion: https://www.w3schools.com/python/gloss_python_date_format_codes.asp\n", "* We need the mass to be a numeric value so we overwrite the column with itself converted using pd.to_numeric. Similarly, there ar pd.to_int, pd.to_float, pd.to_string operatoins that we might want to use in other cases. \n", "\n", - "Finally, pandas has a built in plot function that can generate a bunch of different graph types. Setting 'logy' says to graph the y axis in log scale. Try setting it and see what happens to the data points and y axis scale. \n", - "\n", - "https://www.w3schools.com/python/gloss_python_date_format_codes.asp" + "Finally, pandas has a built in plot function that can generate a bunch of different graph types. Setting 'logy' says to graph the y axis in log scale. **Try changing logy between True/False and see what happens to the data points and y axis scale.**" ] }, { @@ -60,16 +70,37 @@ "source": [ "That's neat, but doesn't show much of a trend except that we probably have better records of meteorites found since the late 1800s. Maybe it would be interesting to see where on earth we are finding the meteorites. \n", "\n", - "Let's plot them on a map of the earth. First thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. Try printing world.head() to see some of the actual data. \n", + "Let's plot them on a map of the earth. First thing for that is to get a map of the earth. We can use some geopandas stuff for that. Below, \"world\" is a dataframe with rows for each landmass on a map. **Try printing world.head() to see some of the actual data.** The geometry column has a polygon with a list of points making the shape of each continent.\n", "\n", "https://geopandas.org/en/stable/docs/user_guide.html" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import geopandas\n", "from geodatasets import get_path\n", @@ -87,9 +118,9 @@ "\n", "To combine plots, we initialize an axis that we pass to the .plot function when we call it for the world and our meteorite dataframes so that the can draw themselves on the same graph. 'ax=ax' looks a littele weird. We'r passing a variable named ax to an argument with the same name. It's just sort of convention to do it this way. Maybe it would be better to use axis for the variable name and pass that to the plot function. \n", "\n", - "We need to convert our reclong and reclat (longitude and latitude) to numeric values to plot them, so use call .astype(float) to do a type conversion from string.\n", + "Often when we import data, numeric columns will be imported as string data, so we need to convert the reclong and reclat (longitude and latitude) to numeric values to plot them. **We use .astype(float) to do a type conversion from string to float.**\n", "\n", - "You can change the colormap - if you put in a bad value, it'll print a bunch you can try in the error message. And the norm= is to convert the mass to log scale here so that we get nice colors for all of the meteorite masses. " + "**Try changing the colormap** - if you put in a bad value, it'll print a bunch of valid color maps you can try in the error message. Also note that the norm=... is to convert the mass to log scale here so that we get nice colors for all of the meteorite masses. " ] }, { @@ -182,7 +213,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/D1-Data_Importing_and_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb similarity index 86% rename from D1-Data_Importing_and_Selection.ipynb rename to D1-Pandas_Intro_and_Data_Selection.ipynb index 35a2f2b..81b292d 100644 --- a/D1-Data_Importing_and_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -4,13 +4,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section D - Pandas\n", - "\n", - "**Topics:** Pandas basics, includeng row and column selections, index, column names, data types and type-casting, and a bit more. \n", - "\n", - "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to two dimensoinal data, often including measurements over time - time series - or collections of things/events. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", - "\n", - "**Pandas** are playfull and memorable, just like **Pandas**!\n", + "# Section D1 - Pandas Data Import and Selection\n", + "**Index**\n", + "* Creating a Dataframe\n", + "* Selecting Columns by Name\n", + "* Selecting Rows and Columns with loc and iloc\n", + "* Selecting Rows with a mask\n", + "* Selecting Rows with .where\n", + "* Using .iterrows\n", "\n", "Pandas has two types of objects, **DataFrames** and **Series**. A dataframe has rows and columns, like a spreadsheet - two dimensional. A single row or column from a dataframe is a Series. If we select a single column from a DataFrame, we get a series, a single dimensional object, and a series can be inserted into a df column. \n", "\n", @@ -377,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -479,7 +480,8 @@ "#### *Exercise*:\n", "A few people have moved, please update their addresses:\n", "* People with SSNs '678-90-1234' and '789-01-2345' didn't pay their taxes and are singing the blues in Folsom. \n", - "* People with SSNs '890-12-3456', '901-23-4567', and '123-45-5789' are retiring and moved to Palm Beach." + "* People with SSNs '890-12-3456', '901-23-4567', and '123-45-5789' are retiring and moved to Palm Beach.\n", + "How would you do each of these one at a time with a loop, or all at once in a single operation? " ] }, { @@ -657,14 +659,65 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## The Dataframe Index and why it's important" + "## Selecting rows with a mask\n", + "A mask is a way to say \"give me the rows where this condition is true.\" In pandas, you create the mask by writing a conditional statement resulting in a list of true/false values. Each true/false corresponds with a row in the dataframe. Applying the mask gives you only the rows with a corresponding true value.\n", + "\n", + "We'll look at conditional statements and then a mask example.\n", + "\n", + "### Conditional statements\n", + "Here are a few examples of conditional statements:\n", + "* Their age is greater than 30:\n", + " * `df['Age'] > 30`\n", + "* Their name contains the letter 'a' and they are older than 40:\n", + " * `df['Name'].str.lower().str.contains('a') & (df['Age'] > 40)`\n", + "* They are older than 50 or younger than 30:\n", + " * `(df['Age'] > 50) | (df['Age'] <= 30)`\n", + "\n", + "Note that rather than \"and\" and \"or\" in regular python code, we use \"&\" and \"|\" when comparing pandas series. These are python bitwise operators. \n", + "\n", + "* Bitwise And: `a & b`\n", + "* Bitwise Exclusive Or: `a ^ b`\n", + "* Bitwise Inversion (not): `~ a`\n", + "* Bitwise Or: `a | b`\n", + "\n", + "And when using & and |, we need to put parenthesees around the other expressions to make sure they are evaluated before the bitwise operators. \n", + "* This will error:\n", + " * `df['Age'] > 50 | df['Age'] <= 30`\n", + "* This is correct:\n", + " * `(df['Age'] > 50) | (df['Age'] <= 30)`\n", + "\n", + "https://introcs.cs.princeton.edu/python/appendix_precedence/#:~:text=Order%20of%20Evaluation,the%20and%20or%20or%20operators.\n", + "https://docs.python.org/3/library/operator.html#mapping-operators-to-functions\n", + "\n", + "### Example use of a mask to select some rows:\n", + "Let's select all people/rows from our dataframe where their age is > 45:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "mask_over_45 = df['Age'] > 45\n", + "# mask_under_eq_45 = ~mask_over_45 # example of inverting/negating a mask\n", + "# mask_under_eq_45 = df['Age'] <= 45 # this is equivelant to the line above\n", + "df_over_45 = df[mask_over_45]\n", + "# df_over_45 = df[df['Age'] > 45] # this is equivelant to above.\n", + "print(mask_over_45)\n", + "print(df_over_45)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#" + "#### *Exercise*\n", + "Use conditional statements to make a mask and check .value_counts() on it to see how many people:\n", + "* Are older than 60\n", + "* Have social security numbers starting with '4'\n", + "* Live in Philatelphia or are named Hannah\n", + "* Do not live in Dallas" ] }, { @@ -672,31 +725,53 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [ - "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/titaninc.csv\")\n", - "# Note that by default, an arbitrary numerical index is assigned to the rows.\n", - "# That default index would match exactly with the numeric address of each row, \n", - "# so it is not useful for this example. \n", - "# We instead set the passenger ID as the index - loc refers to this, and iloc \n", - "# refers to the literal numerical address of each row. \n", - "df = df.set_index('PassengerId')" + "## Using .query to select rows\n", + ".query lets us use a sql like syntax to select rows. This is nice becaues it can be more readable than a conditional statement for a mask, it might be better to use a mask for cases like:\n", + "* Your column names have special characters\n", + "* You are generating your query/condition programatically\n", + "* You are using operations like .str.contains or other functions in your query.\n", + "\n", + "Documentation and a few good examples: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Name Age City\n", + "SSN \n", + "345-67-8901 Charlie 35 Chicago\n" + ] + } + ], + "source": [ + "filtered_df = df.query('Age > 30 and City == \"Chicago\"')\n", + "print(filtered_df)" + ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#### *Exercise*\n", - "Use iloc to show these views of the titanic passengers:\n", - "* The 4th through 6th passengers\n", - "* Even numbered passenger rows (not even PassengerId) and columns 1:4." + "## The Dataframe Index" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#" ] }, { @@ -704,7 +779,15 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/titaninc.csv\")\n", + "# Note that by default, an arbitrary numerical index is assigned to the rows.\n", + "# That default index would match exactly with the numeric address of each row, \n", + "# so it is not useful for this example. \n", + "# We instead set the passenger ID as the index - loc refers to this, and iloc \n", + "# refers to the literal numerical address of each row. \n", + "df = df.set_index('PassengerId')" + ] }, { "cell_type": "code", @@ -717,7 +800,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Iterating Over rows" + "#### *Exercise*\n", + "Use iloc to show these views of the titanic passengers:\n", + "* The 4th through 6th passengers\n", + "* Even numbered passenger rows (not even PassengerId) and columns 1:4." ] }, { @@ -725,28 +811,19 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "for row in df.iterrows():\n", - " print(row)" - ] + "source": [] }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "\n", - "## Type Conversions\n", - "**String to Numeric**\n", - "**String to Datetime**\n", - "**Datetime to Numeric**" - ] + "source": [] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, - "source": [ - "## String Operations" - ] + "outputs": [], + "source": [] }, { "cell_type": "markdown", diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb index e69de29..40ae992 100644 --- a/D2-Data_Cleaning.ipynb +++ b/D2-Data_Cleaning.ipynb @@ -0,0 +1,154 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section D2 - Data Cleaning with Pandas\n", + "\n", + "Sometimes you'll need to pre-process your data before you can analyze it or present it for analysis. A few scenarios:\n", + "* Excluding rows or columns with missing or invalid data:\n", + " * You have a dataset os several measurments made on many samples. Some of the samples don't have all measurements done, so you need to exclude them. You can use dropna to remove rows or columns that are missing the needed measurements. \n", + " * Some samples have negative values reported, but this is impossible and would have been the result of a transcription error. We can exclude these rows. \n", + "\n", + "* Interpolation:\n", + " * You have time series data collected at irregular intervals and need to interpolate it to a regular interval. \n", + " * You have spectoscopy data for many samples that are measured at regular but not precise wavelengths for each sample, and you need to interpolate each sample so the wavelengths all align.\n", + "* Filling Gaps in data\n", + " * You have time series data with small gaps - you dan forward fill, backward fill, \n", + "* Smoothing out noise in data\n", + " * It is common to use a rolling median to smooth out an analog signal - it might be noisy from second to second, but a rolling median over 20 seconds will smooth it. Often the noise is from the mesurement and not the sample, so the noise should be removed.\n", + " * If you have low frequency, e.g. tidal, data with regular high frequency noise in it, you can use a butterworth filter to exclude the high freqency signal (low pass filter) and preserve the signal you want to analyse. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Removing rows with missing data\n", + "We can use df.dropna() to drop rows or columns with NA values. NA is sort of like *None* in regular python. dropna takes an optional 'axix' argument. axis=0 is implied and means to drop rows with NA values. axis=1 will tell dropna to drop all columns with NA values." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DurationPulseMaxpulseCalories
060.0110.0130.0409.1
160.0117.0145.0479.0
\n", + "
" + ], + "text/plain": [ + " Duration Pulse Maxpulse Calories\n", + "0 60.0 110.0 130.0 409.1\n", + "1 60.0 117.0 145.0 479.0" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "df = pd.read_csv('https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/pulse_calories_modified.csv')\n", + "df.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "Use df.dropna() to remove rows wit mising vlaues for pulse, calories, or duration. Use df.info() before and after to verify changes to the numbers of rows. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# drop columns with missing values\n", + "d" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/D4-Advanced_Pandas.ipynb b/D4-Advanced_Pandas.ipynb index f98ad4f..c480c63 100644 --- a/D4-Advanced_Pandas.ipynb +++ b/D4-Advanced_Pandas.ipynb @@ -15,6 +15,8 @@ "## where\n", "\n", "## interpolation\n", + "\n", + "## groupby\n", "\n" ] }, From 5e2e017c5f65aca56ce030a6ff3b6fad83b15d7d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 18 Sep 2024 19:07:21 -0700 Subject: [PATCH 092/163] content --- D1-Pandas_Intro_and_Data_Selection.ipynb | 147 ++++++++++++++++++++--- 1 file changed, 127 insertions(+), 20 deletions(-) diff --git a/D1-Pandas_Intro_and_Data_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb index 81b292d..01b6cd5 100644 --- a/D1-Pandas_Intro_and_Data_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -4,15 +4,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section D1 - Pandas Data Import and Selection\n", + "# Section D1 - Pandas Intro and Data Selection\n", "**Index**\n", + "* General Info\n", "* Creating a Dataframe\n", "* Selecting Columns by Name\n", "* Selecting Rows and Columns with loc and iloc\n", - "* Selecting Rows with a mask\n", - "* Selecting Rows with .where\n", "* Using .iterrows\n", + "* Selecting Rows with a mask\n", + "* Selecting Rows with .query\n", "\n", + "## General Info\n", "Pandas has two types of objects, **DataFrames** and **Series**. A dataframe has rows and columns, like a spreadsheet - two dimensional. A single row or column from a dataframe is a Series. If we select a single column from a DataFrame, we get a series, a single dimensional object, and a series can be inserted into a df column. \n", "\n", "By convention, we'll import pandas as \"pd\" to save us some typing.\n", @@ -58,12 +60,14 @@ "\n", " df = pd.read_json(json_data, ...)\n", "\n", + "The json data would need to be structured as a dictionary of lists or a list of dictionaries, as described in the next two examples!\n", + "\n", "**Dictionary of Lists to DataFrame**" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -100,20 +104,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Name Age City\n", - "0 Alice 25 New York\n", - "1 Bob 30 Los Angeles\n", - "2 Charlie 35 Chicago\n" - ] - } - ], + "outputs": [], "source": [ "data = [\n", " {'Name': 'Alice', 'Age': 25, 'City': 'New York'},\n", @@ -268,6 +261,120 @@ "df.head()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## DataFrame Index and Columns\n", + "df.index and df.columns are identifiers for rows and columns of a dataframe. They can both be numeric or descriptive. It's common to have descriptive column names, and the have the index might start out matching the row numbers, but we can re-assign it to a column, like a primary-key, before we join two dataframes or similar operations between dataframes that reference the index. As we'll look at below, we can also use .iloc to access and modify rows based on their index and columns, so we should know how to set them.\n", + "set to a column that has a sort of primary key for each row of the data. \n", + "Let's create a new dataframe for this example:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " fruit color weight kg\n", + "0 apple red 0.20\n", + "1 banana yellow 0.30\n", + "2 cherry red 0.05\n", + "3 date brown 0.10\n" + ] + } + ], + "source": [ + "fruits = pd.DataFrame({'fruit': ['apple', 'banana', 'cherry', 'date'],\n", + " 'color': ['red', 'yellow', 'red', 'brown'],\n", + " 'weight kg': [0.2, 0.3, 0.05, 0.1]})\n", + "print(fruits)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Right now, the index matches the row numbers. Let's do a few manipulations of the index to see how that works:\n", + "* Change the index to the fruit column\n", + "* Modify the index after changing it. \n", + "* Reset the index back to numeric" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " fruit color weight kg\n", + "fruit \n", + "apple apple red 0.20\n", + "banana banana yellow 0.30\n", + "cherry cherry red 0.05\n", + "date date brown 0.10\n", + " fruit color weight kg\n", + "fruit \n", + "Apple apple red 0.20\n", + "Banana banana yellow 0.30\n", + "Cherry cherry red 0.05\n", + "Date date brown 0.10\n", + " fruit color weight kg\n", + "0 apple red 0.20\n", + "1 banana yellow 0.30\n", + "2 cherry red 0.05\n", + "3 date brown 0.10\n" + ] + } + ], + "source": [ + "fruits.index = fruits['fruit']\n", + "print(fruits)\n", + "fruits.index = fruits.index.str.capitalize()\n", + "print(fruits)\n", + "fruits = fruits.reset_index(drop=True)\n", + "print(fruits)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And let's do something similar with the columns:\n", + "* We'll capitalize the columns\n", + "* and replace any spaces in the column names with an underscore character" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Fruit Color Weight_kg\n", + "0 apple red 0.20\n", + "1 banana yellow 0.30\n", + "2 cherry red 0.05\n", + "3 date brown 0.10\n" + ] + } + ], + "source": [ + "fruits.columns = fruits.columns.str.capitalize()\n", + "fruits.columns = fruits.columns.str.replace(' ', '_')\n", + "print(fruits)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -479,8 +586,8 @@ "source": [ "#### *Exercise*:\n", "A few people have moved, please update their addresses:\n", - "* People with SSNs '678-90-1234' and '789-01-2345' didn't pay their taxes and are singing the blues in Folsom. \n", - "* People with SSNs '890-12-3456', '901-23-4567', and '123-45-5789' are retiring and moved to Palm Beach.\n", + "* People with SSNs '678-90-1234' and '789-01-2345' didn't pay their taxes and are singing the blues in 'Folsom'. \n", + "* People with SSNs '890-12-3456', '901-23-4567', and '123-45-5789' are retiring and moved to 'Palm Beach'.\n", "How would you do each of these one at a time with a loop, or all at once in a single operation? " ] }, @@ -737,7 +844,7 @@ "* You are generating your query/condition programatically\n", "* You are using operations like .str.contains or other functions in your query.\n", "\n", - "Documentation and a few good examples: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html" + "Documentation and a few good examples: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html. This shows an example with quoting a column name with a space in it. " ] }, { From 7abb65e8c95f8875636d78ee5718028d237f9fc4 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 21 Sep 2024 11:09:59 -0700 Subject: [PATCH 093/163] content --- D1-Pandas_Intro_and_Data_Selection.ipynb | 218 ++++++++--------------- D2-Data_Cleaning.ipynb | 135 ++++++++------ D4-Advanced_Pandas.ipynb | 4 + SAMPLE_DATA/pulse_calories_modified.csv | 2 + 4 files changed, 155 insertions(+), 204 deletions(-) diff --git a/D1-Pandas_Intro_and_Data_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb index 01b6cd5..0d591f3 100644 --- a/D1-Pandas_Intro_and_Data_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -38,6 +38,12 @@ " big_df = pd.concat(a_list_of_small_dataframes) # concatenate dataframes together\n", " ...and more\n", "\n", + "**A note regarding inplace operations** - Many pandas functions take an argument \"inplace=True/False\". Setting it to true means that the change will be made on the existing dataframe that your variable points to and the function will return None. Setting it to false (or omiting the option) means that the function will return a modified copy of the dataframe that you need to assign to your variable to see the changes. These are roughly equivelant:\n", + " \n", + " df = df.foo() # inplace=False is default\n", + " df.foo(inplace=True)\n", + "\n", + "\n", "## Creating a Dataframe\n", "We can create an empty dataframe:\n", "\n", @@ -141,12 +147,12 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# *We'll use this \"df\" for a few exercises below, so make sure to run this cell before continuing.*\n", - "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")\n", + "flowers = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")\n", "# You can also try saving iris.csv in the directory with your notebook and opening it from a local path." ] }, @@ -257,8 +263,8 @@ ], "source": [ "# Your code here. You can re-run the above cell if you mess up your dataframe.\n", - "# print(df....)\n", - "df.head()" + "# print(flowers....)\n", + "flowers.head()" ] }, { @@ -266,7 +272,7 @@ "metadata": {}, "source": [ "## DataFrame Index and Columns\n", - "df.index and df.columns are identifiers for rows and columns of a dataframe. They can both be numeric or descriptive. It's common to have descriptive column names, and the have the index might start out matching the row numbers, but we can re-assign it to a column, like a primary-key, before we join two dataframes or similar operations between dataframes that reference the index. As we'll look at below, we can also use .iloc to access and modify rows based on their index and columns, so we should know how to set them.\n", + "**df.index** and **df.columns** are identifiers for rows and columns of a dataframe. They can both be numeric or descriptive. It's common to have descriptive column names and an index matching the row numbers, but we can re-assign the index to a column, like a primary-key, before we join two dataframes or perform similar operations between dataframes that reference the index. As we'll look at below, we can also use .iloc to access and modify rows based on their index and columns, so we should know how to set them.\n", "set to a column that has a sort of primary key for each row of the data. \n", "Let's create a new dataframe for this example:" ] @@ -302,44 +308,23 @@ "Right now, the index matches the row numbers. Let's do a few manipulations of the index to see how that works:\n", "* Change the index to the fruit column\n", "* Modify the index after changing it. \n", - "* Reset the index back to numeric" + "* Reset the index back to numeric\n", + "\n", + "https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.set_index.html#pandas.DataFrame.set_index\n", + "https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reset_index.html#pandas.DataFrame.reset_index" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " fruit color weight kg\n", - "fruit \n", - "apple apple red 0.20\n", - "banana banana yellow 0.30\n", - "cherry cherry red 0.05\n", - "date date brown 0.10\n", - " fruit color weight kg\n", - "fruit \n", - "Apple apple red 0.20\n", - "Banana banana yellow 0.30\n", - "Cherry cherry red 0.05\n", - "Date date brown 0.10\n", - " fruit color weight kg\n", - "0 apple red 0.20\n", - "1 banana yellow 0.30\n", - "2 cherry red 0.05\n", - "3 date brown 0.10\n" - ] - } - ], + "outputs": [], "source": [ - "fruits.index = fruits['fruit']\n", + "fruits = fruits.set_index('fruit')\n", "print(fruits)\n", "fruits.index = fruits.index.str.capitalize()\n", "print(fruits)\n", - "fruits = fruits.reset_index(drop=True)\n", + "fruits = fruits.reset_index()\n", "print(fruits)" ] }, @@ -354,21 +339,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Fruit Color Weight_kg\n", - "0 apple red 0.20\n", - "1 banana yellow 0.30\n", - "2 cherry red 0.05\n", - "3 date brown 0.10\n" - ] - } - ], + "outputs": [], "source": [ "fruits.columns = fruits.columns.str.capitalize()\n", "fruits.columns = fruits.columns.str.replace(' ', '_')\n", @@ -396,7 +369,7 @@ "outputs": [], "source": [ "# a single column is a series object, so sepal_lenghts is a series.\n", - "sls = df['sepal_length']\n", + "sls = flowers['sepal_length']\n", "print('Some of the sepal lenghths are:\\n', sls)\n", "print('All the lenghts are:\\n', list(sls))" ] @@ -435,10 +408,10 @@ "metadata": {}, "outputs": [], "source": [ - "df['sepal_length_inches'] = df['sepal_length'] * 0.393701\n", + "flowers['sepal_length_inches'] = flowers['sepal_length'] * 0.393701\n", "\n", - "length_columns = sorted([c for c in df.columns if 'length' in c])\n", - "print('length comparison:\\n', df[length_columns])" + "length_columns = sorted([c for c in flowers.columns if 'length' in c])\n", + "print('length comparison:\\n', flowers[length_columns])" ] }, { @@ -458,17 +431,17 @@ "metadata": {}, "outputs": [], "source": [ - "df['width_difference'] = (df['sepal_width'] - df['petal_width']).abs()\n", + "flowers['width_difference'] = (flowers['sepal_width'] - flowers['petal_width']).abs()\n", "\n", "# Alternate ways of selecting and printing columns are commented out below:\n", "\n", - "# width_columns = df.columns[df.columns.str.contains('width')]\n", + "# width_columns = flowers.columns[df.columns.str.contains('width')]\n", "# width_columns = ['sepal_width', 'petal_width', 'width_difference']\n", - "width_columns = sorted([c for c in df.columns if 'width' in c])\n", + "width_columns = sorted([c for c in flowers.columns if 'width' in c])\n", "\n", "print('Widths:')\n", - "# print(df[['sepal_width', 'petal_width', 'width_difference']])\n", - "print(df[width_columns])" + "# print(flowers[['sepal_width', 'petal_width', 'width_difference']])\n", + "print(flowers[width_columns])" ] }, { @@ -871,46 +844,40 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## The Dataframe Index" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#" + "## Exporting files\n", + "If we want to output our data to a file, there are some built in tools to do this. For excel files, we need to make sure the \"openpyxl\" package is installed - this is the default engine that pandas uses to generate the file. \n", + "\n", + "### Single Sheet Excel\n", + "This is pretty simple, just using the to_excel function and giveng it a filename to write to:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: openpyxl in /home/dan/venv/lib/python3.12/site-packages (3.1.5)\n", + "Requirement already satisfied: et-xmlfile in /home/dan/venv/lib/python3.12/site-packages (from openpyxl) (1.1.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ - "df = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/titaninc.csv\")\n", - "# Note that by default, an arbitrary numerical index is assigned to the rows.\n", - "# That default index would match exactly with the numeric address of each row, \n", - "# so it is not useful for this example. \n", - "# We instead set the passenger ID as the index - loc refers to this, and iloc \n", - "# refers to the literal numerical address of each row. \n", - "df = df.set_index('PassengerId')" + "%pip install openpyxl\n", + "out_file = 'flowers.xlsx'\n", + "flowers.to_excel(out_file)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#### *Exercise*\n", - "Use iloc to show these views of the titanic passengers:\n", - "* The 4th through 6th passengers\n", - "* Even numbered passenger rows (not even PassengerId) and columns 1:4." + "### Multiple Sheets Excel\n", + "For a multi-sheet excel, we need to open a writer and write in each sheet. We use a with statement so the writer is closed automtically after we add our sheets:" ] }, { @@ -918,82 +885,43 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "out_file = 'all_data.xlsx'\n", + "sheets = {'flowers': flowers, 'fruits': fruits, 'df': df}\n", + "with pd.ExcelWriter(out_file) as writer:\n", + " for sheet_name, data in sheets.items():\n", + " data.to_excel(writer, sheet_name=sheet_name)" + ] }, { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "### Other\n", + "There are many other built in options for generating output from a dataframe. A few examples:" + ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Using .apply for arbitrary operations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, "source": [ + "# csv\n", + "flowers.to_csv('flowers.csv')\n", "\n", + "# json\n", + "flowers.to_json('flowers.json')\n", "\n", + "# html - this generates a table that can be viewed in a web browser\n", + "flowers.to_html('flowers.html')\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "## Note Regading inplace=True\n", - "changed_dataframe = df.some_modification()\n", - "\n", - "Pandas is phasing out inplace modification. It can still be done by passing the 'inplace=True'\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "## Concatenation\n", - "When we read in multiple files, we can concatenate them into a single dataframe. \n", - "Example should show adding an identifier row and pulling date from file name.\n", - "\n", - "## Join Operations\n", - "\n", - "## Stack and Unstack (sort of like a povit table)\n", - "**Stack** - This function pivots the columns of a DataFrame into its index, effectively \"stacking\" the data vertically. It converts a DataFrame from a wide format to a long format.\n", - "**Unstack** - This is the reverse of stack. It pivots the index of a DataFrame back into columns, converting it from a long format to a wide format.\n", - "\n", - "What does this mean and why!!!???\n", - "\n", - "## Plotting\n", - "\n", - "## Exporting files\n", - "### Plain Excel\n", - "### Multiple Sheets Excel\n", - "### Other" + "# sql - note that you need to remove the .db file to re-run this cell\n", + "import sqlite3\n", + "conn = sqlite3.connect('flowers.db')\n", + "flowers.to_sql('flowers', conn)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb index 40ae992..370002a 100644 --- a/D2-Data_Cleaning.ipynb +++ b/D2-Data_Cleaning.ipynb @@ -26,75 +26,78 @@ "metadata": {}, "source": [ "## Removing rows with missing data\n", - "We can use df.dropna() to drop rows or columns with NA values. NA is sort of like *None* in regular python. dropna takes an optional 'axix' argument. axis=0 is implied and means to drop rows with NA values. axis=1 will tell dropna to drop all columns with NA values." + "nWe can check to see if any rows in our data have NaN values using the .isnull() check. NaN is sort of like *None* in regular python. And we can follow with We can use df.dropna() to drop rows or columns with NaN values. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html\n", + "\n", + "dropna takes an optional 'axis' argument. axis=0 is implied and means to drop rows with NaN values. axis=1 will tell dropna to drop all columns with NaN values.\n", + "\n", + "Let's import some data tracking workout length, average pulse, max pulse, and calories burned. This data was entered manually and might have some missing values:" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 10, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DurationPulseMaxpulseCalories
060.0110.0130.0409.1
160.0117.0145.0479.0
\n", - "
" - ], - "text/plain": [ - " Duration Pulse Maxpulse Calories\n", - "0 60.0 110.0 130.0 409.1\n", - "1 60.0 117.0 145.0 479.0" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + " Duration Pulse Maxpulse Calories\n", + "0 60.0 110.0 130.0 409.1\n", + "1 60.0 117.0 145.0 479.0\n", + "\n", + "RangeIndex: 169 entries, 0 to 168\n", + "Data columns (total 4 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Duration 168 non-null float64\n", + " 1 Pulse 168 non-null float64\n", + " 2 Maxpulse 168 non-null float64\n", + " 3 Calories 164 non-null float64\n", + "dtypes: float64(4)\n", + "memory usage: 5.4 KB\n", + "None\n" + ] } ], "source": [ "import pandas as pd\n", "df = pd.read_csv('https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/pulse_calories_modified.csv')\n", - "df.head(2)" + "print(df.head(2))\n", + "print(df.info())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can check for NaN values with df.isnull(). This function returns a dataframe of the same shape as df, but entirely boolean values with true/false indicating whether or not each cell was NaN. The \".any(axis=1)\" checks each row in the resulting dataframe and reports true if any cell in that row is true. So na_rows is a boolean series reporting any NaN values that we can use as a mask to view them in the original dataframe:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Duration Pulse Maxpulse Calories\n", + "8 NaN 109.0 133.0 195.1\n", + "17 45.0 90.0 112.0 NaN\n", + "27 60.0 103.0 132.0 NaN\n", + "91 45.0 107.0 137.0 NaN\n", + "118 60.0 105.0 125.0 NaN\n", + "135 20.0 NaN 156.0 189.0\n", + "141 60.0 97.0 127.0 NaN\n", + "146 60.0 107.0 NaN 400.0\n" + ] + } + ], + "source": [ + "na_rows = df.isnull().any(axis=1)\n", + "print(df[na_rows])" ] }, { @@ -102,7 +105,21 @@ "metadata": {}, "source": [ "#### *Exercise*:\n", - "Use df.dropna() to remove rows wit mising vlaues for pulse, calories, or duration. Use df.info() before and after to verify changes to the numbers of rows. " + "Use df.dropna() to remove rows wit mising vlaues for pulse, calories, or duration. Use df.info() before and after, and verify with the above na_rows code cell to verify changes to the numbers of rows." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting data type of columns" ] }, { @@ -116,7 +133,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "##" + "## Inerpolatoin of time series data" ] }, { diff --git a/D4-Advanced_Pandas.ipynb b/D4-Advanced_Pandas.ipynb index c480c63..49d20c3 100644 --- a/D4-Advanced_Pandas.ipynb +++ b/D4-Advanced_Pandas.ipynb @@ -8,9 +8,13 @@ "\n", "**Topics**: loc and iloc, groupby, stack, unstack, pivot, ...\n", "\n", + "## Join and Concatenate\n", + "\n", "## Wide Format vs Long Format\n", "\n", "## stack, unstack, and pivot\n", + "**Stack** - This function pivots the columns of a DataFrame into its index, effectively \"stacking\" the data vertically. It converts a DataFrame from a wide format to a long format.\n", + "**Unstack** - This is the reverse of stack. It pivots the index of a DataFrame back into columns, converting it from a long format to a wide format.\n", "\n", "## where\n", "\n", diff --git a/SAMPLE_DATA/pulse_calories_modified.csv b/SAMPLE_DATA/pulse_calories_modified.csv index bfead9b..2e18f27 100644 --- a/SAMPLE_DATA/pulse_calories_modified.csv +++ b/SAMPLE_DATA/pulse_calories_modified.csv @@ -152,6 +152,7 @@ Duration,Pulse,Maxpulse,Calories 60,185,134,343.0 60,109,129,353.2 60,109,138,374.0 +'foo','bar','bla','asd' 30,150,167,275.8 60,105,128,328.0 60,111,151,368.5 @@ -168,3 +169,4 @@ Duration,Pulse,Maxpulse,Calories 60,-115,145,310.2 75,120,150,320.4 75,125,150,330.4 +a,b,c,d \ No newline at end of file From 8d7b2872c9e913ee499dd297dd2f59faf7fad2ef Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 21 Sep 2024 12:22:59 -0700 Subject: [PATCH 094/163] content --- D1-Pandas_Intro_and_Data_Selection.ipynb | 33 +++- D2-Data_Cleaning.ipynb | 241 +++++++++++++++++++---- 2 files changed, 232 insertions(+), 42 deletions(-) diff --git a/D1-Pandas_Intro_and_Data_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb index 0d591f3..b22c801 100644 --- a/D1-Pandas_Intro_and_Data_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -267,6 +267,34 @@ "flowers.head()" ] }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 150 entries, 0 to 149\n", + "Data columns (total 5 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 sepal_length 150 non-null float64\n", + " 1 sepal_width 150 non-null float64\n", + " 2 petal_length 150 non-null float64\n", + " 3 petal_width 150 non-null float64\n", + " 4 species 150 non-null object \n", + "dtypes: float64(4), object(1)\n", + "memory usage: 6.0+ KB\n" + ] + } + ], + "source": [ + "flowers.info()" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -925,7 +953,10 @@ { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "#### *Exercise*:\n", + "To wrap up this notebook, let's " + ] } ], "metadata": { diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb index 370002a..62d9da8 100644 --- a/D2-Data_Cleaning.ipynb +++ b/D2-Data_Cleaning.ipynb @@ -21,49 +21,42 @@ " * If you have low frequency, e.g. tidal, data with regular high frequency noise in it, you can use a butterworth filter to exclude the high freqency signal (low pass filter) and preserve the signal you want to analyse. " ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Removing rows with missing data\n", - "nWe can check to see if any rows in our data have NaN values using the .isnull() check. NaN is sort of like *None* in regular python. And we can follow with We can use df.dropna() to drop rows or columns with NaN values. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html\n", - "\n", - "dropna takes an optional 'axis' argument. axis=0 is implied and means to drop rows with NaN values. axis=1 will tell dropna to drop all columns with NaN values.\n", - "\n", - "Let's import some data tracking workout length, average pulse, max pulse, and calories burned. This data was entered manually and might have some missing values:" - ] - }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Duration Pulse Maxpulse Calories\n", - "0 60.0 110.0 130.0 409.1\n", - "1 60.0 117.0 145.0 479.0\n", + " Duration Pulse Maxpulse Calories\n", + "0 60 110 130 409.1\n", + "1 60 117 145 479.0\n", + " Duration Pulse Maxpulse Calories\n", + "169 75 125 150 330.4\n", + "170 a b c d\n", "\n", - "RangeIndex: 169 entries, 0 to 168\n", + "RangeIndex: 171 entries, 0 to 170\n", "Data columns (total 4 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Duration 168 non-null float64\n", - " 1 Pulse 168 non-null float64\n", - " 2 Maxpulse 168 non-null float64\n", - " 3 Calories 164 non-null float64\n", - "dtypes: float64(4)\n", - "memory usage: 5.4 KB\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Duration 170 non-null object\n", + " 1 Pulse 170 non-null object\n", + " 2 Maxpulse 170 non-null object\n", + " 3 Calories 166 non-null object\n", + "dtypes: object(4)\n", + "memory usage: 5.5+ KB\n", "None\n" ] } ], "source": [ "import pandas as pd\n", - "df = pd.read_csv('https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/pulse_calories_modified.csv')\n", + "# df = pd.read_csv('https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/pulse_calories_modified.csv')\n", + "df = pd.read_csv('./SAMPLE_DATA/pulse_calories_modified.csv')\n", "print(df.head(2))\n", + "print(df.tail(2))\n", "print(df.info())" ] }, @@ -71,41 +64,207 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can check for NaN values with df.isnull(). This function returns a dataframe of the same shape as df, but entirely boolean values with true/false indicating whether or not each cell was NaN. The \".any(axis=1)\" checks each row in the resulting dataframe and reports true if any cell in that row is true. So na_rows is a boolean series reporting any NaN values that we can use as a mask to view them in the original dataframe:" + "## Setting correct data type for columns\n", + "Right now, df.info is reporting a data type of \"object\" for all columns. Also note the invalid string characters in df.tail output. We can use `.astype(...)` to convert the data to numeric. astype will raise an exception if any of the values in the column(s) cannot be converted to the given data type(s). When this happens, we can either identify and fix those values first or we can include `errors='ignore'` as an argument. \n", + "\n", + "https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.astype.html\n", + "\n", + "#### *Exercise*\n", + "Run the folowing cell to convert the columns to numerc data types and modify it as needed resolve the error from astype. Add a print statement for df_numeric.info to verify the new data types of each of the columns.\n", + "What happenend to the string values in the last row of the dataframe?\n", + "\n", + "Also take note of the different usage examples commented out. " + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DurationPulseMaxpulseCalories
16660110145300.0
16760-115145310.2
16875120150320.4
16975125150330.4
170abcd
\n", + "
" + ], + "text/plain": [ + " Duration Pulse Maxpulse Calories\n", + "166 60 110 145 300.0\n", + "167 60 -115 145 310.2\n", + "168 75 120 150 320.4\n", + "169 75 125 150 330.4\n", + "170 a b c d" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Single column method:\n", + "# df['Duration'] = df['Duration'].astype('int')\n", + "\n", + "# Multiple columns method:\n", + "# df = df.astype('float')\n", + "\n", + "# Multiplue columns method:\n", + "df_numeric = df.astype({'Duration': 'int', \n", + " 'Pulse': 'int', \n", + " 'Maxpulse': 'int', \n", + " 'Calories': 'float'}, \n", + " errors='ignore')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the string values we want to drop are still inculded, we can try using to_numeric rather than astype. To_numeric accepts an option, errors='coerce', that will tell it to convert incompatible values to NaN rather than preserving the invalid value as astype does. \n", + "\n", + "But to_numeric works only on series data (a single column), so we need to do it once per column or use .apply to run it against all columns. \n", + "\n", + "https://pandas.pydata.org/docs/reference/api/pandas.to_numeric.html#pandas.to_numeric" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# If I didn't know about .apply, I would use this to convert each column:\n", + "# df_numeric = df.copy()\n", + "# for col in df_numeric.columns:\n", + "# df_numeric[col] = pd.to_numeric(df_numeric[col], errors='coerce')\n", + "\n", + "# But this is much more efficient, and in the spirit of how pandas is intended to be used:\n", + "df_numeric = df.apply(pd.to_numeric, errors='coerce')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A helpful way to see what was changed is to make a mask indicating which rows in df_numeric have NaN values now, and use the mask to see the original rows still preserved in df. Below, .isnull() returns a boolean dataframe of the same shape as the df it's called against with true/false indicating if each cell is NaN. And .any looks along the given axis and reports true for any row that has a true in it, returning a series object that we use as a mask. axis=1 means check each row, and axis=0 would mean check each column." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Duration Pulse Maxpulse Calories\n", - "8 NaN 109.0 133.0 195.1\n", - "17 45.0 90.0 112.0 NaN\n", - "27 60.0 103.0 132.0 NaN\n", - "91 45.0 107.0 137.0 NaN\n", - "118 60.0 105.0 125.0 NaN\n", - "135 20.0 NaN 156.0 189.0\n", - "141 60.0 97.0 127.0 NaN\n", - "146 60.0 107.0 NaN 400.0\n" + " Duration Pulse Maxpulse Calories\n", + "8 NaN 109 133 195.1\n", + "17 45 90 112 NaN\n", + "27 60 103 132 NaN\n", + "91 45 107 137 NaN\n", + "118 60 105 125 NaN\n", + "135 20 NaN 156 189.0\n", + "141 60 97 127 NaN\n", + "146 60 107 NaN 400.0\n", + "153 'foo' 'bar' 'bla' 'asd'\n", + "170 a b c d\n" ] } ], "source": [ - "na_rows = df.isnull().any(axis=1)\n", - "print(df[na_rows])" + "# print rows which will cause errors in astype conversoin to numeric types:\n", + "numeric_na_rows = df_numeric.isnull().any(axis=1)\n", + "print(df[numeric_na_rows])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#### *Exercise*:\n", - "Use df.dropna() to remove rows wit mising vlaues for pulse, calories, or duration. Use df.info() before and after, and verify with the above na_rows code cell to verify changes to the numbers of rows." + "## Removing rows with NaN values\n", + "Now that we have only numeric values and NaN values, we can pretty simply call df.dropna() to drop rows (or cols if we specify the axis argument) that have a NaN in them. \n", + "\n", + "https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html\n", + "\n", + "#### *Exescise*:\n", + "Run df_numeric.dropna() in the following cell and use .info() to see how many rows we are left with. How many were removed from the original df dataframe?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Identifying bad data analytically\n", + "We have a bunch of numeric data in our dataframe now, but we might " ] }, { From 5bf6a4023aef9c40a62f1ab9de93830ab17af54d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 21 Sep 2024 15:35:41 -0700 Subject: [PATCH 095/163] content --- D0-Pandas_Example.ipynb | 36 +-- D1-Pandas_Intro_and_Data_Selection.ipynb | 355 +++-------------------- D2-Data_Cleaning.ipynb | 66 ++++- D3-Pandas_Graphing.ipynb | 47 +++ D4-Advanced_Pandas.ipynb | 7 +- README.md | 14 +- 6 files changed, 183 insertions(+), 342 deletions(-) diff --git a/D0-Pandas_Example.ipynb b/D0-Pandas_Example.ipynb index c6be62d..2e57710 100644 --- a/D0-Pandas_Example.ipynb +++ b/D0-Pandas_Example.ipynb @@ -77,30 +77,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import geopandas\n", "from geodatasets import get_path\n", @@ -188,13 +167,20 @@ "source": [ "\n", "#### *Exercise*\n", - "Go through some of these datasets and find something that looks interesting to you that we can work on next week.\n", + "Go through some of these datasets and find something that looks interesting to you that we can work on in the following notebooks. \n", "\n", "* https://github.com/jdorfman/awesome-json-datasets - we can direcly query these using requests and the url as we did for the meteorite data. \n", "* https://catalog.data.gov/dataset/\n", "* https://data.fivethirtyeight.com/ - they have zip files with csv data\n", - "* https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download." + "* https://www.kaggle.com/datasets - click all data sets and you'll see loads of stuff. looks like they have large csv files to download.\n", + "\n", + "At the end of the Pandas series of notebooks, you should be able to prepare and analyze some data that you find interesting. So spend some time finding data that's interesting to you. " ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { diff --git a/D1-Pandas_Intro_and_Data_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb index b22c801..bfccdf3 100644 --- a/D1-Pandas_Intro_and_Data_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -73,20 +73,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Name Age City\n", - "0 Alice 25 New York\n", - "1 Bob 30 Los Angeles\n", - "2 Charlie 35 Chicago\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "import pandas as pd\n", "\n", @@ -151,116 +140,16 @@ "metadata": {}, "outputs": [], "source": [ - "# *We'll use this \"df\" for a few exercises below, so make sure to run this cell before continuing.*\n", + "# *We'll use this flowers dataframe for a few exercises below, so make sure to run this cell before continuing.*\n", "flowers = pd.read_csv(\"https://raw.githubusercontent.com/a8ksh4/python_workshop/main/SAMPLE_DATA/iris.csv\")\n", "# You can also try saving iris.csv in the directory with your notebook and opening it from a local path." ] }, { "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal_lengthsepal_widthpetal_lengthpetal_widthspeciessepal_length_inches
05.13.51.40.2Iris-setosa2.007875
14.93.01.40.2Iris-setosa1.929135
24.73.21.30.2Iris-setosa1.850395
34.63.11.50.2Iris-setosa1.811025
45.03.61.40.2Iris-setosa1.968505
\n", - "
" - ], - "text/plain": [ - " sepal_length sepal_width petal_length petal_width species \\\n", - "0 5.1 3.5 1.4 0.2 Iris-setosa \n", - "1 4.9 3.0 1.4 0.2 Iris-setosa \n", - "2 4.7 3.2 1.3 0.2 Iris-setosa \n", - "3 4.6 3.1 1.5 0.2 Iris-setosa \n", - "4 5.0 3.6 1.4 0.2 Iris-setosa \n", - "\n", - " sepal_length_inches \n", - "0 2.007875 \n", - "1 1.929135 \n", - "2 1.850395 \n", - "3 1.811025 \n", - "4 1.968505 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Your code here. You can re-run the above cell if you mess up your dataframe.\n", "# print(flowers....)\n", @@ -269,28 +158,9 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 150 entries, 0 to 149\n", - "Data columns (total 5 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 sepal_length 150 non-null float64\n", - " 1 sepal_width 150 non-null float64\n", - " 2 petal_length 150 non-null float64\n", - " 3 petal_width 150 non-null float64\n", - " 4 species 150 non-null object \n", - "dtypes: float64(4), object(1)\n", - "memory usage: 6.0+ KB\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "flowers.info()" ] @@ -307,21 +177,9 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " fruit color weight kg\n", - "0 apple red 0.20\n", - "1 banana yellow 0.30\n", - "2 cherry red 0.05\n", - "3 date brown 0.10\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "fruits = pd.DataFrame({'fruit': ['apple', 'banana', 'cherry', 'date'],\n", " 'color': ['red', 'yellow', 'red', 'brown'],\n", @@ -486,23 +344,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Name Age City\n", - "SSN \n", - "123-45-6789 Alice 25 New York\n", - "234-56-7890 Bob 30 Los Angeles\n", - "345-67-8901 Charlie 35 Chicago\n", - "456-78-9012 David 40 Houston\n", - "567-89-0123 Eve 45 Phoenix\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df = pd.DataFrame({\n", " 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', \n", @@ -527,32 +371,9 @@ }, { "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "A single row:\n", - " Name Charlie\n", - "Age 35\n", - "City Saskatoon\n", - "Name: 345-67-8901, dtype: object\n", - "A list of rows by SSN:\n", - " Age City\n", - "SSN \n", - "345-67-8901 35 Saskatoon\n", - "456-78-9012 40 Houston\n", - "A range of rows by SSN:\n", - " SSN\n", - "345-67-8901 Saskatoon\n", - "456-78-9012 Houston\n", - "567-89-0123 Phoenix\n", - "Name: City, dtype: object\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print('A single row:\\n', \n", " df.loc['345-67-8901'])\n", @@ -597,7 +418,9 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Your code here..." + ] }, { "cell_type": "markdown", @@ -609,36 +432,9 @@ }, { "cell_type": "code", - "execution_count": 72, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Row 0:\n", - " Name Alice\n", - "Age 25\n", - "City New York\n", - "Name: 123-45-6789, dtype: object\n", - "\n", - "Rows 2 and 5 and Age column:\n", - " SSN\n", - "345-67-8901 35\n", - "678-90-1234 50\n", - "Name: Age, dtype: int64\n", - "\n", - "Rows 2:6 and columns 0 and 1 using slices:\n", - " Name Age\n", - "SSN \n", - "345-67-8901 Charlie 35\n", - "456-78-9012 David 40\n", - "567-89-0123 Eve 45\n", - "678-90-1234 Frank 50\n", - "789-01-2345 Grace 55\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print('Row 0:\\n', \n", " df.iloc[0])\n", @@ -671,7 +467,9 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Your code here..." + ] }, { "cell_type": "markdown", @@ -683,56 +481,9 @@ }, { "cell_type": "code", - "execution_count": 94, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Row_index: 0\n", - "Alice lives in New York and is 25 years old.\n", - "We can use loc to get the name from the same row: Alice was here\n", - "\n", - "Row_index: 1\n", - "Bob lives in Los Angeles and is 30 years old.\n", - "We can use loc to get the name from the same row: Bob\n", - "\n", - "Row_index: 2\n", - "Charlie lives in Saskatoon and is 35 years old.\n", - "We can use loc to get the name from the same row: Charlie\n", - "\n", - "Row_index: 3\n", - "David lives in Houston and is 40 years old.\n", - "We can use loc to get the name from the same row: David\n", - "\n", - "Row_index: 4\n", - "Eve lives in Phoenix and is 45 years old.\n", - "We can use loc to get the name from the same row: Eve\n", - "\n", - "Row_index: 5\n", - "Frank lives in Philadelphia and is 50 years old.\n", - "We can use loc to get the name from the same row: Frank\n", - "\n", - "Row_index: 6\n", - "Grace lives in San Antonio and is 55 years old.\n", - "We can use loc to get the name from the same row: Grace\n", - "\n", - "Row_index: 7\n", - "Hannah lives in San Diego and is 60 years old.\n", - "We can use loc to get the name from the same row: Hannah\n", - "\n", - "Row_index: 8\n", - "Isaac lives in Dallas and is 65 years old.\n", - "We can use loc to get the name from the same row: Isaac\n", - "\n", - "Row_index: 9\n", - "Jack lives in San Jose and is 70 years old.\n", - "We can use loc to get the name from the same row: Jack\n", - "\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "for row_index, row_vals in df.iterrows():\n", " # print out the name, city, and age of the person in this row:\n", @@ -833,7 +584,9 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Your code here..." + ] }, { "cell_type": "markdown", @@ -850,19 +603,9 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Name Age City\n", - "SSN \n", - "345-67-8901 Charlie 35 Chicago\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "filtered_df = df.query('Age > 30 and City == \"Chicago\"')\n", "print(filtered_df)" @@ -881,20 +624,11 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: openpyxl in /home/dan/venv/lib/python3.12/site-packages (3.1.5)\n", - "Requirement already satisfied: et-xmlfile in /home/dan/venv/lib/python3.12/site-packages (from openpyxl) (1.1.0)\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ + "# you can comment out the pip line after running it once\n", "%pip install openpyxl\n", "out_file = 'flowers.xlsx'\n", "flowers.to_excel(out_file)" @@ -955,8 +689,13 @@ "metadata": {}, "source": [ "#### *Exercise*:\n", - "To wrap up this notebook, let's " + "Hopefully you've found some data that you find interesting and you would like to anaylze, make graphs for, and build a note book to present. Start a new notebook for this and import your data. You may want to clean up column names and/or make a selection of the data to look at. " ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb index 62d9da8..ab7a60f 100644 --- a/D2-Data_Cleaning.ipynb +++ b/D2-Data_Cleaning.ipynb @@ -6,6 +6,11 @@ "source": [ "# Section D2 - Data Cleaning with Pandas\n", "\n", + "Topics:\n", + "* Setting column data types\n", + "* Dropping rows with NaN values\n", + "* Removoing rows with invalid values. \n", + "\n", "Sometimes you'll need to pre-process your data before you can analyze it or present it for analysis. A few scenarios:\n", "* Excluding rows or columns with missing or invalid data:\n", " * You have a dataset os several measurments made on many samples. Some of the samples don't have all measurements done, so you need to exclude them. You can use dropna to remove rows or columns that are missing the needed measurements. \n", @@ -264,7 +269,17 @@ "metadata": {}, "source": [ "## Identifying bad data analytically\n", - "We have a bunch of numeric data in our dataframe now, but we might " + "We have a bunch of numeric data in our dataframe now, but we might want to sanity check that it looks correct. After all, our interns who transcribed this data are overworked, underpaid, and distracted, so there could be mistakes. \n", + "\n", + "#### *Exercise*:\n", + "Use masks to identify data meeting each of the following conditions. Print and remove the identified rows from our dataset:\n", + "* Rows with Pulse or Maxpulse <30 or >220, as these would be impossible for normal humans\n", + "* Rows with Pulse greater than Maxpulse, as the average can't possibly be greater than the max observed\n", + "* Duration or Calories < 0 as this is not possible\n", + "\n", + "Remember that `~mask` is the inverse of mask, so if your mask matches the condition you want to remove, then you want to set your dataframe to `df[~mask]` to remove the rows that met the criteria.\n", + "\n", + "You can check each condition on by one, or you could check them in a loop and in each iteration of the loop, \"or\" the previous mask and new mask together with \"|\" (the pipe symbol). Then after the loop, your mask will include all of the conditions and you can remove all matching rows at once from df. " ] }, { @@ -272,7 +287,42 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Your code here\n", + "foo = ...\n", + "df_numeric = df_numeric[foo]\n", + "..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ahother thing we can do is check that the calories burned per unit time are reasonable. We'll do this by calculating normalized calories per duration and identifying outliers which are more than two standard deviations from the average:\n", + "\n", + "#### *Exercise*\n", + "* Create a \"NormalizedCalories\" column equal to Calories divided by Duration\n", + "* Calculate the average and standard deviation of this new column. \n", + "* Create a mask for abs(NormalizedCalories - Average) > (2 * Stdev)\n", + "* Print the rows identified and remove them from the dataset. Does this seem like a reasonable filter for outliers?\n", + "\n", + "A couple helpful functions you can use for this are:\n", + "* np.abs(...) to calculate the absolute value\n", + "* df['col_name'].describe() will return a **dictionary** of statistics describing the column. You can use 'std' and 'mean' from this dictionary for the standard deviation and the average. Try printing it to see what all is included. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "# your code here:\n", + "df['NormalizedCalories'] = ...\n", + "stats = df['NormalizedCalories'].describe()\n", + "..." + ] }, { "cell_type": "markdown", @@ -304,6 +354,18 @@ "# drop columns with missing values\n", "d" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index e69de29..4a82c21 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section D3 - Graphing with Pandas (and Matplotlib)\n", + "We'll go through a few types of graphs here!\n", + "\n", + "## Time series\n", + "\n", + "## Multi Axis\n", + "\n", + "## Scatter Plot\n", + "\n", + "## Box and Whisker Plot\n", + "\n", + "## Histogram\n", + "\n", + "## Heatmap\n", + "\n", + "## Multiple Plots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/D4-Advanced_Pandas.ipynb b/D4-Advanced_Pandas.ipynb index 49d20c3..5f6a96c 100644 --- a/D4-Advanced_Pandas.ipynb +++ b/D4-Advanced_Pandas.ipynb @@ -4,9 +4,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# D2 - Advanced Pandas\n", + "# Section D4 - Advanced Pandas\n", "\n", - "**Topics**: loc and iloc, groupby, stack, unstack, pivot, ...\n", + "Topics:\n", + "* Join and Concatenate\n", + "* groupby\n", + "* stack, unstack, pivot, ...\n", "\n", "## Join and Concatenate\n", "\n", diff --git a/README.md b/README.md index f45d097..f2d4a4e 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ We have a bunch of coureswork ready to use, including: See the Notebooks list below for a more detailed list. ## Current Schedule: -* Wednesday Sep 4th 4-5PM * NO WORKSHOP on Sep 11th and 18th * Wednesday Sep 25th 4-5PM * Wednesday Oct 2nd 4-5PM @@ -46,10 +45,15 @@ We have a series of python notebooks ready to work through to learn from. They * A-Getting_Started.ipynb - Introduction to Python and Google Colab. Covering variables and data types (numeric, strings, boolean), truthiness, and basic control flow (if-else statements). * B-Dictionaries_and_Loops.ipynb - Exploring more complex data types (lists, tuples, dictionaries) and advanced control flow (loops: for and while). Opening files and intro to json. -* C-Functions_and_Pandas_Intro.ipynb - Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration -* D-Pandas.ipynb - Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. - -**In Development:** +* C-Functions_and_Module_Imports.ipynb - Introducing functions and modules in Python. +* D0-Pandas_Example.ipynb - An example of importing data and doing some anaylsis and graphing to get a feel for how pandas works. +* D1-Pandas_Intro_and_Data_selection.ipynb - Some pandas basics including imoprting data, manipulating columns of data, learning ways to select rows and columns of data, and exporting data to file. + +**In Development** +* D2-Data_Cleaning.ipynb - Setting column data types, removing missing or invalid data, interpolation, etc tools for preparing data for analysis. +* D3-Pandas_Graphing.ipynb - Goes over a bunch of plot types multi-axis plots, and graphs with multiple plots. +* D4-Advanced_Pandas.ipynb - Pivot, stack, unstack, join, concatenate, etc. +* D5-Machine_Learning.ipynb - Methods to use machine learning to model data using pandas and common ML libraries. Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. * E-Writing_Scripts.ipynb - Installing python locally, environment, structure of a script, and argparse * F-Microcontrollers_Intro.ipynb - Circuitpython and Micropython on common microcontroller boards. * G-Exception_Handling.ipynb - Try/Except blocks and Error Handing. From 3b520c862ccef27d688c146c78087039f66f7ad4 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 26 Sep 2024 19:24:20 -0700 Subject: [PATCH 096/163] new content --- D5-Exmaple_Data_Sources.ipynb | 317 ++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 D5-Exmaple_Data_Sources.ipynb diff --git a/D5-Exmaple_Data_Sources.ipynb b/D5-Exmaple_Data_Sources.ipynb new file mode 100644 index 0000000..940efe2 --- /dev/null +++ b/D5-Exmaple_Data_Sources.ipynb @@ -0,0 +1,317 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# D5 - Example Data Sources\n", + "\n", + "**Index**:\n", + "* API Keys\n", + "* Water Data\n", + " * CIMIS\n", + " * \n", + " * NWIS\n", + "\n", + "\n", + "## API Keys\n", + "When you get an API key for a website, it's associated with your account and not something you want to share. So, it's **not** a good idea to keep API keys in your scripts if you're going to share them, post them on github, etc. \n", + "\n", + "A good strategy is to put them in an environment variable so that you can get the key from the env variable inside your script. In the examples below you'll see checks for os.environ - this is looking for an environment variable with your key.\n", + "\n", + "In linux, you can set an environment variable by adding a line to your ~/.bashrc file like follows, and the log back into your computer:\n", + "\n", + " export CIMIS_API_KEY=\"your key here\"\n", + "\n", + "And in windows, you can run the following in a cmd window:\n", + "\n", + " setx OPENAI_API_KEY “”\n", + "\n", + "Theres more info on this stuff here: https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cimis Data\n", + "Create an account at https://cimis.water.ca.gov. Once you log, click the \"Account\" button in the top right corner. Scroll down and you'll see an API key that you'll need for queries.\n", + "\n", + "We can query the Cimis data from: https://et.water.ca.gov... \n", + "* There are example queries at: https://et.water.ca.gov/Rest/Index\n", + "\n", + "Here's some example code for querying it:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Request url is: https://et.water.ca.gov/api/data?appKey=46f5b53b-3adc-4a4d-a660-474c010a26f4&startDate=2010-01-01&endDate=2010-01-05&targets=2,8,127\n" + ] + } + ], + "source": [ + "import json\n", + "import os\n", + "import requests\n", + "import pandas as pd\n", + "\n", + "if 'CIMIS_API_KEY' in os.environ:\n", + " api_key = os.environ['CIMIS_API_KEY']\n", + "else:\n", + " api_key = 'your_api_key_here'\n", + "url_base = 'https://et.water.ca.gov/api'\n", + "options = [f'appKey={api_key}', 'startDate=2010-01-01', 'endDate=2010-01-05', 'targets=2,8,127']\n", + "options = '&'.join(options)\n", + "url = f'{url_base}/data?{options}'\n", + "\n", + "print(\"Request url is: \", url)\n", + "response = requests.get(url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response_data = json.loads(response.text)\n", + "# for record in response['Data']['Providers'][0]['Records']:\n", + "# print(record)\n", + "df = pd.DataFrame(response_data['Data']['Providers'][0]['Records'])\n", + "# print(df.info())\n", + "# print(df.head())\n", + "\n", + "# The values all have this dictionary format:\n", + "# DayAirTmpAvg: {'Value': '39', 'Qc': ' ', 'Unit': '(F)'}\n", + "\n", + "# So we need to break them out into separate columns:\n", + "value_cols = [c for c in df.columns if c.startswith('Day')]\n", + "for c in value_cols:\n", + " df[f'{c}_Units'] = df[c].apply(lambda x: x['Unit'])\n", + " # You may also want to preserve the Qc value\n", + " df[c] = df[c].apply(lambda x: x['Value'])\n", + "\n", + "print(df.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## USGS NWIS Waterdata\n", + "https://waterdata.usgs.gov/\n", + "\n", + "Example site data: https://waterdata.usgs.gov/nwis/uv?site_no=05056241&legacy=1\n", + "There's a new version page at: https://waterdata.usgs.gov/monitoring-location/05056241/\n", + "This one has download data button -> select primary time series -> retreive, and this opens another page with this url:\n", + "https://waterservices.usgs.gov/nwis/iv/?sites=05056241&startDT=2024-09-19T20:57:15.477-05:00&endDT=2024-09-26T20:57:15.477-05:00¶meterCd=00065&format=rdb\n", + "\n", + "Change `format=rdb` to `format=json` and we get some easy to work with data. View it in the browser... usually there's a pretty print check box at the top of the browser for json data like this that will make it easier to read. \n", + "\n", + "The data returned has a lot of meta-data and the time series data we're interested in: \n", + "\n", + " data['value']['timeSeries'][0]['values'][0]['value']\n", + "\n", + "Look through the meta data as some of it is useful... time zone, query info, and meaning of the pcodes in the output data:\n", + "\n", + " \"variable\": {\n", + " \"variableCode\": [\n", + " {\n", + " \"value\": \"00065\",\n", + " \"network\": \"NWIS\",\n", + " \"vocabulary\": \"NWIS:UnitValues\",\n", + " \"variableID\": 45807202,\n", + " \"default\": true\n", + " }\n", + " ],\n", + " \"variableName\": \"Gage height, ft\",\n", + " \"variableDescription\": \"Gage height, feet\",\n", + " \"valueType\": \"Derived Value\",\n", + " \"unit\": {\n", + " \"unitCode\": \"ft\"\n", + " },\n", + " \"options\": {\n", + " \"option\": [\n", + " {\n", + " \"name\": \"Statistic\",\n", + " \"optionCode\": \"00000\"\n", + " }\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#https://waterservices.usgs.gov/nwis/iv/?sites=05056241&startDT=2024-09-19T20:57:15.477-05:00&endDT=2024-09-26T20:57:15.477-05:00¶meterCd=00065&format=rdb\n", + "# midnight to midnight\n", + "startDT = '2024-09-19T00:00:00-05:00'\n", + "endDt = '2024-09-26T00:00:00-05:00'\n", + "# I suspect the 05:00 is the time zone offset\n", + "sites = '05056241' # presumably this could be a comma separated list\n", + "parameterCd = '00065' # discharge in cubic feet per second\n", + "format = 'json'\n", + "base_url = 'https://waterservices.usgs.gov/nwis/iv'\n", + "params = [f'sites={sites}', f'startDT={startDT}', f'endDT={endDt}', f'parameterCd={parameterCd}', f'format={format}']\n", + "params = '&'.join(params)\n", + "url = f'{base_url}/?{params}'\n", + "print(url)\n", + "response = requests.get(url)\n", + "data = json.loads(response.text)\n", + "# print(response.text)\n", + "df = pd.DataFrame(data['value']['timeSeries'][0]['values'][0]['value'])\n", + "print(df.head())\n", + "print(df.info())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Often, you'll be limited in the date range, number of sites, or number of parameters you can query at once, so you can play around and see what works and what gives an error. The json output should have an error code or explanation. Once you know the limits, use a loop to increment the dates and collect all of the data needed:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "chunk_size_days = 7\n", + "from datetime import datetime, timedelta\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 3, 31)\n", + "delta = timedelta(days=chunk_size_days)\n", + "working_date = start_date\n", + "dataframes = []\n", + "while working_date <= end_date:\n", + " end_working_date = working_date + delta\n", + " if end_working_date > end_date:\n", + " end_working_date = end_date\n", + " startDT = working_date.strftime('%Y-%m-%dT00:00:00-05:00')\n", + " endDT = end_working_date.strftime('%Y-%m-%dT00:00:00-05:00')\n", + " params = [f'sites={sites}', f'startDT={startDT}', f'endDT={endDT}', f'parameterCd={parameterCd}', f'format={format}']\n", + " params = '&'.join(params)\n", + " url = f'{base_url}/?{params}'\n", + " print(url)\n", + " response = requests.get(url)\n", + " data = json.loads(response.text)\n", + " df = pd.DataFrame(data['value']['timeSeries'][0]['values'][0]['value'])\n", + " dataframes.append(df)\n", + " working_date = end_working_date + timedelta(days=1)\n", + "df = pd.concat(dataframes)\n", + "\n", + "df.to_csv(f'site_{sites}.csv', index=False)\n", + "print(df.info())\n", + "print(df.head())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## NWIS Data\n", + "This data uses PCodes. You'll need to look up " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd \n", + "%pip install hydrofunctions\n", + "import hydrofunctions as hf\n", + "\n", + "#Example Sites:\n", + "# 'CCH':'11455350',\n", + "# 'CCH41':'11455385',\n", + "# 'CFL':'11455508',\n", + "# 'DEC':'11455478',\n", + "\n", + "startDT = '2022-01-01'\n", + "endDT = '2024-02-02'\n", + "site_name = 'CCH41'\n", + "site_code = '11455385'\n", + "\n", + "NWIS_request = hf.NWIS(site_code,'iv',startDT,endDT)\n", + " \n", + "df = NWIS_request.df()\n", + "\n", + "headers = {}\n", + "lines = str(NWIS_request).split('\\n') #treates NWIS_request as a string - this gives us one long string of original col names\n", + "for line in lines[1:-2]: #ignore the first line (which is the site name) and the last two lines (are the strt and end dates)\n", + " line = line.strip() #remove white space\n", + " identifier = line.split(':')[0].strip() \n", + " headers[identifier] = line #put this into the dictionary as the identifier\n", + "\n", + "cols = list(df.columns) #creates a list of original column names\n", + "new_cols = []\n", + "\n", + "for column in cols:\n", + " qual = 'qualifier' in column #creates a bool based on whether the column is a qualifer column, as opposed to a data column\n", + " scol = column.split(':')\n", + "\n", + "df['site_code'] = site_code\n", + "df['site_name'] = site_name\n", + "\n", + "df = df.reset_index()\n", + "\n", + "df['datetimeUTC'] = pd.to_datetime(df['datetimeUTC'], format='%Y-%m-%d %H:%M:%S')\n", + "df['TS Timestamp (PST)'] = df['datetimeUTC'].dt.strftime('%Y-%m-%d %H:%M:%S')\n", + "df['TS Timestamp (PST)'] = pd.to_datetime(df['TS Timestamp (PST)'], format='%Y-%m-%d %H:%M:%S') - pd.Timedelta(hours = 8)\n", + "\n", + "df = df.set_index('TS Timestamp (PST)')\n", + "\n", + "df.columns = [col.split(':')[2] if ':' in col else col for col in df.columns]\n", + "df.columns = [col.split('-')[0] if '-' in col else col for col in df.columns]\n", + "\n", + "print(df.columns)\n", + "print(df.head())\n", + "\n", + "#fname = f'TS_{field_id}_{site}.csv' \n", + "fname = f'TS_{site_code}_{site_name}.csv'\n", + "print('saving to', fname)\n", + "df.to_csv(fname)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 21267284d29811c854480baea29bdcbdbef8b67c Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 26 Sep 2024 19:26:45 -0700 Subject: [PATCH 097/163] cleanup --- D5-Exmaple_Data_Sources.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/D5-Exmaple_Data_Sources.ipynb b/D5-Exmaple_Data_Sources.ipynb index 940efe2..7b9cada 100644 --- a/D5-Exmaple_Data_Sources.ipynb +++ b/D5-Exmaple_Data_Sources.ipynb @@ -10,8 +10,8 @@ "* API Keys\n", "* Water Data\n", " * CIMIS\n", - " * \n", - " * NWIS\n", + " * NWIS Waterdata via web\n", + " * NWIS data via module\n", "\n", "\n", "## API Keys\n", @@ -105,7 +105,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## USGS NWIS Waterdata\n", + "## USGS NWIS Waterdata via Web\n", "https://waterdata.usgs.gov/\n", "\n", "Example site data: https://waterdata.usgs.gov/nwis/uv?site_no=05056241&legacy=1\n", From 6158cba1d4c3b00cfd59ecc6d1713a0c79034e07 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 26 Sep 2024 21:49:04 -0700 Subject: [PATCH 098/163] Updated list of notebooks --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index f2d4a4e..b6c23c9 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,9 @@ We have a series of python notebooks ready to work through to learn from. They * F-Microcontrollers_Intro.ipynb - Circuitpython and Micropython on common microcontroller boards. * G-Exception_Handling.ipynb - Try/Except blocks and Error Handing. * H-Unit_Tests.ipynb - Writing test cases to verify your code works as designed. +* S-Subprocess_and_System_Calls.ipynb - Usage of the subprocess module for running commands outside of python +* T-Datetime.ipynb - Python Datetime Objects +* V-Virtual_Environments.ipynb - ## Resources **Documentation** From 6f89ec372c7c04799be52e5cfa92acd1643d683c Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 14 Oct 2024 13:29:31 -0700 Subject: [PATCH 099/163] updates --- D1-Pandas_Intro_and_Data_Selection.ipynb | 2 +- D2-Data_Cleaning.ipynb | 2 +- D3-Pandas_Graphing.ipynb | 5 + N-Numpy.ipynb | 0 T-Datetime.ipynb | 113 +++++++++++++++++++++++ V-Virtual_Environments.ipynb | 27 ++++++ 6 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 N-Numpy.ipynb create mode 100644 T-Datetime.ipynb create mode 100644 V-Virtual_Environments.ipynb diff --git a/D1-Pandas_Intro_and_Data_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb index bfccdf3..cd7ad03 100644 --- a/D1-Pandas_Intro_and_Data_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -714,7 +714,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb index ab7a60f..24f6b1a 100644 --- a/D2-Data_Cleaning.ipynb +++ b/D2-Data_Cleaning.ipynb @@ -384,7 +384,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 4a82c21..6981cac 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -22,6 +22,11 @@ "## Multiple Plots" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/N-Numpy.ipynb b/N-Numpy.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/T-Datetime.ipynb b/T-Datetime.ipynb new file mode 100644 index 0000000..60c61b0 --- /dev/null +++ b/T-Datetime.ipynb @@ -0,0 +1,113 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section T - Datetime Module\n", + "\n", + "**Topics**:\n", + "* The Datetime Module\n", + "* Conversion To String\n", + "* Conversion From String\n", + "* Time Deltas\n", + "* Timezone Conversions\n", + "* Pandas Stuff\n", + "* Epoch Time\n", + "* Whate else?\n", + "\n", + "## The Datetime Module (Package?)\n", + "There are a few useful objects bundled within the datetime module:\n", + "\n", + " >>> import datetime as dtm\n", + " >>> dtm.\n", + " dtm.MAXYEAR dtm.date( dtm.time( dtm.tzinfo(\n", + " dtm.MINYEAR dtm.datetime( dtm.timedelta( \n", + " dtm.UTC dtm.datetime_CAPI dtm.timezone( \n", + "\n", + "**datetime.datetime** is used to create datetime objects. These objects encapsulate date and time to the microsecond?\n", + "**datetime.timedelta** is an object used ti describe an increment of time." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "UTC+08:00\n" + ] + } + ], + "source": [ + "from datetime import datetime, timedelta, timezone\n", + "\n", + "# Today's date:\n", + "now = datetime.now()\n", + "\n", + "# 24 hours from now:\n", + "print(now + timedelta(hours=24))\n", + "\n", + "# 1 month time delta:\n", + "\n", + "# Demo of timezone:\n", + "# Create a timezone for UTC+8:00\n", + "tz_utc8 = timezone(timedelta(hours=8))\n", + "print(tz_utc8)\n", + "#\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Time Deltas\n", + "A time delta is a difference in time by some intervale. We can create a timedelta object using datetime.timedelta, and add or subtract it from a datetime object. This is particularly useful for incrementing dates or timestamps.\n", + "\n", + " from datetime import timedelta\n", + " one_hour = timedelta(hours=1)\n", + "\n", + "These are the increments allowed for a time delta:\n", + "\n", + " timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "one_year = timedelta(days=365)\n", + "one_hour = timedelta(hours=1)\n", + "one_week = timedelta(weeks=1)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/V-Virtual_Environments.ipynb b/V-Virtual_Environments.ipynb new file mode 100644 index 0000000..6765d61 --- /dev/null +++ b/V-Virtual_Environments.ipynb @@ -0,0 +1,27 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section V - Virtual Environments\n", + "\n", + "What, how,and why!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 6cd4d0b2066d9b566a65416a09c67df356a9afdb Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Mon, 14 Oct 2024 16:18:34 -0700 Subject: [PATCH 100/163] add feedback link --- A-Getting_Started.ipynb | 2 + B-Dictionaries_and_Loops.ipynb | 2 + C-Functions_and_Module_Imports.ipynb | 2 + D0-Pandas_Example.ipynb | 2 + D1-Pandas_Intro_and_Data_Selection.ipynb | 3 + D2-Data_Cleaning.ipynb | 2 + D3-Pandas_Graphing.ipynb | 3 + D4-Advanced_Pandas.ipynb | 2 + D5-Exmaple_Data_Sources.ipynb | 2 + E-Writing_Scripts.ipynb | 2 + F-Microcontrollers_and_Circuitpython.ipynb | 2 + G-Web_Scraping.ipynb | 4 +- N-Numpy.ipynb | 439 +++++++++++++++++++++ T-Datetime.ipynb | 2 + V-Virtual_Environments.ipynb | 2 + 15 files changed, 470 insertions(+), 1 deletion(-) diff --git a/A-Getting_Started.ipynb b/A-Getting_Started.ipynb index f89377f..c48022d 100644 --- a/A-Getting_Started.ipynb +++ b/A-Getting_Started.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section A - Start here!\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Topics**: Intro, Data types incl numeric, strings, lists, tuples, sets, if else. \n", "\n", "The first program most folks make in any language is a hello world. \n", diff --git a/B-Dictionaries_and_Loops.ipynb b/B-Dictionaries_and_Loops.ipynb index 62228f2..fee1141 100644 --- a/B-Dictionaries_and_Loops.ipynb +++ b/B-Dictionaries_and_Loops.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section B - Dictionaries and Loops\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Topics**: Dictionaries and advanced control flow - for and while loops - and list comprehinsions.\n", "\n", "This is a very exciting week. Dictionaries are so useful for organizing things, and with the introductin of loops, we become real programmers who can perform large tasks with concise bits of code. The Exercises below for the loops are hopefully kind of challenging requring you to use conditoinals, variables, lists, and if else branching!\n", diff --git a/C-Functions_and_Module_Imports.ipynb b/C-Functions_and_Module_Imports.ipynb index 187da2b..1917ba5 100644 --- a/C-Functions_and_Module_Imports.ipynb +++ b/C-Functions_and_Module_Imports.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section C - Functions and Module Imports\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Topics**: Introducing functions and modules in Python. Basic introduction to pandas for data analysis, focusing on importing data and initial data exploration.\n", "\n", "## Functions\n", diff --git a/D0-Pandas_Example.ipynb b/D0-Pandas_Example.ipynb index 2e57710..d24e187 100644 --- a/D0-Pandas_Example.ipynb +++ b/D0-Pandas_Example.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section D0 - Pandas Example\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "The name \"Pandas\" comes from \"Panel Data\" and \"Python Data Analysis\". \"Panel Data\" refers to two dimensoinal data, often including measurements over time - time series - or collections of things/events. The term \"Pandas\" is a blend of these concepts, reflecting the library's purpose of providing data structures and data analysis tools in Python.\n", "\n", "**Pandas** are playfull and memorable, just like **Pandas**!\n", diff --git a/D1-Pandas_Intro_and_Data_Selection.ipynb b/D1-Pandas_Intro_and_Data_Selection.ipynb index cd7ad03..e0f13f4 100644 --- a/D1-Pandas_Intro_and_Data_Selection.ipynb +++ b/D1-Pandas_Intro_and_Data_Selection.ipynb @@ -5,6 +5,9 @@ "metadata": {}, "source": [ "# Section D1 - Pandas Intro and Data Selection\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Index**\n", "* General Info\n", "* Creating a Dataframe\n", diff --git a/D2-Data_Cleaning.ipynb b/D2-Data_Cleaning.ipynb index 24f6b1a..63807ce 100644 --- a/D2-Data_Cleaning.ipynb +++ b/D2-Data_Cleaning.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section D2 - Data Cleaning with Pandas\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "Topics:\n", "* Setting column data types\n", "* Dropping rows with NaN values\n", diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 6981cac..f54bb3c 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -5,6 +5,9 @@ "metadata": {}, "source": [ "# Section D3 - Graphing with Pandas (and Matplotlib)\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "We'll go through a few types of graphs here!\n", "\n", "## Time series\n", diff --git a/D4-Advanced_Pandas.ipynb b/D4-Advanced_Pandas.ipynb index 5f6a96c..d1ac246 100644 --- a/D4-Advanced_Pandas.ipynb +++ b/D4-Advanced_Pandas.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section D4 - Advanced Pandas\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "Topics:\n", "* Join and Concatenate\n", "* groupby\n", diff --git a/D5-Exmaple_Data_Sources.ipynb b/D5-Exmaple_Data_Sources.ipynb index 7b9cada..0fbbf23 100644 --- a/D5-Exmaple_Data_Sources.ipynb +++ b/D5-Exmaple_Data_Sources.ipynb @@ -6,6 +6,8 @@ "source": [ "# D5 - Example Data Sources\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Index**:\n", "* API Keys\n", "* Water Data\n", diff --git a/E-Writing_Scripts.ipynb b/E-Writing_Scripts.ipynb index 29e31b7..13f2d2c 100644 --- a/E-Writing_Scripts.ipynb +++ b/E-Writing_Scripts.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section E - Writing Scripts / Programs\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Topics** - Python Editors, Writing and runnig scripts, argparse library\n", "\n", "So far, we've been working in python notebooks - these are great for workflows or data centered presentations where you want to mix text, code, and graphs/plots and a human will be interacting with it. \n", diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index 9a5b641..54e99cb 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section F - Microcontrollers\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Topics:** Programming microcontrollers with CircuitPython" ] }, diff --git a/G-Web_Scraping.ipynb b/G-Web_Scraping.ipynb index 852d29f..7b94c67 100644 --- a/G-Web_Scraping.ipynb +++ b/G-Web_Scraping.ipynb @@ -4,7 +4,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section G - Web Scraping" + "# Section G - Web Scraping\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA" ] }, { diff --git a/N-Numpy.ipynb b/N-Numpy.ipynb index e69de29..a5b6142 100644 --- a/N-Numpy.ipynb +++ b/N-Numpy.ipynb @@ -0,0 +1,439 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section N - Numpy\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "Numpy is the library that pandas and many other scientific and big-data python libraries are built on. It provides support for arrays (especially multi-dimensional arrays or \"ndarrays\") and a large collection of mathematical functions to operate on these arrays efficiently. Key features of NumPy include:\n", + "\n", + "* **N-dimensional Arrays (ndarray):** NumPy offers a data structure for working with large multi-dimensional arrays and matrices, which are more efficient than Python's built-in lists for numerical operations.\n", + "* **Mathematical Functions:** It provides a wide range of mathematical functions (like trigonometric, statistical, and algebraic functions) that operate on entire arrays at once, making code more concise and faster.\n", + "* **Vectorization / Broadcasting:** NumPy allows vectorized operations, meaning that operations on arrays are applied element-wise without the need for explicit loops, avoiding unnecessary copies, leading to more readable, memory efficient, and faster code.\n", + "* **Integration with Other Libraries:** Many scientific libraries, such as SciPy, pandas, and matplotlib, rely on NumPy for array operations.\n", + "* **Efficiency:** NumPy is implemented in C, which makes it highly efficient for performing large-scale computations compared to Python's native lists.\n", + "\n", + "Overall, NumPy is a cornerstone of scientific computing in Python, making it essential for tasks involving data analysis, machine learning, simulations, and other numerical applications.\n", + "\n", + "Let's do a simple example comparing addition of numbers in two lists/arrays in native Python vs Numpy:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "listc: [5, 7, 9, 11, 13]\n", + "listc: [ 5 7 9 11 13]\n" + ] + } + ], + "source": [ + "# Regular python\n", + "lista = range(5)\n", + "listb = range(5, 10)\n", + "listc = [a + b for a, b in zip(lista, listb)]\n", + "print('listc:', listc)\n", + "\n", + "# Using numpy\n", + "import numpy as np\n", + "lista = np.arange(5)\n", + "listb = np.arange(5, 10)\n", + "listc = lista + listb\n", + "print('listc:', listc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Numpy Basics\n", + "It is typical to import numpy as \"np\". Numpy has a few functions for creating numpy arrays of one or more dimmensions:\n", + "\n", + " np.array([1, 2, 3, 4]) # convert python list to np array \n", + " np.zeros((3, 5)) # 3x5 matrix of zeros\n", + " np.ones((2, 4)) # 2x4 matrix of ones\n", + " np.arange(0, 10, 2) # Numbers from 0 to 10 with a step of 2\n", + " np.linspace(0, 1, 5) # 5 numbers evenly spaced between 0 and 1\n", + "\n", + "So we can convert lists to np array, we can make arrays of ones or zeros, or generate ranges of numbers.\n", + "\n", + "#### *Exercise*:\n", + "Let's create and print a few arrays to see what they look like:\n", + "* Use np.zeros to make arrays of one, two, and three dimmensions:\n", + " * (3)\n", + " * (3, 4)\n", + " * (3, 4, 5)\n", + "* An array with the numbers 0 through 9, stepping by 1 - ten total numbers.\n", + "* An array with the numbers 10 through 100, stepping by 10 - ten total numbers.\n", + "* An array of 20 numbers spaced equally from 10 to 15. \n", + "* A 5x5 array with the following values of col_number * pow(5, row_num) in each row:\n", + " * 0, 1, 2, ...\n", + " * 0, 5, 10, ...\n", + " * 0, 25, 125, ...\n", + " * ...\n", + " * ..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Array indexing and Slicing\n", + "We can print or set elements of arrays, or ranges of elements of arrays:\n", + "* First element: `arr[0]`\n", + "* Last element: `arr[-1]`\n", + "* Elements 1 through 3: `arr[1:4]`\n", + "\n", + "Multi-dimmensional arrays have each dimmensino separated by a comma, and can use the same method of referring to a single element or a slice with a colon:\n", + "* First element of first element in a 2d array: `arr[0, 0]`\n", + "* First four elements of the second element of an array: `arr[:4, 1]`\n", + "\n", + "Let's look at a 1, 2, and 3 dimmensional array:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "arr_1d = np.array([1, 2, 3])\n", + "arr_2d = np.array([[1, 2, 3], [4, 5, 6]])\n", + "arr_3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "* What shape is each of these arrays?\n", + "* Print the firstt element of each of the arrays. Notice anything interesting? \n", + "* Print just 3 in each of the arrays.\n", + "* Set the 3 in each of the arrays to 99\n", + "* Print the first to values of the first item in the second item ni the 3d array. \n", + "* Create a 1D array of numbers from 10 to 20 and extrace a slice containing the numbers [12, 13, 14]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Array Operations\n", + "\n", + "**Basic Arithmetic Operations:**\n", + "\n", + " arr = np.array([1, 2, 3, 4])\n", + " print(arr + 2) # Add 2 to every element\n", + " print(arr * 3) # Multiply every element by 3\n", + "\n", + "**Element-wise Operations:**\n", + "\n", + " arr1 = np.array([1, 2, 3])\n", + " arr2 = np.array([4, 5, 6])\n", + " print(arr1 + arr2) # Add corresponding elements\n", + "\n", + "#### *Exescise*:\n", + "Create two arrays of the same size, one with even numbers and one with odd numbers. Perform addition and multiplication on these arrays." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mathematical Functions and Axis\n", + "\n", + "Numpy has some useful functions built in:\n", + "\n", + " np.sum(), np.mean(), np.max(), np.min(), np.std()\n", + "\n", + "These each will apply to an entire array if called without any arguments, but can also be given an axis to work against if, for example, you wanted to see the sum of each row or column in a 2d array.\n", + "\n", + "https://numpy.org/doc/stable/reference/generated/numpy.sum.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "arr = np.array([[0, 1], [2, 3]])\n", + "sum_all = arr.sum()\n", + "sum_rows = arr.sum(axis=1)\n", + "sum_cols = arr.sum(axis=0)\n", + "# sum_coles = np.sum(arr, axis=0) # this is equivalent to the previous line\n", + "\n", + "print('arr:', arr)\n", + "print('sum_all:', sum_all)\n", + "print('sum_rows:', sum_rows)\n", + "print('sum_cols:', sum_cols)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that sum_rows and sum_cols are each 1 dimensinoal arrays. Check the values in sum_rows and sum_cols to verify which numbers in the original array they came from.\n", + "\n", + "The idea of rows and columns sort of breaks down when we have 3 or more dimmensions/axis in our array. Numpy really contrasts with pandas in this regard. Pandas has very clear rows and columns and is limited to two dimmensinal data, but numpy is more abstract and it's better to pay attention to which axis number is which in an array rather than thinking in rows/cols. \n", + "\n", + "#### *Exercise*:\n", + "Create a 3d array similar to the above 2d array that contains the values 4 through 7 \n", + "* What shape is this array?\n", + "* Sum values on eac of the three axis. You shuold see some values correspond with the sums in the above example, and have some new values on axis 0 and 1. Axis 2 is all new. Think about which axix is which, counting outward from the sets of [ ] that contain the numbers in the array. \n", + "* Sum the values on multiple axis. E.g. array.sum(axis=(1,2)). What's happening when you do this? What combination of axis will include the value \"6\" that we saw in \"sum_all\" from the above 2d array example?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reshaping and Transposing Arrays\n", + "\n", + "A numpy array is just a block of memory of a size large enough to hold all of the values of our chosen data type in the quantity of the cells per the size of the array in all dimmensions. So a 2 x 3 x 4 array of four-byte float values would be 24 x 4 bytes. The values are consecutive, so there is really no difference between:\n", + "\n", + "* A 24 cell, single dimmensional, array\n", + "* A 6 x 4 array (24 cells)\n", + "* A 2 x 2 x 2 x 3 array (24 cells)\n", + "\n", + "Aside from the metadata describing the shape of the array. Thes means that we can do stuff like generate a sequence and then **reshape** it into a multi-dimmensional array like we were doing manually above." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arr: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]\n", + "arr: [[ 0 1 2 3]\n", + " [ 4 5 6 7]\n", + " [ 8 9 10 11]\n", + " [12 13 14 15]\n", + " [16 17 18 19]\n", + " [20 21 22 23]]\n" + ] + } + ], + "source": [ + "arr = np.arange(24)\n", + "print('arr:', arr)\n", + "arr = arr.reshape(6, 4)\n", + "print('arr:', arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can transpose data with the .T operator. This flips the data so rows become columns and columns become rows. Here's an example using the above 6x4 array:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arr: [[ 0 4 8 12 16 20]\n", + " [ 1 5 9 13 17 21]\n", + " [ 2 6 10 14 18 22]\n", + " [ 3 7 11 15 19 23]]\n", + "arr: [ 0 4 8 12 16 20 1 5 9 13 17 21 2 6 10 14 18 22 3 7 11 15 19 23]\n" + ] + } + ], + "source": [ + "arr = arr.T\n", + "print('arr:', arr)\n", + "arr = arr.reshape(24)\n", + "print('arr:', arr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So arr changes from 6 x 4 to 4 x 6, and when we reshape it back to a 1d array, we can see how the values have been shuffuled from the transpose operation. \n", + "\n", + "#### *Exercise*\n", + "* Create a 3 x 3 array with values 0 through 8. \n", + "* Check the mean on axis 0.\n", + "* Transpose the array and verify that the mean on axis 1 matches what we had originally on axis 0. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Broadcasting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accelerating Numpy\n", + "If you have an Nvidia GPU, you can install Cuda and the python \"cupy\" library. It is almost a drop in replacement for numpy and can greatly accelerate large data operations. It's a little different from regular numpy in that you need to be aware of whether the array you're working on is stored in the GPU (cupy array) or on the system/CPU memory (numpy arrray) and copy the array between CPU and GPU depending on needs of the other libraries that need to use it. \n", + "\n", + "Here's a simple bit of code to compare numpy and cupy performance on your system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gc\n", + "import time\n", + "import cupy as cp\n", + "import numpy as np\n", + "\n", + "start_time = time.time()\n", + "# Create a sample array\n", + "gpu_array = cp.random.uniform(0, 1, (500000000,))\n", + "cp.cuda.Stream.null.synchronize() # Synchronize to ensure the transfer completes\n", + "gpu_time = time.time()\n", + "\n", + "# Transfer to CPU and back to GPU\n", + "cpu_array = cp.asnumpy(gpu_array)\n", + "# cpu_array = np.array(gpu_array.get())\n", + "cp.cuda.Stream.null.synchronize()\n", + "cpu_time = time.time()\n", + "\n", + "gpu_array_back = cp.array(cpu_array)\n", + "cp.cuda.Stream.null.synchronize()\n", + "gpu_back_time = time.time()\n", + "\n", + "# Compare values on GPU\n", + "gpu_consistent = cp.allclose(gpu_array, gpu_array_back)\n", + "cp.cuda.Stream.null.synchronize()\n", + "gpu_consistent_time = time.time()\n", + "\n", + "# Compare values on CPU\n", + "cpu_consistent = np.allclose(gpu_array.get(), gpu_array_back.get())\n", + "cp.cuda.Stream.null.synchronize()\n", + "cpu_consistent_time = time.time()\n", + "\n", + "print(f\"Time to init in GUP: {gpu_time - start_time:.6f} seconds\")\n", + "print(f\"Time to transfer from GPU to CPU: {cpu_time - gpu_time:.6f} seconds\")\n", + "print(f\"Time to transfer from CPU to GPU: {gpu_back_time - cpu_time:.6f} seconds\")\n", + "print(f\"Time to check consistency on GPU: {gpu_consistent_time - gpu_back_time:.6f} seconds\")\n", + "print(f\"Time to check consistency on CPU: {cpu_consistent_time - gpu_consistent_time:.6f} seconds\")\n", + "\n", + "print(f\"Via GPU - transfer consistency: {gpu_consistent}\") # Should print True\n", + "print(f\"Via CPU - transfer consistency: {cpu_consistent}\") # Should print True" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice Problems:\n", + "\n", + "**Advanced Slicing:**\n", + "\n", + "Given a 4x4 matrix, extract:\n", + "* The main diagonal.\n", + "* The lower-left 2x2 block.\n", + "\n", + "**Array Manipulation Challenge:**\n", + "\n", + "Create an array of size 20 with random integers between 1 and 100. Reshape the array into a 5x4 matrix and sort each row.\n", + "\n", + "**Data Analysis:**\n", + "\n", + "Given two 1D arrays representing time (in hours) and distance (in km) from a running event, calculate the average speed at each time point using NumPy.\n", + "\n", + "**Game of life:**\n", + "\n", + "This is a very involved project... implement Conway's Game of Life (https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) in numpy. Create a board of 20x20 cells with a randomized values of 0 or 1. \"1\" is alive, and \"0\" is dead.\n", + "\n", + "Iteratively apply the rules of GoL to increment the state of the board:\n", + "* Any live cell with fewer than two live neighbours dies, as if by underpopulation.\n", + "* Any live cell with two or three live neighbours lives on to the next generation.\n", + "* Any live cell with more than three live neighbours dies, as if by overpopulation.\n", + "* Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.\n", + "\n", + "You can print the board at each step to see its progression, or you can plot it as a heatmap, or some other method to visualize it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/T-Datetime.ipynb b/T-Datetime.ipynb index 60c61b0..d9edcb7 100644 --- a/T-Datetime.ipynb +++ b/T-Datetime.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section T - Datetime Module\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "**Topics**:\n", "* The Datetime Module\n", "* Conversion To String\n", diff --git a/V-Virtual_Environments.ipynb b/V-Virtual_Environments.ipynb index 6765d61..a8bd1ff 100644 --- a/V-Virtual_Environments.ipynb +++ b/V-Virtual_Environments.ipynb @@ -6,6 +6,8 @@ "source": [ "# Section V - Virtual Environments\n", "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", "What, how,and why!" ] }, From 3fca7cc4ce2b4a074c7df411acfbcf9c5a7bc408 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Mon, 14 Oct 2024 17:00:39 -0700 Subject: [PATCH 101/163] numpy notebook rdy to go --- N-Numpy.ipynb | 106 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 75 insertions(+), 31 deletions(-) diff --git a/N-Numpy.ipynb b/N-Numpy.ipynb index a5b6142..c3138df 100644 --- a/N-Numpy.ipynb +++ b/N-Numpy.ipynb @@ -238,23 +238,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "arr: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]\n", - "arr: [[ 0 1 2 3]\n", - " [ 4 5 6 7]\n", - " [ 8 9 10 11]\n", - " [12 13 14 15]\n", - " [16 17 18 19]\n", - " [20 21 22 23]]\n" - ] - } - ], + "outputs": [], "source": [ "arr = np.arange(24)\n", "print('arr:', arr)\n", @@ -271,21 +257,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "arr: [[ 0 4 8 12 16 20]\n", - " [ 1 5 9 13 17 21]\n", - " [ 2 6 10 14 18 22]\n", - " [ 3 7 11 15 19 23]]\n", - "arr: [ 0 4 8 12 16 20 1 5 9 13 17 21 2 6 10 14 18 22 3 7 11 15 19 23]\n" - ] - } - ], + "outputs": [], "source": [ "arr = arr.T\n", "print('arr:', arr)\n", @@ -316,9 +290,79 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Broadcasting" + "## Broadcasting\n", + "\n", + "This term, \"broadcasting\" describes how numpy handles numerical operations between arrays of different shapes. We use it to avoid looping on on operations in python and instead do it in C via numpy's functionality. Any time we add, multiply, etc an array, we're using this functionality. We'll cover the basict, but there are loads of examples in the official documentation:\n", + "\n", + "https://numpy.org/devdocs/user/basics.broadcasting.html\n", + "\n", + "When looking at the shape of two arrays to be broadcast, we have the following conditions on the right-most dimmension(s) of the arrays:\n", + "\n", + "* they must be equal\n", + "* one of them must be 1\n", + "\n", + "Let's look at an example where we multiply a (3x3) array with a sequence of 0-8 in it, and we multiply it by 4. We print four instances of this which have an equivelant result:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "arr = np.arange(9).reshape(3, 3)\n", + "print('arr - shape (3x3):\\n', \n", + " arr)\n", + "print('arr * 3 - shapes (3x3) and (1):\\n', \n", + " arr * 4)\n", + "print('arr * [3] - shapes (3x3) and (1):\\n', \n", + " arr * np.array([4]))\n", + "print('arr * [3, 3, 3] - shapes (3x3) and (3):\\n', \n", + " arr * np.array([4, 4, 4]))\n", + "print('arr * [[3, 3,3], [3...], []] - shapes (3x3) and (3x3):\\n', \n", + " arr * np.array([[4, 4, 4], [4, 4, 4], [4, 4, 4]]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's try a slight modification of this and broadcast a (3x3) array of ones into a (3) 1d array of [0, 1, 2]. The 1d array is broadcast across the 3x3. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "arr = np.ones((3, 3))\n", + "print('arr:\\n', arr)\n", + "arr = arr * np.arange(3)\n", + "print('arr * [0, 1, 2]:\\n', arr)\n", + "arr = arr.T * np.arange(3)\n", + "print('arr.T * [0, 1, 2]:\\n', arr)\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "Try to add a (3x3) array to each of the following shape arrays: \n", + "* (1), (2), (3)\n", + "* (1x3), (3x1), (2x3), (3x2)?, (3x3), (3x3x3)?\n", + "\n", + "I'd suggest using np.ones and np.arange with .shape to make arrays of each shape. What're the differences between (3), (1x3), and (3x1) arrays?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, From 8cad669a3038471ea1615f899cf209df43d461f2 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Mon, 14 Oct 2024 17:03:37 -0700 Subject: [PATCH 102/163] notebooks update --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6c23c9..f27c3b6 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ We have a series of python notebooks ready to work through to learn from. They * C-Functions_and_Module_Imports.ipynb - Introducing functions and modules in Python. * D0-Pandas_Example.ipynb - An example of importing data and doing some anaylsis and graphing to get a feel for how pandas works. * D1-Pandas_Intro_and_Data_selection.ipynb - Some pandas basics including imoprting data, manipulating columns of data, learning ways to select rows and columns of data, and exporting data to file. +* N-Numpy - Basics using numpy. Need to add some vectorization problems where we convert python code to numpy code... **In Development** * D2-Data_Cleaning.ipynb - Setting column data types, removing missing or invalid data, interpolation, etc tools for preparing data for analysis. @@ -87,7 +88,7 @@ This content is hosted here in a Git repository. You can check out a copy to you * Make a github.com account and install git. * Linux: sudo apt-get install git * Windows: https://git-scm.com/download/win - * Check out this repository in your project area: git clone https://github.com/a8ksh4/python_class.git` + * Check out this repository in your project area: git clone https://github.com/a8ksh4/python_workshop.git` Feel free to open "bug reports" in this repo for content you'd like to see added, changes needed, or corrections. Or make an improvement and submit a pull request and I'll merge your changes into the repo. From e38e52f18f5bf7a784399492a4d4f80d81092394 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Tue, 15 Oct 2024 09:41:44 -0700 Subject: [PATCH 103/163] added practice problems --- N-Numpy.ipynb | 73 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/N-Numpy.ipynb b/N-Numpy.ipynb index c3138df..5f8df4d 100644 --- a/N-Numpy.ipynb +++ b/N-Numpy.ipynb @@ -424,7 +424,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Practice Problems:\n", + "## Practice Problems\n", "\n", "**Advanced Slicing:**\n", "\n", @@ -438,8 +438,70 @@ "\n", "**Data Analysis:**\n", "\n", - "Given two 1D arrays representing time (in hours) and distance (in km) from a running event, calculate the average speed at each time point using NumPy.\n", + "Given two 1D arrays representing time (in hours) and distance (in km) from a running event, calculate the average speed at each time point using NumPy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Vectorization Problem\n", + "\n", + "The following python code uses loops to compute euclidean distances between two sets of points using the pythagorean theorem. Rewrite this using numpy wituhout using any loops. \n", + "\n", + "Remember that ** is exponent (not ^), and you can use np.sqrt rather than math.sqrt in your vectorized code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "# Two sets of 2D points (x, y)\n", + "points_a = [[1, 2], [3, 4], [5, 6]]\n", + "points_b = [[7, 8], [9, 10], [11, 12]]\n", + "\n", + "# List to store the results\n", + "distances = []\n", + "\n", + "# Calculate Euclidean distance between corresponding points\n", + "for a, b in zip(points_a, points_b):\n", + " distance = math.sqrt((a[0] - b[0])**2 + (a[1] - b[1])**2)\n", + " distances.append(distance)\n", "\n", + "print(\"Distances (with loops):\", distances)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Your vectorized solution here\n", + "import numpy as np\n", + "\n", + "points_a = np.array(points_a)\n", + "...\n", + "\n", + "\n", + "print(\"Distances (vectorized):\", distances)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge Problem\n", "**Game of life:**\n", "\n", "This is a very involved project... implement Conway's Game of Life (https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) in numpy. Create a board of 20x20 cells with a randomized values of 0 or 1. \"1\" is alive, and \"0\" is dead.\n", @@ -453,6 +515,13 @@ "You can print the board at each step to see its progression, or you can plot it as a heatmap, or some other method to visualize it." ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, From bd103185c763efdbb3c05e6314b4408f8d9ce932 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Tue, 15 Oct 2024 15:41:44 -0700 Subject: [PATCH 104/163] calendar update --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index f27c3b6..496c188 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,7 @@ We have a bunch of coureswork ready to use, including: See the Notebooks list below for a more detailed list. ## Current Schedule: -* NO WORKSHOP on Sep 11th and 18th -* Wednesday Sep 25th 4-5PM -* Wednesday Oct 2nd 4-5PM -* Each wednesday from 4-5PM ongoing. +As of October, we're continuing to meet each wednesday from 4-5PM. Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library". From a6697840c63f79273d001467517ae39fff54bf1e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 15 Oct 2024 20:48:28 -0700 Subject: [PATCH 105/163] add package install info --- C-Functions_and_Module_Imports.ipynb | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/C-Functions_and_Module_Imports.ipynb b/C-Functions_and_Module_Imports.ipynb index 1917ba5..c53c13c 100644 --- a/C-Functions_and_Module_Imports.ipynb +++ b/C-Functions_and_Module_Imports.ipynb @@ -338,6 +338,42 @@ "df = pd.DataFrame() # An empty dataframe" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Installing Modules\n", + "Many python modules are available to be installed from the Python Package Index - PyPI: https://pypi.org/. And anyone can contribute a module for other people to use. \n", + "\n", + "Official documentation on installing packages, incuding instructions on how to install pip, if needed: https://packaging.python.org/en/latest/tutorials/installing-packages/ \n", + "Official pip documintation: https://pip.pypa.io/en/stable/\n", + "\n", + "We use **pip** to install packages in most cases. A couple of exceptions:\n", + "* If you're using anaconda python, you should generally try to `conda install numpy` before using pip. \n", + "* If you're on linux, many packages will be available via your distro's package manager. For example in debian flavored distros, you can:\n", + " * `sudo apt install python3-numpy`\n", + " * `apt search python3 | grep some_package_i_need`\n", + "* If you're on mac using brew, you may want to `brew install python3-numpy`. I'm less familiar with mac, so test this. \n", + "\n", + "Also note that in some cases, you must create a virtual environment (venv) to install packages. See the V-Virtual_Environments notebook for more info about this. \n", + "\n", + "**Basic pip install command**:\n", + "\n", + " pip install numpy\n", + "\n", + "**When pip is not in your path, but it is installed:**\n", + "\n", + " python3 -m pip install numpy\n", + "\n", + "**Pip install from inside a notebook** !!!\n", + "\n", + " %pip install numpy\n", + "\n", + "Pip may prompt you to update pip. This is normal and you should do it. When you run pip (or conda), it checks the dependencies of all installed modules, each of which may have dependencies on specific versions of other modules, and tries to find a combination of all of your installed modules that work well together. You'll sometimes be prompted about changes to installed package versions when you add a new package, as well as being prompted to install dependencies of your requested packaegs. For example, if you install pandas, pip will also install numpy. \n", + "\n", + "A final thing to keep in mind is that because PyPI is a public resource with contributions from many thousands of people, there can be malicious code included with packages. Just be cautious. Most packages include source code and if it's something simple without too many other users, you might want to read through te source to see how it works. If you use python at work, it's a very good idea for you to ensure your organization has a strategy for code scanning and approving modules for use. Bark up the chain a bit and advocate for stuff like this if it isn't already in place. " + ] + }, { "cell_type": "markdown", "metadata": {}, From 4ae9f984abd77ee1f82e202c5047b73d30f8c102 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 15 Oct 2024 20:48:44 -0700 Subject: [PATCH 106/163] Add sets info --- A-Getting_Started.ipynb | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/A-Getting_Started.ipynb b/A-Getting_Started.ipynb index c48022d..d71377e 100644 --- a/A-Getting_Started.ipynb +++ b/A-Getting_Started.ipynb @@ -132,7 +132,7 @@ "The indentation in c code is functionally unnecessary, but makes it readable. The { and } group the code.\n", "\n", "### Quoting\n", - "Strings, non-numeric values, are quoted with ', \", ''', \"\"\". We'll look at this more in the strings section below. Just note this. Variable names are not quoted, but values when assigned or passed as arguments to a function are if they are to be treated as strings. \n", + "Strings, non-numeric values, are quoted with ', \", ''', \"\"\". We'll look at this more in the strings section below. Just note this. Variable names are not quoted, but values are treated as strings if they are quoted when assigned to variables or passed as arguments to a function.\n", "\n", "Examples:\n", "* x = \"Hasn't seen it\"\n", @@ -654,7 +654,7 @@ "metadata": {}, "source": [ "# Lists\n", - "List can contain any type of object, not just strings. Even lists of lists! Like strings, list objects have built in functions to work with them:\n", + "List are a type of collection that may contain any type of object - numbers, strings, even lists of lists! The order of things in a list is preserved. Like strings, list objects have built in functions to work with them:\n", "\n", " >>> my_list = ['some', 'words', 'and', 'numbers', 4, 5, 6, 'and a list', ['foo', 'too']]\n", " >>> my_list.\n", @@ -710,7 +710,7 @@ "metadata": {}, "source": [ "# Tuples\n", - "Tuples are like lists, but cannot be changed once defined. When you see a tuple, it implies finality. Tuple objects only have a couple of built in functions:\n", + "Tuples are another type of collection, like lists, but cannot be changed once defined - they are immutable. When you see a tuple, it implies finality. Tuple objects only have a couple of built in functions:\n", "\n", " >>> all_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')\n", " >>> all_colors.\n", @@ -749,11 +749,38 @@ "source": [ "# Sets\n", "\n", - "Sets are like lists, but are a collection of things without duplicates. The set operators are a little different. Instead of .append, we use .add. And sets have functions for finding intersectinos between sets, which don't exist for lists. \n", + "Sets are another type of collection where only unique items are saved. Order is not preserved, and you can put anything into a set, but if the same thing is added twice, only one exists in the set. Sets have functions to comapare sets for uniqueness and intersection.\n", + "\n", + " >>> berries = {'blueberry', 'strawberry'}\n", + " >>> fruits = set()\n", + " >>> fruits.add('apple')\n", + " >>> fruits.add('strawberry')\n", + " >>> fruits.intersection(berries)\n", + " {'strawberry'} \n", + " >>> fruits.difference(berries)\n", + " {'apple'}\n", + " >>> fruits.\n", + " fruits.add( fruits.issubset(\n", + " fruits.clear( fruits.issuperset(\n", + " fruits.copy( fruits.pop(\n", + " fruits.difference( fruits.remove(\n", + " fruits.difference_update( fruits.symmetric_difference(\n", + " fruits.discard( fruits.symmetric_difference_update(\n", + " fruits.intersection( fruits.union(\n", + " fruits.intersection_update( fruits.update(\n", + " fruits.isdisjoint(\n", "\n", - "## TODO add more here." + "#### *Exercise*:\n", + "TODO" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, From 046ee0849e49231193341abf1054fd27d8b23ed5 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 15 Oct 2024 20:48:55 -0700 Subject: [PATCH 107/163] reorganize --- G-Web_Scraping.ipynb => W-Web_Scraping.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename G-Web_Scraping.ipynb => W-Web_Scraping.ipynb (100%) diff --git a/G-Web_Scraping.ipynb b/W-Web_Scraping.ipynb similarity index 100% rename from G-Web_Scraping.ipynb rename to W-Web_Scraping.ipynb From d18c8d300bbc8d64e952694bfb16652fd92e3627 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 15 Oct 2024 21:13:20 -0700 Subject: [PATCH 108/163] finding data to use --- D3-Pandas_Graphing.ipynb | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index f54bb3c..696278b 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -30,6 +30,22 @@ "metadata": {}, "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "data_url = 'https://waterservices.usgs.gov/nwis/iv/?sites=11455485&startDT=2024-03-15T20:55:29.967-07:00&endDT=2024-10-15T20:55:29.967-07:00&format=rdb'\n", + "tol = pd.read_csv(data_url, sep='\\t', comment='#', header=0)\n", + "tol.drop(tol.index[0], inplace=True)\n", + "print(tol)\n", + "# regression/scatter of specific conductivity and salinity\n", + "# time series with nitrate and chlorophyll; ph,do and chlorophyll...\n", + "# Boxplot of daily temperature" + ] + }, { "cell_type": "code", "execution_count": null, @@ -46,8 +62,22 @@ } ], "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" } }, "nbformat": 4, From e1b9a5e2f4673064948770c12b9ec31456817121 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 15 Oct 2024 21:13:56 -0700 Subject: [PATCH 109/163] small change --- D5-Exmaple_Data_Sources.ipynb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/D5-Exmaple_Data_Sources.ipynb b/D5-Exmaple_Data_Sources.ipynb index 0fbbf23..709db76 100644 --- a/D5-Exmaple_Data_Sources.ipynb +++ b/D5-Exmaple_Data_Sources.ipynb @@ -236,10 +236,11 @@ "import hydrofunctions as hf\n", "\n", "#Example Sites:\n", - "# 'CCH':'11455350',\n", - "# 'CCH41':'11455385',\n", - "# 'CFL':'11455508',\n", - "# 'DEC':'11455478',\n", + "# 'CCH':'11455350', # old CCH41\n", + "# 'CCH41':'11455385', # now called RYF\n", + "# 'CFL':'11455508', # now called CONFL\n", + "# 'DEC':'11455478', # old TOL\n", + "# 'TOL': '11455485',\n", "\n", "startDT = '2022-01-01'\n", "endDT = '2024-02-02'\n", @@ -311,7 +312,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From efb2448063ce5d9435e6fe6f723617d8cb34abdb Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Thu, 17 Oct 2024 15:23:31 -0700 Subject: [PATCH 110/163] lots of plotting content! --- D3-Pandas_Graphing.ipynb | 267 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 246 insertions(+), 21 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 696278b..38c1414 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -8,39 +8,40 @@ "\n", "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", - "We'll go through a few types of graphs here!\n", + "## DataFrame.plot\n", + "The plot function built into the Pandas DataFrame object works with matplotlib to generate plots for you using a few standard arguments:\n", "\n", - "## Time series\n", - "\n", - "## Multi Axis\n", - "\n", - "## Scatter Plot\n", - "\n", - "## Box and Whisker Plot\n", + "* **data** is the dataframe object to work on. If you call df.plot, this is implied, and if you call pd.DataFrame.plot(data=df, ...) it must be given as an argument. \n", + "* **x** is a label or position, defaulting to None.\n", + "* **y** is a label, position, or list of balel, positions, defaulting to None.\n", + "* **kind** is the type of plot to make: line, bar, hist, scatter, etc... \n", "\n", - "## Histogram\n", - "\n", - "## Heatmap\n", - "\n", - "## Multiple Plots" + "As well as a bunch of more detailed options for the plot axis, subplots, style options etc. Read over the documintation for a few min to see what options are available: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html" ] }, { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "Let's make a few typesc of charts! We'll start by pulling some data that we can work with. This is from the USGS gauging station at Toland Landing in Rio Vista, CA. This data clearly shows the tide, includes a lot of parameters to play with.\n", + "\n", + "Note that we're importing numpy and pyplot here, as these are needed in a couple examples below." + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", - "data_url = 'https://waterservices.usgs.gov/nwis/iv/?sites=11455485&startDT=2024-03-15T20:55:29.967-07:00&endDT=2024-10-15T20:55:29.967-07:00&format=rdb'\n", - "tol = pd.read_csv(data_url, sep='\\t', comment='#', header=0)\n", - "tol.drop(tol.index[0], inplace=True)\n", - "print(tol)\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "data_url = 'https://waterservices.usgs.gov/nwis/iv/?sites=11455485&startDT=2024-09-15T20:55:29.967-07:00&endDT=2024-10-15T20:55:29.967-07:00&format=rdb'\n", + "tol_all= pd.read_csv(data_url, sep='\\t', comment='#', header=0)\n", + "tol_all = tol_all.drop(tol_all.index[0])\n", + "\n", "# regression/scatter of specific conductivity and salinity\n", "# time series with nitrate and chlorophyll; ph,do and chlorophyll...\n", "# Boxplot of daily temperature" @@ -51,6 +52,230 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [ + "cols = {'datetime': 'datetime',\n", + " '288768_00065': 'gage height ft',\n", + " '288432_00010': 'temperature C',\n", + " '288434_00095': 'specific conductance uS/cm',\n", + " '291459_00300': 'dissolved oxygen mg/L',\n", + " '291463_00400': 'pH',\n", + " '304254_32295': 'dom ug/L',\n", + " '305297_90860': 'salinity ppt',} \n", + "tol = tol_all[cols.keys()].rename(columns=cols)\n", + "tol['datetime'] = pd.to_datetime(tol['datetime'])\n", + "tol = tol.set_index('datetime')\n", + "tol = tol.apply(pd.to_numeric, errors='coerce')\n", + "print(tol.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Time series\n", + "Since the datetime values in our df are set as the index, plot will automatically use them for the x axis. We specify which column we want to use for the y axis, and the plot type, and we get a decent looking graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGrCAYAAADqwWxuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZxlVXUvvs65Q1X1yCBIA80gCoKIAUUfOCcOwSF5xPgSQxKn+ExiYkxifoYkDokijmjEiDxjkPjERI0a4/iCERDQMKo4ME/N2NI03dXdVbfucH5/nLvPXmvttfc5e+/qulXde30+/emqunffs8+5e1j7u77ru7KiKApIlixZsmTJkiVbRpZPugPJkiVLlixZsmTckoOSLFmyZMmSJVt2lhyUZMmSJUuWLNmys+SgJEuWLFmyZMmWnSUHJVmyZMmSJUu27Cw5KMmSJUuWLFmyZWfJQUmWLFmyZMmSLTtrT7oDITYajeC+++6DtWvXQpZlk+5OsmTJkiVLlqyBFUUBs7OzcPDBB0OeuzGSFemg3HfffbBx48ZJdyNZsmTJkiVLFmCbNm2CQw891PmeFemgrF27FgDKG1y3bt2Ee5MsWbJkyZIla2Lbt2+HjRs3Vvu4y1akg6LCOuvWrUsOSrJkyZIlS7bCrAk9I5FkkyVLlixZsmTLzpKDkixZsmTJkiVbdpYclGTJkiVLlizZsrMVyUFJlixZsmS7x4bDIfT7/Ul3I9kKtU6nA61Wa1E+KzkoyZIlS5YMiqKABx54AB555JFJdyXZCrd99tkHDjrooGidsuSgJEuWLFmyyjk58MADYdWqVUkEM5m3FUUBu3btgs2bNwMAwIYNG6I+LzkoyZIlS7aX23A4rJyT/ffff9LdSbaCbWZmBgAANm/eDAceeGBUuCeRZJMlS5ZsLzfFOVm1atWEe5JsTzA1jmK5TMlBSZYsWbJkANBMPCtZsjpbrHGUHJRkyZIlS5Ys2bKziTgow+EQ3vrWt8KRRx4JMzMzcNRRR8E73/lOKIpiEt1JlixZsmTJFt3e8Y53wC/8wi9EfcYll1wCWZZ5ZVctxnWV7dq1C172spfBunXrvPsRaxNxUN773vfCeeedBx/96EfhZz/7Gbz3ve+F973vfXDuuedOojvJktXawmAELzvvSvjTf/3BpLuSLFmyvchOPfVUuP/++2H9+vWL+rnPec5z4E1velPt+y688EL47ne/C1deeSXcf//9sHXrVsiyDH7wgx8san8km4iDcuWVV8Kv/uqvwotf/GI44ogj4Nd//dfhBS94AVx11VWT6E6yZLX2s/u3w7V3bYUvXX8vPLxzYdLdSZYs2V5i3W53UTRFQu22226DY489Fo4//vgl78dEHJRTTz0Vvv3tb8PNN98MAAA//OEP4fLLL4fTTjtNfH+v14Pt27eTf8mSLaVtm9Ns9Id29CbYk2TJkmGbnZ2FM844A1avXg0bNmyAD33oQwY68OlPfxqe8pSnwNq1a+Gggw6C3/qt36q0OpR95Stfgcc97nEwPT0Nz33uc+HCCy80QhqXX345PPOZz4SZmRnYuHEjvPGNb4SdO3fW9vHTn/40HHHEEbB+/Xr4zd/8TZidna1eG41GcPbZZ1eUhyc96UnwhS98oXpdCvF84hOfgI0bN8KqVavg9NNPh3POOQf22Wefxtd91ateBZdeein8/d//PWRZBlmWwZ133mm0f85zngMf/OAH4bLLLoMsy+A5z3kOHHnkkQAAcOKJJ1Z/221WTMCGw2Hxlre8pciyrGi320WWZcW73/1u6/vf/va3FwBg/Nu2bdsS9jrZ3mz/du2m4vC3fLU4/C1fLb5320OT7k6yZItqc3NzxU9/+tNibm6u+ttoNCp29vpL/m80Gnn1/fd+7/eKww8/vLj44ouLG264oTj99NOLtWvXFn/yJ39SveeTn/xk8fWvf7247bbbiu9973vFKaecUpx22mnV67fffnvR6XSKN7/5zcWNN95YfPazny0OOeSQAgCKrVu3FkVRFLfeemuxevXq4kMf+lBx8803F1dccUVx4oknFq961ausfXv7299erFmzpvi1X/u14oYbbiguu+yy4qCDDir+6q/+qnrPu971ruLxj3988c1vfrO47bbbigsuuKCYmpoqLrnkkqIoiuI73/kO6cfll19e5HlevP/97y9uuumm4h/+4R+K/fbbr1i/fn3j6z7yyCPFKaecUrzuda8r7r///uL+++8vBoOB0f8tW7YUr3vd64pTTjmluP/++4stW7YUV111VQEAxcUXX1z9jZs0npRt27at8f49EaG2z33uc/CZz3wGLrroInjCE54AP/jBD+BNb3oTHHzwwfDKV77SeP+ZZ54Jf/Znf1b9vn37dti4ceNSdjnZXm44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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tol.plot(y='gage height ft', kind='line')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What a nice view showing impact of the tides on the gage height... we can see the high-highs, low-highs, high-lows, and low-lows!\n", + "\n", + "#### *Exercise*:\n", + "Set a few plot parameters to inprove the plot:\n", + "* title, xlabel, ylabel\n", + "* use figsize to make the plot wider. Try (10,5) to start.\n", + "* change y='...' to a list y=['...', '...'] and add the specific conductance column\n", + "* sharing an axis between gauge height and specific conductance doesn't work very well, so set secondary_y='specific conductance uS/cm'. \n", + "What migh twe say aobut the tide cycle at this station, seen via gauge height, and the conductance? \n", + "\n", + "## Scatter\n", + "Scatter plots are useful for visualizing correlation, distribution, and clustering of data. Let's see if there's a relatinship between salinity and conductance in our data:" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABiVklEQVR4nO3deVyU5f4//tewgzgDskqigiIuuRuKC65paqVHT6nfculo59TBLT+2PSpbrKxOWWaWp45LntLSjplHyyXcFXEDt6OkgoIp+w7Kev/+8MfEAHPPzD33zczNvJ6PB4/ivm4urptR5821vN8aQRAEEBERETkwJ1sPgIiIiMjWGBARERGRw2NARERERA6PARERERE5PAZERERE5PAYEBEREZHDY0BEREREDs/F1gNQg5qaGty6dQstW7aERqOx9XCIiIjIDIIgoLi4GCEhIXByEp8DYkBkhlu3biE0NNTWwyAiIiIJ0tPT0aZNG9F7GBCZoWXLlgDu/UC1Wq2NR0NERETmKCoqQmhoqP59XAwDIjPULpNptVoGRERERCpjznYXbqomIiIih8eAiIiIiBweAyIiIiJyeAyIiIiIyOExICIiIiKHx4CIiIiIHB4DIiIiInJ4DIiIiIjI4TEgIiIiIofHgIiIiIgcHkt3EBERNSMp2SW4kVeG9n4tEObfwtbDUQ0GRERERM1AQVkF5m9KwqEr2fprMREBWDmtN3RerjYcmTpwyYyIiKgZmL8pCUev5hhcO3o1B/M2JdpoROrCgIiIiEjlUrJLcOhKNqoFweB6tSDg0JVspOaU2mhk6sGAiIiISOVu5JWJtl/PZUBkCgMiIiIilWvXyku0vb0fN1ebwoCIiIhI5cIDvOFrZOO0r5crT5uZgQERERGRyqVklyC/rLLRtvyySu4hMgMDIiIiIpXjHiLrMSAiIiJSOe4hsh4DIiIiIpULD/BGTEQAnDUag+vOGg1iIgK4h8gMDIiIiIiagbcn3g+tp2EBCq2nC96ZeL+NRqQuDIiIiIiagVe3XUDRnSqDa0V3qvDKtgs2GpG6MCAiIiJSuabIVJ2SXYL9yVnN9sQai7sSERGpnDmnzKTuI2qKorEHk7OQdLMAfdr6YkhEgCx9WooBERERkcopecpMrGjshtlRkvsFgBu5pZi46qhBDiVfL1dsjx2MUD/xZ5Ibl8yIiIhUTqlTZkovxdUPhoB7iSQfXXXEqn6lYEBERETUDKyc1huDOvobXBvU0R8rp/WW3KeSCR8PJmeJZtc+XGeJrilwyYyIiKiJpWSX4EZeGdr7tZAtR5DOyxUbZkchNacU13NLZelbyaW4pJsFou1n0vKbdD8RAyIiIqIm0hQblMP85QuyTqbmibafup4n+Xv1auMj2t6nra+kfqXikhkREVETEdugbI/iU3NF249eyxFtFzM0MhC+RoJAXy/XJj9txoCIiIioCTRFriC5RYf5ibYP6uAv2m7K9tjBDYKi2lNmTY1LZkRERE1AyVxBSpkS1RavbLuAqhqhQZuLkwaP9Qu1qv9QPy8kLhmNw1eycSYt36Z5iDhDRERE1ATUWpF+e+wguDgZHud3cdJge+wg2b7HkIgALBjZyWbBEGBHAdF7770HjUaDhQsX6q/dvXsXsbGx8PPzg7e3NyZPnozMzEyDr0tLS8P48ePh5eWFwMBAPP/886iqMqzlcuDAAfTp0wfu7u7o2LEj1q9f3wRPRERE9Ae1VqTvep8OV98dh3/8uQcm9g7BP/7cA1ffHYeu9+lsPTRZ2UVAdPLkSfzzn/9Ejx49DK4/99xz+O9//4stW7bg4MGDuHXrFiZNmqRvr66uxvjx41FRUYFjx47h66+/xvr167FkyRL9PampqRg/fjyGDx+OpKQkLFy4EHPmzMHu3bub7PmIiIgAZXIF1XcwOQsr4n6TPY/PY/1C8cmU3lYvk9krjSAIDRcGm1BJSQn69OmDzz//HG+//TZ69eqFTz75BIWFhQgICMDGjRvx5z//GQBw+fJldOnSBfHx8RgwYAB++eUXPPzww7h16xaCgoIAAKtXr8aLL76I7OxsuLm54cUXX8TOnTtx4cIf1X6nTp2KgoIC7Nq1y6wxFhUVQafTobCwEFqtVv4fAhERORQ5cwXVsqcyGPbCkvdvm88QxcbGYvz48Rg1apTB9dOnT6OystLgeufOndG2bVvEx8cDAOLj49G9e3d9MAQAY8aMQVFRES5evKi/p37fY8aM0ffRmPLychQVFRl8EBERySXMvwWGRwbKukxmT2Uw1MimAdF3332HM2fOYNmyZQ3aMjIy4ObmBh8fH4PrQUFByMjI0N9TNxiqba9tE7unqKgId+7caXRcy5Ytg06n03+EhjbP6UEiImoe7K0MhhrZLCBKT0/HggUL8O2338LDw8NWw2jUyy+/jMLCQv1Henq6rYdERERklDllMEiczQKi06dPIysrC3369IGLiwtcXFxw8OBBfPrpp3BxcUFQUBAqKipQUFBg8HWZmZkIDg4GAAQHBzc4dVb7ual7tFotPD09Gx2bu7s7tFqtwQcREZG9srcyGGpks4Bo5MiROH/+PJKSkvQf/fr1wxNPPKH/f1dXV8TFxem/Jjk5GWlpaYiOjgYAREdH4/z588jKytLfs3fvXmi1WnTt2lV/T90+au+p7YOIiKippWSXYH9ylmzZqe2tDIYa2SxTdcuWLXH//fcbXGvRogX8/Pz012fPno1FixahVatW0Gq1mDdvHqKjozFgwAAAwOjRo9G1a1dMnz4dH3zwATIyMvDqq68iNjYW7u7uAIBnnnkGn332GV544QX85S9/wb59+7B582bs3LmzaR+YiIgcnpLFXb+ZHYUJq44ZZJV2cdLg29n9rerXUdj8lJmYjz/+GA8//DAmT56MmJgYBAcHY+vWrfp2Z2dn7NixA87OzoiOjsaTTz6JGTNm4K233tLfExYWhp07d2Lv3r3o2bMnPvroI/zrX//CmDFjbPFIRETkwJQs7vr+rt9QP5GOIADv7Uq2um9HYPM8RGrAPERERGStlOwSjPjooNH2/YuHST6Gr2TfaqaqPERERESOwJzirvbYt6NgtXsiIiIjDiZnIelmgSxV2JUs7qrWwrH2hAERERFRPWorg1FbOPbo1RxU19kJ46zRYFBHf4dcLrMUl8yIiIjqUaIMhtLLWk1ROLY54wwRERFRHeaUwZCyfKb0spbOyxUbZkcpUjjWEXCGiIiIqA6lymDULms5azQG1501GsREBMgWvChRONYRMCAiIiKqQ8kyGFzWsl9cMiMiIqqjtgxGY8tm1pbB4LKW/eIMERERUT3bYwc3qA1We8pMDlzWsj+cISIiIqon1M8LiUtG4/CVbJxJy5clDxHZNwZERERERgyJCGAg5CC4ZEZEREQOjwEREREROTwumRERETWxlOwS3Mgr4ykzO8KAiIiIqIkUlFVg/qYkHLqSrb8WExGAldN6Q1fvVBs1LS6ZERGRqqVkl2B/chZSc6yrBdYU/v7tGYNgCAAOXcnGs9+ettGIqBZniIiISJXUNtuSkl2CY9dyG207di0XqTmlXD6zIc4QERGRKs3flISjV3MMrh29moN5mxJtNCJxCamNB0P69hTxdlIWAyIiIlKdlOwSHLqSjWpBMLheLQg4dCXbTpfPNKKtgmgrKY0BERERqc6NvDLR9uu59hcQheg8RNvb+Ho20UioMQyIiIhIddq18hJtb+9nf3txaky0V9VwjsiWGBAREZHqhAd4IyYiAM4aw2UoZ40GMREBsm1OPpichRVxv+FwvZNhUqgxiHMkPGVGRESqtHJab8zblGhwymxQR3+snNbb6r5v5JZi4qqjyC+r1F+rrXYf6ice2BhTG8QdvZpjsPfJWaPBoI7+PGFmYxpBEDhHZ0JRURF0Oh0KCwuh1WptPRwiIqojNacU13NLZc363PPN3Si8U9Xgus7TBWdfHyO53ws3CzHx86MGy2MuThpsjx2ErvfpJPdLjbPk/ZtLZkREpGph/i0wPDJQ1mWyxoIhACi8U2XV8tn0tQkN9gpV1Qh4Yk2C5D5JHgyIiIiI6tifnCXaHncpU1K/B5OzDJbg6sovq5RlnxJJx4CIiIiojlYt3ETb/b3dJfWbdLNAtP1MWr6kfkkeDIiIiIjqeLhHiGj7eBPtxvRq4yPa3qetr6R+SR4MiIiISNXkLu4aHuCNqPatGm2Lat9K8l6loZGB8DVSY83XyxVDIgIk9Uvy4LF7IiJSJSWLu341o1+DI/21fVvjm9lRmLDqWINTZt/O7m9Vv2Q9zhAREZEqKVncVVCostj7u35D/WQ3ggC8tytZke9H5mNAREREqqN0cVclgi11FqR1HAyIiIhIdZQs7qpU4KLGgrSOhAERERGpjpJ1wZQKXFjLzL4xICIiItVRsrirUoFLUxWkJWkYEBERkSqtnNYbgzr6G1yTq7irUtQ4ZkfBY/dERKRKOi9XbJgdJXtx1x3nbom27zx3C3NHREjqW6kxk/UYEBERkaoJ9c+xWymvtEK0Paek3OrvEebPQMjeMCAiIqImkZJdght5ZbLNiiiVmLFLsFa0vVuITnLfZL8YEBERkaKUClzEcgVtmB0lud8aE0kZq2uUSdpItsVN1UREpCi1JTnMLhZfMsuWYcmM7A8DIiIiUowakxwGtHQTb/d2l9w32S8GREREpBilAhdTb14uThoTdxjXP8xPvD1cvJ3USdIeolu3buHIkSPIyspCTU2NQdv8+fNlGRgREamfUkkOa0y0V3GfD1nI4oBo/fr1+Nvf/gY3Nzf4+flBUyfjpkajYUBERER64QHeGNjBD8eu5TZoG9jBT/Jps4s3C0XbL90qwvDIQEl9mzOrxSPzzY/FAdFrr72GJUuW4OWXX4aTE1fciIhInLE0QdakD7qaUyLa/ltWseS+WXPMMVkc0ZSVlWHq1KkMhoiImqGU7BLsT86y6pRW/f7iUxrODgFAfEqu5O8TbWKfz6AO/qLtYlhzzDFZHNXMnj0bW7ZsUWIsRERkIwVlFZix5gRGfHQQT607ieEfHsCMNSdQWFZpVb9KbaqeEtXW6MZpFycNHusXKqnfWqw55ng0goU5z6urq/Hwww/jzp076N69O1xdDZNqLV++XNYB2oOioiLodDoUFhZCqxXPYEpEpEYz1pzA0as5BsfjnTUaDOrob1WSw5TsEoz46KDR9v2Lh0mecTl+NRdT/3W8wfXvnx6A/h3kOQnGmmPqZsn7t8V7iJYtW4bdu3cjMjISABpsqiYiInWpzRVUX91cQfYYDHx+8BqcNZoGQdyqA9dkC4hYc8xxWBwQffTRR1i7di1mzZqlwHCIiKipKXmqSqm+myqIO5ichaSbBejT1hdDIgKs7o/sl8UBkbu7OwYNGqTEWIiIyAaUPFWlVN9KH42/kVuKiauOIr/OHipfL1dsjx2MUD/xZyJ1snhT9YIFC7By5UolxkJERDag5KkqpfpW+mh8/WAIAPLLKvHoqiNW9Uv2y+IZohMnTmDfvn3YsWMHunXr1mBT9datW2UbHBERNY23J3bDhHpBgNbTBe9MvN/qvldO6415mxINlrjs+cTWweSsBsFQrfyyShy+ks3ls2bI4oDIx8cHkyZNUmIsRERkI69uu4iiO1UG14ruVOGVbResOmUGADovV2yYHSXria2E1DzR9uMpuZK/R9LNAtH2M2n5DIiaIYsDonXr1ikxDiIispGm2qAs54mt7OK7ou25JeWS++7Vxke0vU9bX8l9k/2yeA9Ramoqrly50uD6lStXcP36dTnGRERETUip5IlKCmjpIdru5+0uue+hkYHw9XJttM3Xy5WzQ82UxQHRrFmzcOzYsQbXExISeBSfiKgOuctgKKWpancdTM7CirjfcLiR2ShLhejEA6I2vp5W9b89dnCDoKj2lBk1TxYvmSUmJjZ67H7AgAGYO3euLIMiIlKzgrIKzN+UZLAMFRMRgJXTekNnZObBlmpPghnLVG3tMpcSR9hrTLRX1VhRORZAqJ8XEpeMxuEr2TiTls88RA7A4hkijUaD4uKGVYQLCwtRXV0ty6CIiNRs/qYkHL2aY3Dt6NUczNuUaKMRmaZk7a5HPzvS6BH2hz87LLlPU29exuqcWWpIRAAWjOzEYMgBWDxDFBMTg2XLlmHTpk1wdnYGcK++2bJlyzB4MKcSicixqbUMRu1JsEO/ZSMxXb4ZkYPJWSisd3qtVuGdKslH2G8V3hFt/z1fvJ2oPosDovfffx8xMTGIjIzEkCFDAACHDx9GUVER9u3bJ/sAiYjUROkMykpRaplvf3KWaHvcpUyJgZf4DJB1C2bkiCxeMuvatSvOnTuHxx9/HFlZWSguLsaMGTNw+fJl3H+/9Qm8iIiaktwbn5tqg7LclFrma9XCTbTdX+JpsP5hrUTbB4TLU9yVHIfZM0Rr167Fo48+Cn9/f4SEhODdd99VclxERIpSakZE6Q3KSlByma+niZw+PUPF240JD/BGdLgf4lNyG7RFh/vZ5c+Z7JvZM0TffPMN2rRpg4EDB+L999/H5cuXlRwXEZGilNz4rOQGZSUomYfoVqF4AsWbVuz1eX9yj0aPxn8wuYfkPslxmT1DtG/fPuTn52Pnzp3Yvn073nnnHQQFBeHRRx/FhAkTMHjwYDg5WbwCR0TNSEp2CW7klclSmkFJSm98VqJUhZKUPLGlZEbpV7ddUKzcCDkeizZV+/r64sknn8STTz6JiooK7Nu3D9u3b8cTTzyBO3fuYNy4cXj00UcxduxYtGhhv3/5iUheasu701Qbn+UsVVGX3IGnkie2AlqK7xGSuodIraf5yH5JntJxc3PDQw89hM8//xzp6enYtWsX2rdvj6VLl2L58uVyjpGI7Jza8u6odeNzQVkFZqw5gREfHcRT605i+IcHMGPNCRQaqcxuPuVObPUPE9/c3F/i5mc1lhsh+2b1GldVVRVKSkrQr18/vPXWWzh79ixeeuklOcZGRCpQ+5t63Q3EgOFv6vamduOzs8YwEHDWaBATEWC3MwtKBZ5KntgKD/AWbZf6s1ZrUEv2y+yA6L///S/Wr19vcO2dd96Bt7c3fHx8MHr0aOTn5wMAXF3tb4qciJSh1t/U1bbxWY2BJwB8fyJNtH3LqXRJ/ao1qCX7ZXZAtHz5cpSW/vEX7tixY1iyZAlee+01bN68Genp6Vi6dKlF3/yLL75Ajx49oNVqodVqER0djV9++UXffvfuXcTGxsLPzw/e3t6YPHkyMjMzDfpIS0vD+PHj4eXlhcDAQDz//POoqjLcZHfgwAH06dMH7u7u6NixY4PAjoikU+tv6rUbn/cvHoZ1Tz2A/YuHYcPsKLvc8wQoG3gq2ffeS5mi7XsuZkjuW21BLdk3szdVX7x40WBv0A8//IAHH3wQr7zyCgDAw8MDCxYssGj/UJs2bfDee+8hIiICgiDg66+/xoQJE5CYmIhu3brhueeew86dO7FlyxbodDrMnTsXkyZNwtGjRwHcKxkyfvx4BAcH49ixY7h9+zZmzJgBV1dXfZ6k1NRUjB8/Hs888wy+/fZbxMXFYc6cOWjdujXGjBlj9liJqHFqzLtTl1Ibn+WmZOCpZN9aD/EAU+spPQBV22k+sm9mzxAVFxfDz++PdeQjR45g5MiR+s+7deuGW7duWfTNH3nkEYwbNw4RERHo1KmTfgnu+PHjKCwsxJo1a7B8+XKMGDECffv2xbp163Ds2DEcP34cALBnzx7873//wzfffINevXph7NixWLp0KVatWoWKigoAwOrVqxEWFoaPPvoIXbp0wdy5c/HnP/8ZH3/8sUVjJSLj+Ju68sIDvDGwQ+N7eQZ2sC4RYXiANx5o79toW1R7X6v6fiCs8X717e3F9y+ZI8y/BYZHBjIYIquYHRDdd999uHTpEgCgpKQEZ8+excCBA/Xtubm58PIS/y1DTHV1Nb777juUlpYiOjoap0+fRmVlJUaNGqW/p3Pnzmjbti3i4+MBAPHx8ejevTuCgoL094wZMwZFRUW4ePGi/p66fdTeU9tHY8rLy1FUVGTwQUTGqW35Sa0EI8e9jF23xG+ZJY1eTzZy3VwhOk/R9vt8xduJmorZAdFjjz2GhQsX4t///jeefvppBAcHY8CAAfr2U6dOITIy0uIBnD9/Ht7e3nB3d8czzzyDH3/8EV27dkVGRgbc3Nzg4+NjcH9QUBAyMu6tOWdkZBgEQ7XttW1i9xQVFeHOncZzayxbtgw6nU7/ERoaavFzETki/qaunJTskkbLVABAfEquVZuq71Wkb/zofuGdShxuJN+PuWpMtFfVsAwr2QezA6IlS5bggQcewPz585GUlIRvvvkGzs7O+vZNmzbhkUcesXgAkZGRSEpKQkJCAp599lnMnDkT//vf/yzuR04vv/wyCgsL9R/p6dJOQRARyUXJjc9JNwtE28+k5Uvu+3CyeDB19EqOaDtRUzF7U7Wnpyc2bNhgtH3//v2SBuDm5oaOHTsCAPr27YuTJ09ixYoVmDJlCioqKlBQUGAwS5SZmYng4GAAQHBwME6cOGHQX+0ptLr31D+ZlpmZCa1WC0/Pxqdq3d3d4e4uLXsqESlDLWVB6pJzzEqW1+hlogBrn7bi+4DEXMoQ33Jw8Vah5L6J5GRR6Y6mUFNTg/LycvTt2xeurq6Ii4vD5MmTAQDJyclIS0tDdHQ0ACA6OhrvvPMOsrKyEBgYCADYu3cvtFotunbtqr/n559/Nvgee/fu1fdBRPZNbWVBAGXGrGSR1KGRgdB6uKDoblWDNq2HC4ZEBEjue1AHf8Sn5Bltt6ZvIjlZHBCFhYVBozH+m0hKSorZfb388ssYO3Ys2rZti+LiYmzcuBEHDhzA7t27odPpMHv2bCxatAitWrWCVqvFvHnzEB0drd+7NHr0aHTt2hXTp0/HBx98gIyMDLz66quIjY3Vz/A888wz+Oyzz/DCCy/gL3/5C/bt24fNmzdj586dlj46EdmAWHZmey3g+ew3Zxrs9zl0JRvPfHMam/46wMhXmSK+10b6/JCyxvVojQ/3/ma0fWz31k04GiLjLA6IFi5caPB5ZWUlEhMTsWvXLjz//PMW9ZWVlYUZM2bg9u3b0Ol06NGjB3bv3o0HH3wQAPDxxx/DyckJkydPRnl5OcaMGYPPP/9c//XOzs7YsWMHnn32WURHR6NFixaYOXMm3nrrLf09YWFh2LlzJ5577jmsWLECbdq0wb/+9S/mICJSATUW8DRn87OUMStVEwy4t6m6sdkhACi6W4XDV7Ilz+Q0VSFdImtZHBAtWLCg0eurVq3CqVOnLOprzZo1ou0eHh5YtWoVVq1aZfSedu3aNVgSq2/YsGFITLTPIpNEZJwa30wTUo0vDwHA8ZRcuxuzOZuqpQZEas1kTo7H6uKutcaOHYv//Oc/cnVHRKTKN9PsYvG9Prkl5ZL6VfKUWXBLD9F2U7mExLDmGKmFbAHRDz/8gFatrM84SkRUS41vpgEmggs/b2knWJUMDgN14mP2b2ndqVtmMic1sHjJrHfv3gabqgVBQEZGBrKzsw329xARyWHltN6YtynRYC+RPb+ZhpgILtpIzMysZM04pWfiWHOM1MDigGjixIkGnzs5OSEgIADDhg1D586d5RoXEREA9b2ZKpmZWW3BYX1qKaRLjsnigOj1119XYhxE1AwomTxRLW+mSiZQVCo4VOPmdSK52V1iRiJSHzUmT1RKU9Tukjs4VOPmdSK5ybapmogcl1jyREfTFMFFSnYJ9idnWVXQta7wAG/4Gglcfb1cOTtEDoEzRERkFTUmT6xL7mU+JTc/KzUTl5Jdgvyyxqvd55dV2v1rSCQHzhARkVWUzI+jpIKyCsxYcwIjPjqIp9adxPAPD2DGmhMoNBIYWEKpY+ZKzcSp9TUkkpPkGaKrV6/i2rVriImJgaenJwRBEK1xRkTNk1r3nyhZI6128/Oh37KRmJ6PPm19rS5iquRMnFpfQyI5WRwQ5ebmYsqUKdi3bx80Gg2uXLmC8PBwzJ49G76+vvjoo4+UGCcR2anwAG9Eh/s1Wr8rOtzPLpdalF7mU2JpS8mTYOkm+r6ZX2aXryORnCxeMnvuuefg4uKCtLQ0eHn98VvFlClTsGvXLlkHR0TqYGxy2F4njZVeInr2mzMNAq7aavdSKXmc35xaZkTNncUzRHv27MHu3bvRpk0bg+sRERG4ceOGbAMjInVIyS7BsWuNV3c/dk16dXclKblEpFS1eyWP8/dq4yPa3qetr+S+idTC4hmi0tJSg5mhWnl5eXB3t67eDRGpjxo35CpZI82cavdSXLxZKNp+6VaRpH4BINREgNjGV7ydqDmwOCAaMmQINmzYoP9co9GgpqYGH3zwAYYPHy7r4IjI/ql1Q65yBUfFZ2qkLmxdzSkRbf8tq1hiz0BCqniQliAxiCNSE4uXzD744AOMHDkSp06dQkVFBV544QVcvHgReXl5OHr0qBJjJCI7pmTeHSUpVQajf5ifeHu4eLsxHf29Rds7BbaU1C8AnEwV3yN08noepka1ldw/kRpYPEN0//3347fffsPgwYMxYcIElJaWYtKkSUhMTESHDh2UGCMR2TnlZluUF+bfAsMjA2UL3MIDvDGwQ+NBz8AO0k/ddWujE23vEqKV1C8AFN0Vz71UdMf63ExE9k5SHiKdTodXXnlF7rEQkUqprSK90r54om+DqvS1x+6lyiq8K9qeU1wuue8HuwTh10tZRttHdwuW3DeRWlgcEK1btw7e3t547LHHDK5v2bIFZWVlmDlzpmyDIyJ1UUtF+rrkLt0BKBMgXsoQ3yN08VYRHhO9w7gpUW3xyrYLjZ5Uc3HS4LF+oRJ7JlIPi5fMli1bBn9//wbXAwMD8e6778oyKCIipSlZuqNWWm4pzt0swM188ZN45tCY2KztbGXOp+2xgxrkMnJx0mB77CDrOiZSCYtniNLS0hAWFtbgert27ZCWlibLoIiIlKZk6Y4buaWYuOqoQcFUXy9XbI8djFA/aUfYOwWLb5qOCJK+qRoAut6nw9V3x2HLqXQcvZaDQR38OTNEDsXiGaLAwECcO3euwfWzZ8/Cz0/a6QkioqZUW7qj7qk4wLB0hzXqB0PAvarxj646IrlPJxMH9p2tyFRd12P9QvHJlN4MhsjhWBwQTZs2DfPnz8f+/ftRXV2N6upq7Nu3DwsWLMDUqVOVGCMRkayUTCZ5MDmrQTBUK7+sEocbqaFmjuMmcgXFG8kWTkTmsXjJbOnSpbh+/TpGjhwJF5d7X15TU4MZM2ZwDxGRSiixkVhNlEwmaU5dMCmV70vuVom2F5fzaDyRNSwOiNzc3PD9999j6dKlOHv2LDw9PdG9e3e0a9dOifERkYyUqMKuRkomk1SqLlj3NjrsFTka39PE9yUicRYvmdXq1KkTHnvsMTz88MMMhohUQmwjsaNRKpmkUnXBHu4RIto+3kQ7EYmzeIaouroa69evR1xcHLKyslBTY1iDed++fbINjojkU7uRuL66G4kdaflMqWSSO87dNtF+C/NGRFjcb3iAN6La++LE9YZlNqLa+zrUa0ekBIsDogULFmD9+vUYP3487r//fmg08pxsICJlmbOR2BHfVOVOJplXKp4xOq+kQnLfX814QPYM2ER0j8UB0XfffYfNmzdj3LhxSoyHiBSi1qr0tdSyEbxLsHhNsa5W1BxjiRQi5UjaVN2xY0clxkJEClJrVXq1bQTPLBavOZZZJN5uDjWWSCGydxZvqv6///s/rFixAoIgnkaeiOyPGqvSK70RPCW7BPuTs6xOxljLVD8p2SWyfB8ikpfFM0RHjhzB/v378csvv6Bbt25wdTX8DW3r1q2yDY6I5CWYqIdlb5TcCK7UzJOpfEGl5dWS+yYi5Vg8Q+Tj44M//elPGDp0KPz9/aHT6Qw+iMh+qe3YvZIZpZX6WZSUM4EikRpZPEO0bt06JcZBRApT47F7pTaCK/mz6BysRXxKntF2U5uuicg2JCdmJCJ1UXK2RSm1G8Gd66X3cNZoEBMRIDloUfJn0dlEVfrOrRkQEdkji2eIAOCHH37A5s2bkZaWhooKw5waZ86ckWVgRCQvtR67Xzmtd4PcO9ZuBDf1m6CLFZXjM0ycMrtVeEdy30SkHItniD799FM89dRTCAoKQmJiIqKiouDn54eUlBSMHTtWiTESkQyUmm1RWm3unf2Lh2HdUw9g/+Jh2DA7yqqNzzUm2qtqpG8+V6qWGREpy+KA6PPPP8eXX36JlStXws3NDS+88AL27t2L+fPno7CwUIkxEpFM1HjsvlaYfwsMjwyUJXBTcrZMqVpmRKQsi5fM0tLSMHDgQACAp6cniouLAQDTp0/HgAED8Nlnn8k7QiKSDTMd3xMe4A0XJ02jM0EuThqrfiYJqbni7Sm5DvkzJ7J3Fs8QBQcHIy/v3gmKtm3b4vjx4wCA1NRUJmskUgk5Z1uaipwJFA8mZxldFquqEXC4kRNo5hPff8R/JYnsk8UzRCNGjMD27dvRu3dvPPXUU3juuefwww8/4NSpU5g0aZISYyQiB6ZEAsX9yVmi7fsuZWFIRICkvvuHtRJtHxDuJ6lfIlKWxQHRl19+iZqae1sSY2Nj4efnh2PHjuHRRx/F3/72N9kHSESOTSyB4obZUZL6bNXCXbzd201Sv0SkXhYvmd28eRPOzs76z6dOnYpPP/0Uc+fORUZGhqyDIyLHVptAsbrecnzdBIpSPNyjtYn2EEn9AsCOc7dNtN+S3DcRKcfigCgsLAzZ2Q3X1/Py8hAWFibLoIiIAOUSKP5sImj55bx4u5jUHPHiranZ9pcAk4gkBESCIECjabhpsKSkBB4eHrIMioiUJXeFd6UolUBx65mbou0/nE6X1C8AhPl7i7cHqGcjO5EjMXsP0aJFiwAAGo0Gr732Gry8/silUV1djYSEBPTq1Uv2ARKRfJSq8K6UszcLxNvTCyRtfnZzFQ+13F2cRdvF9GwjXuS6V6iP5L6JSDlmB0SJifcqQAuCgPPnz8PN7Y9Nh25ubujZsycWL14s/wiJHFRKdglu5JXJmitIiQ3KSsorFa8Mn1NSIdpuzMBwf1zOML60VT95pSVMleb4PZ+lO4jskdkB0f79+wEATz31FFasWAGtlgUKiZSg1CxOU1S7lzuIGx4ZgPXHrhttH9klUFK/lzOKRNsv3ZaedT+7uFy0PadEvJ2IbMPiY/effPIJqqqqGlzPy8uDi4sLAyUiKyk1i2POBmWpQYxSQdzQyEBoPVxQdLfhvzlaDxfJuYIyCsULsN420U5EzY/Fm6qnTp2K7777rsH1zZs3Y+rUqbIMishRKXXMHFC2ftez35xpMPt06Eo2nvnmtOQ+a0UGtbToujl6mSiw2tuKAqwBLcUPl/h5i+dAIiLbsDggSkhIwPDhwxtcHzZsGBISEmQZFJGjUuqYOaBctfuU7BLEpzRevys+JdeqIC4luwQnb+Q32nbyRr7kvif0Es8zNLH3fZL6BZipmkitLA6IysvLG10yq6ysxJ073CxIZA0lZ3EAZardJ6TmibYfNxIsmUOpAPGAidIdBy6Lt4sJD/BGtJGgJzrcT1X144gcicUBUVRUFL788ssG11evXo2+ffvKMigiR6XULE6t2mr3G/7yAJ57MAL/nh2FDbOjrDxyL16uVFqmoHuUChAT0wtE28+kibebsvrJvoipt78pJiIAq5/kv5FE9sriTdVvv/02Ro0ahbNnz2LkyJEAgLi4OJw8eRJ79uyRfYBEjmbltN6YtynRYE+OtbM4tZTY/Nw/THwJqL8dLhH5m9jHE2BlLbPawDM1pxTXc0tlTZ1ARMqwOCAaNGgQ4uPj8Y9//AObN2+Gp6cnevTogTVr1iAiIkKJMRI5FCXfTJU4wRYe4I2BHfxw7FrDpbGBHaxbIkpIFV9uS0jJldT/g12C8Osl48tiD3YLtrjPxoT5MxAiUguLAyIA6NWrF7799lu5x0JEdcj9ZqpkHqIvnujbYFardubJGr9lFIu2X8kUbzcm00SuoIwiHrsncjQWB0RpaWmi7W3btpU8GCJSjpJ5iGpntQ79loXE9AL0aesrOUdQXekmsjqn50k7yMECrERUn8UBUfv27Rst7lqrurraqgERkTKUPMGmVGLGsvKGJ1rrKq0QbzfGx1N8j5CPHdZ1IyJlWRwQ1dY0q1VZWYnExEQsX74c77zzjmwDIyJ51Z5gO3o1xyDxo7NGg0Ed/a1anlMqu3aQTjzJYZBWvN2YTsHiFek7WZH0kYjUyeKAqGfPng2u9evXDyEhIfjHP/6BSZMmyTIwIpKfEifYlNybNCDMDz8m3jLaHt1B2gk2NZ6MIyJlSdpU3ZjIyEicPHlSru6ISAFKnGBTcm9SZrH45uZMbn4mIplYHBAVFRlWiRYEAbdv38Ybb7zBY/dEKiHnCTYl9yal5ogHWykSNz8rGcQRkTpZHBD5+Pg02FQtCAJCQ0MbLfpKRM1beIA3fL1ckV9W2aDN18vVqsCi5G7DPusqNbHp2hilS6QQkfpYHBDt37/f4HMnJycEBASgY8eOcHGRbQWOyOGlZJfgRl6Z3Wc5TskuaTQYAoD8skqr9hBlm8gXlGWi3RglN5gTkTpZHMEMHTpUiXEQ0f9PqSPsSlFy+SmgpXiJDf+W0ktsKFkihYjUx6yAaPv27WZ3+Oijj0oeDBEpd4RdKUouP4X6ivfdrpX0vgUTRWmJyLGYFRBNnDjR4HONRgOhzjRz3T1FTMxIJJ2SR9iVouTy07GUHNH2o1cb/qzMpbbAk4iU5WTOTTU1NfqPPXv2oFevXvjll19QUFCAgoIC/Pzzz+jTpw927dql9HiJmjVzlp/s0cppvTGoo7/BNTmWn0ruim+aLimX9gtYbeBZN4ADDANPInIsFu8hWrhwIVavXo3Bgwfrr40ZMwZeXl7461//ikuXLsk6QCJHotbTT0otP0WF+eFm4u9G2/uHtZLUL4/dE1F9Zs0Q1XXt2jX4+Pg0uK7T6XD9+nUZhkTkuGqXn5zrpbZw1mgQExFgt2/SYstP1pg7oqNoe+wIabnP1Bp4EpFyLA6IHnjgASxatAiZmZn6a5mZmXj++ecRFWXZuvuyZcvwwAMPoGXLlggMDMTEiRORnJxscM/du3cRGxsLPz8/eHt7Y/LkyQbfGwDS0tIwfvx4eHl5ITAwEM8//zyqqgyn2g8cOIA+ffrA3d0dHTt2xPr16y17cKImotTyk1LUuPyk1sCTiJRjcUC0du1a3L59G23btkXHjh3RsWNHtG3bFr///jvWrFljUV8HDx5EbGwsjh8/jr1796KyshKjR49Gaekf/4A+99xz+O9//4stW7bg4MGDuHXrlkG9tOrqaowfPx4VFRU4duwYvv76a6xfvx5LlizR35Oamorx48dj+PDhSEpKwsKFCzFnzhzs3r3b0scnUpzaTj8pue/ps31XTbRfkdy32gJPIlKWRhAEi//1FQQBe/fuxeXLlwEAXbp0wahRoxpksLZUdnY2AgMDcfDgQcTExKCwsBABAQHYuHEj/vznPwMALl++jC5duiA+Ph4DBgzAL7/8gocffhi3bt1CUFAQAGD16tV48cUXkZ2dDTc3N7z44ovYuXMnLly4oP9eU6dORUFBQaMbwcvLy1Fe/kfCt6KiIoSGhqKwsBBardaqZyQyZcaaE0ZPbNnj6aeDyVmYuc54HcN/z47CkIgASX1PXHUESemFRtt7h+rwY+xgo+3mkLOuGxHZl6KiIuh0OrPevy2eIQLuHbMfPXo05s+fj/nz5+PBBx+0OhgCgMLCe//wtWp1b6Pk6dOnUVlZiVGjRunv6dy5M9q2bYv4+HgAQHx8PLp3764PhoB7m7yLiopw8eJF/T11+6i9p7aP+pYtWwadTqf/CA0NtfrZiMzRVMtPB5OzsCLuNxxu5Ii/pW4VihdYvZl/R3LffUJ9Rdv7tpO2qbquMP8WGB4ZyGCIyMFJqrURFxeHuLg4ZGVloaamxqBt7dq1kgZSU1ODhQsXYtCgQbj//vsBABkZGXBzc2uwiTsoKAgZGRn6e+oGQ7XttW1i9xQVFeHOnTvw9PQ0aHv55ZexaNEi/ee1M0RESlP69NON3FJMXHXUoNSGr5crtscORqif+EZjY3Yk3RJt33nuFqZFtZXU95DIAKw9dt1o+6AIf6NtRESWsDggevPNN/HWW2+hX79+aN26tSwzQwAQGxuLCxcu4MiRI7L0Zw13d3e4u4uXDCBSgtKnn+oHQ8C9emOPrjqCxCWjJfV5I1981uqGFXuIskzMPuVIrGVGRFSfxQHR6tWrsX79ekyfPl22QcydOxc7duzAoUOH0KZNG/314OBgVFRUoKCgwGCWKDMzE8HBwfp7Tpw4YdBf7Sm0uvfUP5mWmZkJrVbbYHaIyJaUzPp8MDlLtAjr4SvZkvb6uDmJr7y7Oztb3GetSxlFou3/uyXeTkRkLov3EFVUVGDgwIGyfHNBEDB37lz8+OOP2LdvH8LCwgza+/btC1dXV8TFxemvJScnIy0tDdHR0QCA6OhonD9/HllZWfp79u7dC61Wi65du+rvqdtH7T21fRDZE6VOPyXdLBBtP5OWL6lfN1fxf0ZcXSRtVQQAtGohPlPbylt6cVcioros/pdqzpw52LhxoyzfPDY2Ft988w02btyIli1bIiMjAxkZGbhz594mTJ1Oh9mzZ2PRokXYv38/Tp8+jaeeegrR0dEYMGAAAGD06NHo2rUrpk+fjrNnz2L37t149dVXERsbq1/2euaZZ5CSkoIXXngBly9fxueff47Nmzfjueeek+U5iORUcKcC538vMLh2/vcCFN1pfHbHXL3a+Ii292krvoHZGFMFWENNLAOKebhHaxPtIZL7JiKqy+Ils7t37+LLL7/Er7/+ih49esDV1dWgffny5Wb39cUXXwAAhg0bZnB93bp1mDVrFgDg448/hpOTEyZPnozy8nKMGTMGn3/+uf5eZ2dn7NixA88++yyio6PRokULzJw5E2+99Zb+nrCwMOzcuRPPPfccVqxYgTZt2uBf//oXxowZY+HTEylPiX0+ADA0MhAuThpU1TTMtOHipJF8NH5El0DsvZRlvL1zoKR+gXtLiC3dnVHcSM2ylu7OPBlGRLKxOCA6d+4cevXqBQAGeX0AWLzB2pwUSB4eHli1ahVWrVpl9J527drh559/Fu1n2LBhSEy0rowAUWNSsktwI69Mljw2Su3zAe6Ns7FgCACqagSk5kg7wXYlo0S0/WqWeLuYlOySRoMhACgur5Y8ZiKi+iwOiPbv36/EOIhUp6CsAvM3JeFQnVw+MREBWDmtN3ReriJfaZw5+3ykBkRKHek/ky6+9+jUjTyL+6yVkJor3p6Sy4CIiGQhfbcjgJs3b+LmzZtyjYVIVZQoaKrUPh9AuSPsXq7ip8i83SSlO/v/ic86q6vICRHZM4sDopqaGrz11lvQ6XRo164d2rVrBx8fHyxdurRBkkYie5GSXYL9yVmyZXpWKqP00Ejx/TZSZ4cA4NdLmaLte/+XIanfIJ146opArYekfgGgf5h4JuoB4X6S+yYiqsviX91eeeUVrFmzBu+99x4GDRoEADhy5AjeeOMN3L17F++8847sgySSSollLUC55aeDycY3JwOwag9RSXmVVe1Gv+6u+Om3Uon9Avc2VUeH+yE+peHSWXS4H5fLiEg2Fs8Qff311/jXv/6FZ599Fj169ECPHj3w97//HV999RXWr1+vwBCJpFNiWQtQLqO0UrmCAGBir/tE2//Uu41ouzHZJpbasqzMJr36yb6IqRcExkQEYPWTfa3ql4ioLotniPLy8tC5c+cG1zt37oy8POmbJ4nkVrusVV/dZS2pMwzhAd4Y2MEPx641nLkY2EH6zIWSe4iCdeJLV6bajZGpeo9ROi9XbJgdxar0RKQoi2eIevbsic8++6zB9c8++ww9e/aUZVBEcjBnWcsaxrJGmJFNwihTSQzbmEiCKGabiSKsP575XVK/ft7i2aQDTLSbi1XpiUhJFs8QffDBBxg/fjx+/fVXfemL+Ph4pKenm8wFRNSUlCyUmpJd0ui+FgCIT8mVPPukZLX7syaW286mF0jqV+shvhdL62nNKTMioqZh8QzR0KFDkZycjD/96U8oKChAQUEBJk2ahOTkZAwZMkSJMRJJUlso1bnemo6zRoOYiACrZhqUmn1SMogrMrG5udDE5mhjTE2IGckFSURkVyT96nbffffxNBmpwsppvTFvU6LBXiI5CqUqFbgoearKv4UbckoqjLYHSlzaCvMX/1mEB3CJi4jsn8UB0bp16+Dt7Y3HHnvM4PqWLVtQVlaGmTNnyjY4ImsptSG3dvbp6NUcg1xEzhoNBnX0t+p7GNukbO3m5XE9QnB5729G28eaKKRqzMM9QrB87xWj7eNZgJWIVMDiJbNly5bB39+/wfXAwEC8++67sgyKSG7m1M2z1MppvTGoo+HfBWtnn1KySxo9uQYAx67lWpVY8oaJr03LFV8GNObnc7dF2385L95ORGQPLJ4hSktLQ1hYWIPr7dq1Q1pamiyDIsclZ6FUQLnEjIAys09Kbqq+eLtQtP387wWS+j16LUe0/fCVbPx9eEdJfRMRNRWLA6LAwECcO3cO7du3N7h+9uxZ+PkxjT5Jo1TgIpaYccPsKMn91hXmL19eHCU3Vbf19cJlkcr0Uvse1MEf8SnGc5BZU26EiKipWLxkNm3aNMyfPx/79+9HdXU1qqursW/fPixYsABTp05VYozkAJTIKK1UvTG1amHieLyXxCKs40zsPRrbXdreJCKipmRxQLR06VL0798fI0eOhKenJzw9PTF69GiMGDGCe4hIEqUCF6UTMypByTGbykN0TmIeIjX+nImI6rP4V0I3Nzd8//33ePvtt5GUlARPT090794d7dq1U2J85ACU2jej5PKTUpQcc3aJqZpjdyX1q8afMxFRfZJTyEZERCAiIkLOsZCD4hvqH8IDvKH1cEHR3YZJFLUeLlbtVXJ3cUJxebXRdjcXiyeMASibgoCIqKlI+xeQSEZKZZRW41JOSnZJo8EQABTdrbJq31NMJ/HNzcMiAyX3rUQKAiKipsQiQ2QXlMgorcaZpx3nxAuw7jx3C3NHSJuZ1UA8s6PGisyPrEhPRGrHgIjsAt9Q78krFa8nJlZ6w5TEdPFN1advGD86by45UxAQETUlLpmRXQnzb4HhkYGyvKmqccmsS3BL0fZuIVrJfQdrPUTbQ3SekvsmIlI7iwOidevWYcuWLQ2ub9myBV9//bUsgyKSgxqXzAJ14kGLf0tpBVgBoIW7+ISwqXYiouaMtcyo2QoP8MbADo1nTx/YwbrK8UpRMoi7liU+I3Yly3gWayKi5s7igIi1zEhNjNV0VaDWqyxOporv4zl1Xfo+H62n+AyQj6d1td2IiNTM4oCotpZZfaxlRvYmJbsE8SmNV46PT7GucrxS9l7KFG3ffTFDct/hAeKzS6baiYiaM9Yyo2ZLjZuqTR18r5+ryRKCid5r7HTWjIioKVi8i3Lp0qW4fv06Ro4cCReXe19eU1ODGTNmcA8R2RU1bqr2NlGA1ZqNzz4mlsx8vbhkRkSOS3Its6VLl+Ls2bOsZeaAUrJLcCOvzO5zBamxpERm4R3R9qwiafXGAOBmvnjfptqJiJozyb9udurUCZ06dZJzLGTnCsoqMH9TkkE26ZiIAKyc1hs6O51deHvi/Ziw6gjyy/5IeKj1dME7E++X7XvIGSCWVRqvNQYAJRWNl/Uwh6nirpkSi7sSETUHZgVEixYtwtKlS9GiRQssWrRI9N7ly5fLMjCyP/M3JeHo1RyDa0ev5mDepkRsmB0ly/eQe/bp1W0XUHTHMIgoulOFV7ZdsHrMSgSIFRXiAVFVVY2kfgFgVOcgJKUXGm0f3TVYct9ERGpnVkCUmJiIysp7v2GfOXPGaM0ja2ohkX1LyS4xeOOvVS0IOHQlG6k5pVYFMEoEF0qPWYkA8baJJbHfC6Qva80dGYEP9/5mtP3vwztK7puISO3MCohWrFgBrfZeyYADBw4oOR6yU+ac2LK34ELJMSsVbNWfzbK0XUxKtnjiRWsDRCIiNTPr2H3v3r2Rk3PvzSo8PBy5uY3ndqHmS8kTW7XBRXW9bIl1gwsplByzUkf6TZ18F6yYhFVjGgIioqZiVkDk4+OD1NRUAMD169dRUyN9HwOpU+2Jrfp5cJw1GsREBFg1s6DUG7WSY1Yq2Apo6SbaHmRFLTM1piEgImoqZgVEkydPxtChQxEWFgaNRoN+/fohPDy80Q9qvlZO641BHQ3r2A3q6I+V03pb1a+Sb9QvjOmE+lvbNBrgpYciJfcJ3Au2xEgNtp4YIJ6+wlS7GCUDRCIitTNrD9GXX36JSZMm4erVq5g/fz6efvpptGzZUumxkZ3Rebliw+wopOaU4npuqWwnwZTMFzR97QlU1UvBXFUj4Ik1CUhcMlpyv9+fEK/bt+VUOh7rF2pxv9dNLA+aajdl5bTemLcp0WD/kxxBLRGR2pmdh+ihhx4CAJw+fRoLFixgQOTAwvzlT8ioxBv1weQsg/xDdeWXVeLwlWwMiQiQ1LepmmN7LmZICohM7Ze6ZmJjtClKBbVERGpncWLGdevWKTEOcnBKvFEn3SwQbT+Tli85IAr1FV/mCzWxDGiMYGJXtVyJLZQIaomI1MysgGjSpElYv349tFotJk2aJHrv1q1bZRkYOSY536h7tfERbe/T1ldy39Oj22Hdsesi7e0l9RsW0AJJN40nT2zvL753iYiIpDErINLpdPqkizqdTtEBEcllaGQgfL1cG1028/VylTw7pKQb2eJLZmk8Gk9EpAizAqK6y2RcMiMli7vK3ff22MF4tF4tM18vV2yPHWxVv0olfUwxEfBctXIPERERNc7iPUSpqamoqqpCRESEwfUrV67A1dUV7du3l2tsZGeULO6qVN+hfl5IXDIah69k40xaPvq09ZVlZuiiyLIWAFy6VYThkYEW99ta54GCO8aDnvt8PC3uk4iITDMrD1Fds2bNwrFjxxpcT0hIwKxZs+QYE9kpsfIa9tw3AAyJCMCCkZ1kWya7miM+U/NbVrGkfmcMDBNtf1Li3iQiIhJncUCUmJiIQYMGNbg+YMAAJCUlyTEmskNKlddQum+lpJnY63MzV3xJzZgQnYdoextfzhARESnB4oBIo9GguLjhb7+FhYWorq6WZVBkf5Ssg6XGGltp+cqM+VaheLX7m/nSq90TEZFxFgdEMTExWLZsmUHwU11djWXLlmHwYOs2qpL9UrK8RlPU2DqYnIUVcb/hcCMV6qXQeojva/LxFK9JZpx4IiK58hAREZEhizdVv//++4iJiUFkZCSGDBkCADh8+DCKioqwb98+2QdI9kHJ8hrhAd7Qerig6G5Vgzath4t1hWNzSzFx1dFGT5mF+klLnggAvdr6IkVkWaxXWx9J/fYP8xNvDxdvJyIiaSyeIeratSvOnTuHxx9/HFlZWSguLsaMGTNw+fJl3H///UqMkeyEUsVdU7JLGg2GAKDobpVVe4jqB0PAvbIdj646IrlPAEg1cfw9ReLx+PAAb/h4Nj775OPpyuzSREQKsXiGCABCQkLw7rvvyj0WsnNK1cHace6WaPvOc7cwd0SE6D2NUbKWmamaYlezpAVEKdklKLjT+JgL7lQiNUdafiMiIhJn8QwRcG+J7Mknn8TAgQPx+++/AwD+/e9/48gR637rJnUI82+B4ZGBsr0xp+aIb1BOMXGiyxhzaplJdadK/ACBqXZj1LjBnIioObA4IPrPf/6DMWPGwNPTE2fOnEF5eTmAe6fMOGtEUoT5i+/lCQ+QFngFtxQ/wh6ik36E3dtNfHLVVLsxTbHBnIiIGrI4IHr77bexevVqfPXVV3B1/WOvw6BBg3DmzBlZB0eO4eEeIaLt4020GxNoIqePf0t3Sf0CQJfWWtH2biHSav7Vbl531hieJ3PWaBATEcDlMiIihVgcECUnJyMmJqbBdZ1Oh4KCAjnGRCQLc8prSJVfViHanlcq3i5Gqc3rRERknMXz+sHBwbh69WqDmmVHjhxBeHi4XOMiB6JUoVQl9xAVGzkVp28vb3xjtDmU2rxORETGWTxD9PTTT2PBggVISEiARqPBrVu38O2332Lx4sV49tlnlRgj2ZmU7BLsT86SraSGUvtmTCdPlF40tqtCS2Z1yb15nYiIjLN4huill15CTU0NRo4cibKyMsTExMDd3R2LFy/GvHnzlBgj2Qklq90rQzzrszW6tdFhz6Uso+1dQsQDJiIisi+Sapm98soryMvLw4ULF3D8+HFkZ2dj6dKlSoyP7IhSFemVOmqeYmIGy1QuITHOJopouDpJymhBREQ2IvlfbTc3N7Rs2RKtW7eGt7e3nGMiO6RkRXpTfwhdnKRV8NKYmCCypi7YtRxlEjMSEZFtWBwQVVVV4bXXXoNOp0P79u3Rvn176HQ6vPrqq6islL6RlOybkgkDa0y0V9VIW/oqNJLxuVbRHfGN0WJMbaouMdFORET2xeI9RPPmzcPWrVvxwQcfIDo6GgAQHx+PN954A7m5ufjiiy9kHyTZnpIJA5WaIcopKRdtzyq+K6lfAAj1Ff95hLaSnvSRiIiansUB0caNG/Hdd99h7Nix+ms9evRAaGgopk2bxoComVKy2r1SM0Sl5eLlM0y1W0O57dxERKQEi5fM3N3dG+QgAoCwsDC4ubnJMSayU0olDFRq9slUoGVN0FJwRzzxYoGRorJERGSfLJ4hmjt3LpYuXYp169bB3f1e6YPy8nK88847mDt3ruwDJPtRmzDw0G/ZSEzPR5+2vpKrxTcFN2dAbBLI1Vl63z6e4sG/j12mISAiImMsDogSExMRFxeHNm3aoGfPngCAs2fPoqKiAiNHjsSkSZP0927dulW+kZLNKZWHKCE1T7T9eEqupCU53xZuyCgyPpPj20L6jGanYPGTlZ2CWkrum4iImp7FAZGPjw8mT55scC00NFS2AZH9EstDtGF2lBU9iy9eST0eX2hi2cpUu5j+YX7i7eHi7UREZF8sDojWrVunxDjIztXmIaqvbh4iqRurnUyEPM4ST5ndrRIPtEy1iwkP8MbADn44di23QdvADn4st0FEpDIWb6q+c+cOysr+yElz48YNfPLJJ9izZ4+sAyP7omQeoksZxaLtFyVWpXc28afbVLspXzzRFzH19lDFRATgiyf6WtcxERE1OYtniCZMmIBJkybhmWeeQUFBAaKiouDm5oacnBwsX76cBV6bqaxC8Zw9OcXiOX/EFJk4sVVyV9rSll8LN2QWG+/b39tdUr+1WJWeiKj5sPh35DNnzmDIkCEAgB9++AHBwcG4ceMGNmzYgE8//dSivg4dOoRHHnkEISEh0Gg02LZtm0G7IAhYsmQJWrduDU9PT4waNQpXrlwxuCcvLw9PPPEEtFotfHx8MHv2bJSUGJZNOHfuHIYMGQIPDw+Ehobigw8+sPSxHV6GiSSGtwrvSO7b1MKVxDREKDKRqbqwTDwQMxer0hMRqZ/FAVFZWRlatrx3gmbPnj2YNGkSnJycMGDAANy4ccOivkpLS9GzZ0+sWrWq0fYPPvgAn376KVavXo2EhAS0aNECY8aMwd27f7w5P/HEE7h48SL27t2LHTt24NChQ/jrX/+qby8qKsLo0aPRrl07nD59Gv/4xz/wxhtv4Msvv7T00R1arzY+ou192vpK7lupI+zlJvYImWonIiLHYfGSWceOHbFt2zb86U9/wu7du/Hcc88BALKysqDVai3qa+zYsQYZr+sSBAGffPIJXn31VUyYMAEAsGHDBgQFBWHbtm2YOnUqLl26hF27duHkyZPo168fAGDlypUYN24cPvzwQ4SEhODbb79FRUUF1q5dCzc3N3Tr1g1JSUlYvny5QeBE4oZGBsLFCahqJNuhixOszEekzCkzT1cnlFYaT8/o6cqK9EREdI/F7whLlizB4sWL0b59e/Tv319fz2zPnj3o3du6jMV1paamIiMjA6NGjdJf0+l06N+/P+Lj4wHcq6Hm4+OjD4YAYNSoUXByckJCQoL+npiYGIMs2mPGjEFycjLy8/Mb/d7l5eUoKioy+HB0KdkljQZDwL0gyZpq98kmNlVfNtFuTCsTeYb8rNxDREREzYfFAdGf//xnpKWl4dSpU9i1a5f++siRI/Hxxx/LNrCMjAwAQFBQkMH1oKAgfVtGRgYCAwMN2l1cXNCqVSuDexrro+73qG/ZsmXQ6XT6D+ZZMi95olQpOSWi7deyxduNySgS3/d0u0j6viciImpeJK0ZBAcHo3fv3nBy+uPLo6Ki0LlzZ9kGZksvv/wyCgsL9R/p6em2HpLNZZvYVJ1rorK8mOI7VSbapZ0yqzZRzKxaudquRESkMna7iSI4OBgAkJmZaXA9MzNT3xYcHIysrCyD9qqqKuTl5Rnc01gfdb9Hfe7u7tBqtQYfapOSXYL9yVlWLWU1laoa8cjFVLsxHq7iu49MtRMRkeOw24AoLCwMwcHBiIuL018rKipCQkKCft9SdHQ0CgoKcPr0af09+/btQ01NDfr376+/59ChQ6is/GOWYe/evYiMjISvr/STUfaqoKwCM9acwIiPDuKpdScx/MMDmLHmhFVlKgAgoKWHaLs1+3EqTczUmGo3plOQeCDbOVgnrWMiImp2bBoQlZSUICkpCUlJSQDubaROSkpCWloaNBoNFi5ciLfffhvbt2/H+fPnMWPGDISEhGDixIkAgC5duuChhx7C008/jRMnTuDo0aOYO3cupk6dipCQEADA//t//w9ubm6YPXs2Ll68iO+//x4rVqzAokWLbPTUyhKrN2aNEJ14QNTG11Ny36bmaaTO44QHiBdgDQ9g3iAiIrrH4mP3cjp16hSGDx+u/7w2SJk5cybWr1+PF154AaWlpfjrX/+KgoICDB48GLt27YKHxx9vzt9++y3mzp2LkSNHwsnJCZMnTzZIEKnT6bBnzx7Exsaib9++8Pf3x5IlS5rlkXsl642ZSrz4e770DcpOTuL7fZwkhu1aT/H8Rd4e0vIbERFR82PTgGjYsGEQBOM5aDQaDd566y289dZbRu9p1aoVNm7cKPp9evTogcOHD0sep1qYU29MejZl8Xkaa1IcGjvOb267McMjA7D+2HWj7SO7BBptIyIix2K3e4jIcu1aeYm2t/eTvkSUa6JWWX6p9DIYpoIpqcHW0MhA6IzMEuk8Xa1MJklERM0JA6JmJDzAGzERAXDWGM7mOGs0iIkIsKrWVtLNAtH2xLTGk1za2o65g+Fbr/SHr5crdswdbKMRERGRPbLpkhnJb+W03pi3KdFgL9Ggjv5YOc26LOJaE/ttTO3XsZVQPy8kLhmNw1eycSYtH33a+nJmiIiIGmBA1MzovFyxYXYUUnNKcT23FO39WshShd3Y0lMtHzsNiGoNiQhgIEREREYxIGqmwvzlCYRqmVoSS0wrkNy3p4sT7ojsnPZ04couEREpiwFRM5WSXYIbeWWyzRClmKgndjVLWgFWAHBx0QAi1TtcGRAREZHCGBA1MwVlFZi/KclgD1FMRABWTusNnZf0Za0KE4W/TLWLqaoSP0dWKfXcPRERkZn4q3czo1Smah9P8dIcPl7WlO4QD3hMtRMREVmLAVEzUpupurpessu6maql8nJzFm33dpM+2ejmIp700VQ7ERGRtRgQNSPmZKqWKrPkrmh7RrH00h2tteJ10O7zEU84SUREZC0GRM2IkpmqKyrFl63KTbSLfq2JJbG7VdL3JxEREZmDAVEzomSmalPxjhXxECpruIeIiIhsiwFRM7NyWm8M6uhvcE2OTNVKus/EklkbLpkREZHCeOy+manNVH3ot2wkpqujVEXB3UrR9vwy8XYiIiJrMSBqZpTKQ6QkNxOJF92ZmJGIiBTGd5pmRqk8REp6amCYePtg8XYiIiJrMSBqRpTMQ6SkB8Jaibb3ay/eTkREZC0GRM2IknmIlKTWcRMRUfPBgKgZUTIPkZLUOm4iImo+GBCRzSmZP4mIiMgcDIiaETUvPakxfxIRETUfPHZvYynZJbiRV4b2fi2sngm5eLNQtP3SrSIMjwy06nsopTZ/UmpOKa7nlsry8yAiIjIXAyIbUSJf0NFruaLtR67k4O/DO0rqu6mE+TMQIiKipsclMxtRIl9QC3dn0XZvd8a/REREjWFAZANK5Qtq6yt+WqutH2uCERERNYYBkQ0otfl5z6UM0fbdF8XbiYiIHBUDIhtQKu9OXkm5aHtuyV1J/RIRETV3DIhsQKm8O5XVglXtREREjooBkY0okXenssa6diIiIkfFY0c2ora8O04AxOIpRtZERKRmDIhsTC15d3xbuCK3tNJou5+3WxOOhoiISF78xZ7M0imopVXtRERE9owzRDYmZ+kOJQXrPETbg7Ti7URERPaMAZGNKFG6Q0kTe92HHxNvGW3/U5/7mnA0RERE8uKSmY0oUbpDSUMjA6H1aDx+1nq4YEhEQBOPiIiISD4MiGxAqdIdSts5bwh8681e+Xq5Yue8ITYaERERkTy4ZGYD5pTusMf9RKF+XkhcMhqHr2TjTFo++rT15cwQERE1CwyIbECp0h1NZUhEAAMhIiJqVrhkRkRERA6PAZEN7Dhn/LQWAOw00U5ERETyYkBkA3mlFaLtOSaq1hMREZG8GBDZgBM0ou0uTnxZiIiImhLfeW3gTFq+aPvpG3lNNBIiIiICGBDZRHlVtXh7pVhdeSIiIpIbAyJbEEzfQkRERE2HAZENpOeLJ2ZMy7PPTNVERETNFQMiGyipEF8SM9VORERE8mJARERERA6PAVEzEu4nXhKkox3WRyMiIrIHDIiakaeHhou2z4kRbyciInJUDIiakf5hfuLt4eLtREREjooBUTMSHuCNgR0aD3oGdvBDGJfMiIiIGsWAqJn54om+iIkIMLgWExGAL57oa6MRERER2T8XWw+A5KXzcsWG2VFIzSnF9dxStPdrwZkhIiIiExgQNVNh/gyEiIiIzMUlMyIiInJ4DIiIiIjI4TEgIiIiIofHgIiIiIgcHgMiIiIicngMiIiIiMjhMSAiIiIih8eAiIiIiBweAyIiIiJyeAyIiIiIyOExILKB6++Nt6qdiIiI5MWAiIiIiBwei7vaSO0sUPuXdja4RkRERE2LAZGNMQgiIiKyPS6ZERERkcNzqIBo1apVaN++PTw8PNC/f3+cOHHC1kMiIiIiO+AwAdH333+PRYsW4fXXX8eZM2fQs2dPjBkzBllZWbYeGhEREdmYRhAEwdaDaAr9+/fHAw88gM8++wwAUFNTg9DQUMybNw8vvfSSwb3l5eUoLy/Xf15UVITQ0FAUFhZCq9U26biJiIhImqKiIuh0OrPevx1ihqiiogKnT5/GqFGj9NecnJwwatQoxMfHN7h/2bJl0Ol0+o/Q0NCmHC4RERE1MYcIiHJyclBdXY2goCCD60FBQcjIyGhw/8svv4zCwkL9R3p6elMNlYiIiGyAx+4b4e7uDnd3d1sPg4iIiJqIQ8wQ+fv7w9nZGZmZmQbXMzMzERwcbKNRERERkb1wiIDIzc0Nffv2RVxcnP5aTU0N4uLiEB0dbcORERERkT1wmCWzRYsWYebMmejXrx+ioqLwySefoLS0FE899ZSth0ZEREQ25jAB0ZQpU5CdnY0lS5YgIyMDvXr1wq5duxpstG5MbWaCoqIipYdJREREMql93zYnw5DD5CGyRkpKCjp06GDrYRAREZEE6enpaNOmjeg9DjNDZI1WrVoBANLS0qDT6Ww8GmXUJp9MT09vlskn+Xzq19yfsbk/H9D8n5HPZ38EQUBxcTFCQkJM3suAyAxOTvf2nut0OtX8IZBKq9U262fk86lfc3/G5v58QPN/Rj6ffTF3IsMhTpkRERERiWFARERERA6PAZEZ3N3d8frrrzfr7NXN/Rn5fOrX3J+xuT8f0Pyfkc+nbjxlRkRERA6PM0RERETk8BgQERERkcNjQEREREQOjwEREREROTyHDYhWrVqF9u3bw8PDA/3798eJEydE79+yZQs6d+4MDw8PdO/eHT///LNBuyAIWLJkCVq3bg1PT0+MGjUKV65cUfIRRFnyfF999RWGDBkCX19f+Pr6YtSoUQ3unzVrFjQajcHHQw89pPRjiLLkGdevX99g/B4eHgb3qPk1HDZsWIPn02g0GD9+vP4ee3oNDx06hEceeQQhISHQaDTYtm2bya85cOAA+vTpA3d3d3Ts2BHr169vcI+lf6+VYunzbd26FQ8++CACAgKg1WoRHR2N3bt3G9zzxhtvNHj9OnfurOBTiLP0GQ8cONDon9GMjAyD+9T6Gjb290uj0aBbt276e+zpNVy2bBkeeOABtGzZEoGBgZg4cSKSk5NNfp3a3gst4ZAB0ffff49Fixbh9ddfx5kzZ9CzZ0+MGTMGWVlZjd5/7NgxTJs2DbNnz0ZiYiImTpyIiRMn4sKFC/p7PvjgA3z66adYvXo1EhIS0KJFC4wZMwZ3795tqsfSs/T5Dhw4gGnTpmH//v2Ij49HaGgoRo8ejd9//93gvoceegi3b9/Wf2zatKkpHqdRlj4jcC+7at3x37hxw6Bdza/h1q1bDZ7twoULcHZ2xmOPPWZwn728hqWlpejZsydWrVpl1v2pqakYP348hg8fjqSkJCxcuBBz5swxCBqk/JlQiqXPd+jQITz44IP4+eefcfr0aQwfPhyPPPIIEhMTDe7r1q2bwet35MgRJYZvFkufsVZycrLBMwQGBurb1PwarlixwuC50tPT0apVqwZ/B+3lNTx48CBiY2Nx/Phx7N27F5WVlRg9ejRKS0uNfo3a3gstJjigqKgoITY2Vv95dXW1EBISIixbtqzR+x9//HFh/PjxBtf69+8v/O1vfxMEQRBqamqE4OBg4R//+Ie+vaCgQHB3dxc2bdqkwBOIs/T56quqqhJatmwpfP311/prM2fOFCZMmCD3UCWz9BnXrVsn6HQ6o/01t9fw448/Flq2bCmUlJTor9nba1gLgPDjjz+K3vPCCy8I3bp1M7g2ZcoUYcyYMfrPrf2ZKcWc52tM165dhTfffFP/+euvvy707NlTvoHJyJxn3L9/vwBAyM/PN3pPc3oNf/zxR0Gj0QjXr1/XX7Pn1zArK0sAIBw8eNDoPWp7L7SUw80QVVRU4PTp0xg1apT+mpOTE0aNGoX4+PhGvyY+Pt7gfgAYM2aM/v7U1FRkZGQY3KPT6dC/f3+jfSpFyvPVV1ZWhsrKSn1R21oHDhxAYGAgIiMj8eyzzyI3N1fWsZtL6jOWlJSgXbt2CA0NxYQJE3Dx4kV9W3N7DdesWYOpU6eiRYsWBtft5TW0lKm/g3L8zOxJTU0NiouLG/wdvHLlCkJCQhAeHo4nnngCaWlpNhqhdL169ULr1q3x4IMP4ujRo/rrze01XLNmDUaNGoV27doZXLfX17CwsBAAGvyZq0tN74VSOFxAlJOTg+rqagQFBRlcDwoKarCWXSsjI0P0/tr/WtKnUqQ8X30vvvgiQkJCDP5QP/TQQ9iwYQPi4uLw/vvv4+DBgxg7diyqq6tlHb85pDxjZGQk1q5di59++gnffPMNampqMHDgQNy8eRNA83oNT5w4gQsXLmDOnDkG1+3pNbSUsb+DRUVFuHPnjix/7u3Jhx9+iJKSEjz++OP6a/3798f69euxa9cufPHFF0hNTcWQIUNQXFxsw5Gar3Xr1li9ejX+85//4D//+Q9CQ0MxbNgwnDlzBoA8/3bZi1u3buGXX35p8HfQXl/DmpoaLFy4EIMGDcL9999v9D41vRdKwWr3ZOC9997Dd999hwMHDhhsOp46dar+/7t3744ePXqgQ4cOOHDgAEaOHGmLoVokOjoa0dHR+s8HDhyILl264J///CeWLl1qw5HJb82aNejevTuioqIMrqv9NXQUGzduxJtvvomffvrJYH/N2LFj9f/fo0cP9O/fH+3atcPmzZsxe/ZsWwzVIpGRkYiMjNR/PnDgQFy7dg0ff/wx/v3vf9twZPL7+uuv4ePjg4kTJxpct9fXMDY2FhcuXLDpnjR74HAzRP7+/nB2dkZmZqbB9czMTAQHBzf6NcHBwaL31/7Xkj6VIuX5an344Yd47733sGfPHvTo0UP03vDwcPj7++Pq1atWj9lS1jxjLVdXV/Tu3Vs//ubyGpaWluK7774z6x9XW76GljL2d1Cr1cLT01OWPxP24LvvvsOcOXOwefPmBksT9fn4+KBTp06qeP2MiYqK0o+/ubyGgiBg7dq1mD59Otzc3ETvtYfXcO7cudixYwf279+PNm3aiN6rpvdCKRwuIHJzc0Pfvn0RFxenv1ZTU4O4uDiDGYS6oqOjDe4HgL179+rvDwsLQ3BwsME9RUVFSEhIMNqnUqQ8H3DvZMDSpUuxa9cu9OvXz+T3uXnzJnJzc9G6dWtZxm0Jqc9YV3V1Nc6fP68ff3N4DYF7R2LLy8vx5JNPmvw+tnwNLWXq76AcfyZsbdOmTXjqqaewadMmg3QJxpSUlODatWuqeP2MSUpK0o+/ObyGwL3TW1evXjXrlxJbvoaCIGDu3Ln48ccfsW/fPoSFhZn8GjW9F0pi613dtvDdd98J7u7uwvr164X//e9/wl//+lfBx8dHyMjIEARBEKZPny689NJL+vuPHj0quLi4CB9++KFw6dIl4fXXXxdcXV2F8+fP6+957733BB8fH+Gnn34Szp07J0yYMEEICwsT7ty5Y/fP99577wlubm7CDz/8INy+fVv/UVxcLAiCIBQXFwuLFy8W4uPjhdTUVOHXX38V+vTpI0RERAh3795t8ueT8oxvvvmmsHv3buHatWvC6dOnhalTpwoeHh7CxYsX9feo+TWsNXjwYGHKlCkNrtvba1hcXCwkJiYKiYmJAgBh+fLlQmJionDjxg1BEAThpZdeEqZPn66/PyUlRfDy8hKef/554dKlS8KqVasEZ2dnYdeuXfp7TP3M7Pn5vv32W8HFxUVYtWqVwd/BgoIC/T3/93//Jxw4cEBITU0Vjh49KowaNUrw9/cXsrKymvz5BMHyZ/z444+Fbdu2CVeuXBHOnz8vLFiwQHBychJ+/fVX/T1qfg1rPfnkk0L//v0b7dOeXsNnn31W0Ol0woEDBwz+zJWVlenvUft7oaUcMiASBEFYuXKl0LZtW8HNzU2IiooSjh8/rm8bOnSoMHPmTIP7N2/eLHTq1Elwc3MTunXrJuzcudOgvaamRnjttdeEoKAgwd3dXRg5cqSQnJzcFI/SKEuer127dgKABh+vv/66IAiCUFZWJowePVoICAgQXF1dhXbt2glPP/20Tf6RqsuSZ1y4cKH+3qCgIGHcuHHCmTNnDPpT82soCIJw+fJlAYCwZ8+eBn3Z22tYewS7/kftM82cOVMYOnRog6/p1auX4ObmJoSHhwvr1q1r0K/Yz6wpWfp8Q4cOFb1fEO6lGWjdurXg5uYm3HfffcKUKVOEq1evNu2D1WHpM77//vtChw4dBA8PD6FVq1bCsGHDhH379jXoV62voSDcO2Lu6ekpfPnll432aU+vYWPPBsDg71VzeC+0hEYQBEGx6SciIiIiFXC4PURERERE9TEgIiIiIofHgIiIiIgcHgMiIiIicngMiIiIiMjhMSAiIiIih8eAiIiIiBweAyIiIiJyeAyIiEhVNBoNtm3bBgC4fv06NBoNkpKSzP76N954A7169VJkbESkXgyIiEi1QkNDcfv2bdx///1mf83ixYsNik/OmjULEydOVGB00gwbNgwLFy609TCIHI6LrQdARCSVs7MzgoODLfoab29veHt7KzQiIlIrzhARUZP64Ycf0L17d3h6esLPzw+jRo1CaWkpAODkyZN48MEH4e/vD51Oh6FDh+LMmTNG+6q/ZHbgwAFoNBrExcWhX79+8PLywsCBA5GcnKz/mrpLZm+88Qa+/vpr/PTTT9BoNNBoNDhw4ABGjBiBuXPnGnyv7OxsuLm5Gcwu1VXb7z//+U+EhobCy8sLjz/+OAoLC/X31M5GvfnmmwgICIBWq8UzzzyDiooKffvBgwexYsUK/XiuX79u6Y+YiCRgQERETeb27duYNm0a/vKXv+DSpUs4cOAAJk2ahNoa08XFxZg5cyaOHDmC48ePIyIiAuPGjUNxcbFF3+eVV17BRx99hFOnTsHFxQV/+ctfGr1v8eLFePzxx/HQQw/h9u3buH37NgYOHIg5c+Zg48aNKC8v19/7zTff4L777sOIESOMft+rV69i8+bN+O9//4tdu3YhMTERf//73w3uiYuL0z/7pk2bsHXrVrz55psAgBUrViA6OhpPP/20fjyhoaEWPTsRScMlMyJqMrdv30ZVVRUmTZqEdu3aAQC6d++ub68fbHz55Zfw8fHBwYMH8fDDD5v9fd555x0MHToUAPDSSy9h/PjxuHv3Ljw8PAzu8/b2hqenJ8rLyw2W3iZNmoS5c+fip59+wuOPPw4AWL9+PWbNmgWNRmP0+969excbNmzAfffdBwBYuXIlxo8fj48++kjfv5ubG9auXQsvLy9069YNb731Fp5//nksXboUOp0Obm5u8PLysngpkIiswxkiImoyPXv2xMiRI9G9e3c89thj+Oqrr5Cfn69vz8zMxNNPP42IiAjodDpotVqUlJQgLS3Nou/To0cP/f+3bt0aAJCVlWX213t4eGD69OlYu3YtAODMmTO4cOECZs2aJfp1bdu21QdDABAdHY2amhqDJbuePXvCy8vL4J6SkhKkp6ebPT4ikh8DIiJqMs7Ozti7dy9++eUXdO3aFStXrkRkZCRSU1MBADNnzkRSUhJWrFiBY8eOISkpCX5+fvo9NuZydXXV/3/tjE5NTY1FfcyZMwd79+7FzZs3sW7dOowYMUI/q0VEzQ8DIiJqUhqNBoMGDcKbb76JxMREuLm54ccffwQAHD16FPPnz8e4cePQrVs3uLu7IycnR9HxuLm5obq6usH17t27o1+/fvjqq6+wceNGo/uQ6kpLS8OtW7f0nx8/fhxOTk6IjIzUXzt79izu3LljcI+3t7d+r5Cx8RCRshgQEVGTSUhIwLvvvotTp04hLS0NW7duRXZ2Nrp06QIAiIiIwL///W9cunQJCQkJeOKJJ+Dp6anomNq3b49z584hOTkZOTk5qKys1LfNmTMH7733HgRBwJ/+9CeTfXl4eGDmzJk4e/YsDh8+jPnz5+Pxxx832A9UUVGB2bNn43//+x9+/vlnvP7665g7dy6cnJz040lISMD169eRk5Nj8cwWEUnDgIiImoxWq8WhQ4cwbtw4dOrUCa+++io++ugjjB07FgCwZs0a5Ofno0+fPpg+fTrmz5+PwMBARcf09NNPIzIyEv369UNAQACOHj2qb5s2bRpcXFwwbdq0BhuyG9OxY0dMmjQJ48aNw+jRo9GjRw98/vnnBveMHDkSERERiImJwZQpU/Doo4/ijTfe0LcvXrwYzs7O6Nq1KwICAizeP0VE0miE2vOuRERk4Pr16+jQoQNOnjyJPn36iN77xhtvYNu2baJlRGbNmoWCggJ96REish88dk9EVE9lZSVyc3Px6quvYsCAASaDISJSPy6ZERHVc/ToUbRu3RonT57E6tWrbT0cImoCXDIjIiIih8cZIiIiInJ4DIiIiIjI4TEgIiIiIofHgIiIiIgcHgMiIiIicngMiIiIiMjhMSAiIiIih8eAiIiIiBze/wfeebTfvUxkqgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tol.plot(kind='scatter', y='specific conductance uS/cm', x='salinity ppt')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "Let's make a few cosmetic changes:\n", + "* Set the color to green with `c='green'`\n", + "* set the point size and transparency with `s=50, alpha=0.7`\n", + "* set the title and axis labels if you like.\n", + "\n", + "Let's see what happens if we use another column to set the color of our points.\n", + "* add `cmap='viridis'` to your plot command\n", + "* set `c=tol['temperature C']` in the plot commmand\n", + "* also try `c=tol['gage height ft']`\n", + "\n", + "What observations can we make about the relationships between temperature, gage height, and salinity?\n", + "\n", + "## Overlaying a Regression Line\n", + "When we run a cell and make a plot, matplotlib creates a figure that the plot is rendered on. We can follow with a second plot in the same cell and it will be drawn on the same figure. This can be useful to add a regression line over our scatter plot.\n", + "\n", + "There are some Nan values in the conductance and salinity columns in our dataframe, so we need to use dropna to clean those up before using np.polyfit. So we create a tol_cleaned dataframe.\n", + "\n", + "Then we generate our y values as `regression_line` using our x values with the slope and intercept... this is a y=mx+b equation, but since x is a series, the mutiplication and addition operations are broadcast through the series and we get a series result that we save as regression_line. " + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "slope: 2160.6322894868645 intercept: -19.685058556168173\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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zNChQ3Xo0CE98sgjSk9PV5cuXbR06VK/N/YCAIDwE7QBRpImTJhQ6i2jU0VFRWnatGm298WEklCfnxT6c2R+7hfqc2R+7hfKc4ww5/qcEgAAQJAJyi+yAwAAOBsCDAAAcB0CDAAAcB0CDAAAcB3XBJjZs2frwgsvVI0aNdSzZ09t2LDhrOPnz5+vtm3bqkaNGurYsaMWL15su98Yo0ceeURNmjRRzZo1lZiYqK+//roip3BOgczxH//4h6655hrVr19f9evXV2Jiot/4X//614qIiLDdBgwYUNHTOKNA5jdnzhy/3mvUqGEb4/ZzeO211/rNMSIiQsnJyd4xwXIO16xZo1/84heKj49XRESEPvjgg3M+JiUlRV27dlVUVJRat26tOXPm+I0J9Oe6IgU6x/fff1/9+vVT48aN5fF4lJCQoGXLltnG/OEPf/A7f23btq3AWZxZoPNLSUk57Z/P9PR02zg3n8PT/XxFRESoffv23jHBcg5nzJihyy+/XHXr1lVMTIwGDx6snTt3nvNxbnwtLC1XBJh3331XkyZN0rRp07Rx40Z17txZSUlJOnjw4GnHf/rpp7r11ls1evRobdq0SYMHD9bgwYO1detW75jHH39czz77rF588UWtX79etWvXVlJSknJzcytrWjaBzjElJUW33nqrVq1apdTUVDVr1kz9+/fXvn37bOMGDBigAwcOeG/vvPNOZUzHT6Dzk6xvjjy59++//952v9vP4fvvv2+b39atW1W1alX96le/so0LhnN47Ngxde7cWbNnzy7V+N27dys5OVl9+vTR5s2bNXHiRI0ZM8b2Al+WPxMVKdA5rlmzRv369dPixYuVlpamPn366Be/+IU2bdpkG9e+fXvb+fvvf/9bEe2fU6DzK7Fz505b/zExMd773H4On3nmGdvc9u7dqwYNGvj9DAbDOVy9erXGjx+vdevWafny5SooKFD//v117NixMz7Gja+FATEu0KNHDzN+/HjvcVFRkYmPjzczZsw47fhbbrnFJCcn22o9e/Y0v/nNb4wxxhQXF5u4uDjzxBNPeO/PzMw0UVFR5p133qmAGZxboHM8VWFhoalbt655/fXXvbWRI0eaQYMGlXerZRLo/F577TUTHR19xucLxXM4a9YsU7duXXP06FFvLZjOYQlJZsGCBWcdM2XKFNO+fXtbbejQoSYpKcl7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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Scatter plot\n", + "tol.plot(kind='scatter', y='specific conductance uS/cm', x='salinity ppt')\n", + "\n", + "# Fit a regression line\n", + "tol_cleaned = tol[['specific conductance uS/cm', 'salinity ppt']].dropna()\n", + "y = tol_cleaned['specific conductance uS/cm']\n", + "x = tol_cleaned['salinity ppt']\n", + "slope, intercept = np.polyfit(x, y, 1)\n", + "print('slope:', slope, 'intercept:', intercept)\n", + "\n", + "# Generate line points\n", + "regression_line = slope * x + intercept\n", + "plt.show()\n", + "# Add the regression line to the scatter plot\n", + "plt.plot(x, regression_line, color='red')\n", + "\n", + "# Show plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*\n", + "As mentioned above, both plots share the same figure. We can generate two separate plots by adding `plt.show()` before the second plt.plot command. Try this.\n", + "\n", + "## Box and Whiskers Plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Multi Axis\n", + "\n", + "## Scatter Plot\n", + "\n", + "## Box and Whisker Plot\n", + "\n", + "## Histogram\n", + "\n", + "## Heatmap\n", + "\n", + "## Multiple Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [] }, { @@ -63,7 +288,7 @@ ], "metadata": { "kernelspec": { - "display_name": "venv", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -77,7 +302,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.10.12" } }, "nbformat": 4, From dcb9e98b62788245f6d5d404b7b3e973af047092 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Thu, 17 Oct 2024 16:43:57 -0700 Subject: [PATCH 111/163] lots of plotting content! --- D3-Pandas_Graphing.ipynb | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 38c1414..b2fb022 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -181,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 56, "metadata": {}, "outputs": [ { @@ -193,17 +193,7 @@ }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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zNChQ3Xo0CE98sgjSk9PV5cuXbR06VK/N/YCAIDwE7QBRpImTJhQ6i2jU0VFRWnatGm298WEklCfnxT6c2R+7hfqc2R+7hfKc4ww5/qcEgAAQJAJyi+yAwAAOBsCDAAAcB0CDAAAcB0CDAAAcB3XBJjZs2frwgsvVI0aNdSzZ09t2LDhrOPnz5+vtm3bqkaNGurYsaMWL15su98Yo0ceeURNmjRRzZo1lZiYqK+//roip3BOgczxH//4h6655hrVr19f9evXV2Jiot/4X//614qIiLDdBgwYUNHTOKNA5jdnzhy/3mvUqGEb4/ZzeO211/rNMSIiQsnJyd4xwXIO16xZo1/84heKj49XRESEPvjgg3M+JiUlRV27dlVUVJRat26tOXPm+I0J9Oe6IgU6x/fff1/9+vVT48aN5fF4lJCQoGXLltnG/OEPf/A7f23btq3AWZxZoPNLSUk57Z/P9PR02zg3n8PT/XxFRESoffv23jHBcg5nzJihyy+/XHXr1lVMTIwGDx6snTt3nvNxbnwtLC1XBJh3331XkyZN0rRp07Rx40Z17txZSUlJOnjw4GnHf/rpp7r11ls1evRobdq0SYMHD9bgwYO1detW75jHH39czz77rF588UWtX79etWvXVlJSknJzcytrWjaBzjElJUW33nqrVq1apdTUVDVr1kz9+/fXvn37bOMGDBigAwcOeG/vvPNOZUzHT6Dzk6xvjjy59++//952v9vP4fvvv2+b39atW1W1alX96le/so0LhnN47Ngxde7cWbNnzy7V+N27dys5OVl9+vTR5s2bNXHiRI0ZM8b2Al+WPxMVKdA5rlmzRv369dPixYuVlpamPn366Be/+IU2bdpkG9e+fXvb+fvvf/9bEe2fU6DzK7Fz505b/zExMd773H4On3nmGdvc9u7dqwYNGvj9DAbDOVy9erXGjx+vdevWafny5SooKFD//v117NixMz7Gja+FATEu0KNHDzN+/HjvcVFRkYmPjzczZsw47fhbbrnFJCcn22o9e/Y0v/nNb4wxxhQXF5u4uDjzxBNPeO/PzMw0UVFR5p133qmAGZxboHM8VWFhoalbt655/fXXvbWRI0eaQYMGlXerZRLo/F577TUTHR19xucLxXM4a9YsU7duXXP06FFvLZjOYQlJZsGCBWcdM2XKFNO+fXtbbejQoSYpKcl7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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABz2klEQVR4nO3dd3xTVf8H8E+6W7qggzIKFChlyCggUJAlCAr4iKgID7IEfEAQEBH0JyJDBVRQZIoyRAQERFRQhkyBsssUKtCWFqF7Dzrv74/atLdtbnKT3CZpPu/Xqy/NOTcn5za0+fasr0oQBAFEREREVszG1B0gIiIiMjUGRERERGT1GBARERGR1WNARERERFaPARERERFZPQZEREREZPUYEBEREZHVszN1ByxBUVERHjx4ADc3N6hUKlN3h4iIiHQgCAIyMjJQt25d2NhIjwExINLBgwcP4O/vb+puEBERkR5iYmJQv359yWsYEOnAzc0NQPE31N3d3cS9ISIiIl2kp6fD399f/TkuhQGRDkqmydzd3RkQERERWRhdlrtwUTURERFZPQZEREREZPUYEBEREZHVY0BEREREVo8BEREREVk9BkRERERk9RgQERERkdVjQERERERWjwERERERWT0GRERERGT1GBARERGR1WNARERERFaPARERERGZVmYmkJdn0i4wICIiIiLTEASgZ0/AzQ1wdDRpV+xM+upERERknR48AOrVM3Uv1DhCRERERFVr3TpxMOTmBuTnm64/YEBEREREVaWoCGjQAPjf/0rLPv0USE8H7Ew7acUpMyIiIlLezZtAy5bisrt3gcaNTdOfcjhCRERERMqaN08cDLVpUzxaZCbBEMARIiIiIlJKbi7g5CQu27IFGDHCNP2RwICIiIiIjC80FOjaVVwWFwf4+pqmP1pwyoyIiIiMa/x4cTD07LPFZw6ZaTAEcISIiIiIjCU9HfDwEJcdOAD062ea/sjAESIiIiIy3N69FYOhjAyLCIYABkRERERkqL59i6fFSkyeXDxF5upquj7JxCkzIiIi0s/Dh0DduuKy8+eBjh1N0x8DcISIiIiI5NuwQRwMOTkVZ6y3wGAIYEBERERUrUQkZOJoeDwiE7OUeYGiIqBpU2DcuNKyRYuAnBzA3l6Z16wCnDIjIiKqBlKz8zB122WcuJ2gLusR6IMVw4Ph4WKkQOXv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", "text/plain": [ "
" ] @@ -225,7 +215,7 @@ "\n", "# Generate line points\n", "regression_line = slope * x + intercept\n", - "plt.show()\n", + "\n", "# Add the regression line to the scatter plot\n", "plt.plot(x, regression_line, color='red')\n", "\n", From 92e53c0a2d776545999151b91c4dc6550c802bf6 Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Sat, 19 Oct 2024 10:01:59 -0700 Subject: [PATCH 112/163] adding plots --- D3-Pandas_Graphing.ipynb | 93 +++++++++++++++++++++++++++++++++------- 1 file changed, 77 insertions(+), 16 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index b2fb022..864c5b8 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -49,9 +49,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " gage height ft temperature C \\\n", + "datetime \n", + "2024-09-15 20:00:00 5.37 20.4 \n", + "2024-09-15 20:15:00 5.58 20.4 \n", + "2024-09-15 20:30:00 5.75 20.3 \n", + "2024-09-15 20:45:00 5.99 20.3 \n", + "2024-09-15 21:00:00 6.21 20.3 \n", + "\n", + " specific conductance uS/cm dissolved oxygen mg/L pH \\\n", + "datetime \n", + "2024-09-15 20:00:00 159.0 8.6 7.8 \n", + "2024-09-15 20:15:00 165.0 8.6 7.8 \n", + "2024-09-15 20:30:00 165.0 8.6 7.8 \n", + "2024-09-15 20:45:00 166.0 8.6 7.8 \n", + "2024-09-15 21:00:00 166.0 8.6 7.9 \n", + "\n", + " dom ug/L salinity ppt \n", + "datetime \n", + "2024-09-15 20:00:00 14.7 0.1 \n", + "2024-09-15 20:15:00 16.6 0.1 \n", + "2024-09-15 20:30:00 16.5 0.1 \n", + "2024-09-15 20:45:00 16.7 0.1 \n", + "2024-09-15 21:00:00 16.7 0.1 \n" + ] + } + ], "source": [ "cols = {'datetime': 'datetime',\n", " '288768_00065': 'gage height ft',\n", @@ -181,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -191,6 +221,16 @@ "slope: 2160.6322894868645 intercept: -19.685058556168173\n" ] }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABz2klEQVR4nO3dd3xTVf8H8E+6W7qggzIKFChlyCggUJAlCAr4iKgID7IEfEAQEBH0JyJDBVRQZIoyRAQERFRQhkyBsssUKtCWFqF7Dzrv74/atLdtbnKT3CZpPu/Xqy/NOTcn5za0+fasr0oQBAFEREREVszG1B0gIiIiMjUGRERERGT1GBARERGR1WNARERERFaPARERERFZPQZEREREZPUYEBEREZHVszN1ByxBUVERHjx4ADc3N6hUKlN3h4iIiHQgCAIyMjJQt25d2NhIjwExINLBgwcP4O/vb+puEBERkR5iYmJQv359yWsYEOnAzc0NQPE31N3d3cS9ISIiIl2kp6fD399f/TkuhQGRDkqmydzd3RkQERERWRhdlrtwUTURERFZPQZEREREZPUYEBEREZHVY0BEREREVo8BEREREVk9BkRERERk9RgQERERkdVjQERERERWjwERERERWT0GRERERGT1GBARERGR1WNARERERFaPARERERGZVmYmkJdn0i4wICIiIiLTEASgZ0/AzQ1wdDRpV+xM+upERERknR48AOrVM3Uv1DhCRERERFVr3TpxMOTmBuTnm64/YEBEREREVaWoCGjQAPjf/0rLPv0USE8H7Ew7acUpMyIiIlLezZtAy5bisrt3gcaNTdOfcjhCRERERMqaN08cDLVpUzxaZCbBEMARIiIiIlJKbi7g5CQu27IFGDHCNP2RwICIiIiIjC80FOjaVVwWFwf4+pqmP1pwyoyIiIiMa/x4cTD07LPFZw6ZaTAEcISIiIiIjCU9HfDwEJcdOAD062ea/sjAESIiIiIy3N69FYOhjAyLCIYABkRERERkqL59i6fFSkyeXDxF5upquj7JxCkzIiIi0s/Dh0DduuKy8+eBjh1N0x8DcISIiIiI5NuwQRwMOTkVZ6y3wGAIYEBERERUrUQkZOJoeDwiE7OUeYGiIqBpU2DcuNKyRYuAnBzA3l6Z16wCnDIjIiKqBlKz8zB122WcuJ2gLusR6IMVw4Ph4WKkQOXv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", @@ -213,14 +253,9 @@ "slope, intercept = np.polyfit(x, y, 1)\n", "print('slope:', slope, 'intercept:', intercept)\n", "\n", - "# Generate line points\n", + "# Generate line points and plot it over the scatter plot\n", "regression_line = slope * x + intercept\n", - "\n", - "# Add the regression line to the scatter plot\n", - "plt.plot(x, regression_line, color='red')\n", - "\n", - "# Show plot\n", - "plt.show()" + "plt.plot(x, regression_line, color='red')\n" ] }, { @@ -228,17 +263,43 @@ "metadata": {}, "source": [ "#### *Exercise*\n", - "As mentioned above, both plots share the same figure. We can generate two separate plots by adding `plt.show()` before the second plt.plot command. Try this.\n", + "An alternative way to generate a regressiono line, rather than generating a list of points on it to plot, is to use plt.axline. axline() accepts arguments xy1, a point the line passes through, and either a second point xy2 or the slope.\n", + "* Comment out the two lines generating and plotting regression_line\n", + "* Add a plt.axline() line\n", + "* set xy1=(0, intercept)\n", + "* set slope=slope\n", + "* set color='r'\n", + "And re-run the cell. Docs on axline: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axline.html\n", + "\n", + "As mentioned above, both plots share the same figure. We can generate two separate plots by adding `plt.show()` before the second plt.plot command. Try doing this to see the result.\n", "\n", - "## Box and Whiskers Plot" + "## Box and Whiskers Plot\n", + "Matplotlib has two functinos for this: plt.boxplot and plt.box. Boxplot works on a dataframe by taking a list of columns to plot as separate boxes, e.g. `df.plot(kind='boxplot', columns=['A', 'B', 'C'])`, and box works on a series object and accepts another series to group the data from the first series on\n", + "\n", + "For our plot, let's group our 15 minute data by day and show the temperature each day. " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'PlotAccessor' object has no attribute 'boxplot'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m tol[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdayofyear\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m tol\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mdayofyear\n\u001b[0;32m----> 2\u001b[0m \u001b[43mtol\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mboxplot\u001b[49m(y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtemperature C\u001b[39m\u001b[38;5;124m'\u001b[39m, by\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdayofyear\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "\u001b[0;31mAttributeError\u001b[0m: 'PlotAccessor' object has no attribute 'boxplot'" + ] + } + ], + "source": [ + "tol['dayofyear'] = tol.index.dayofyear\n", + "tol.plot.boxplot(y='temperature C', by='dayofyear')" + ] }, { "cell_type": "markdown", From 27915946f7702f5a19633be78bdc06f4a2fab122 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 19 Oct 2024 13:29:56 -0700 Subject: [PATCH 113/163] more plots --- D3-Pandas_Graphing.ipynb | 192 +++++++++++++++++++++++++++++++++------ 1 file changed, 162 insertions(+), 30 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 864c5b8..783ff12 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -9,6 +9,13 @@ "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", "## DataFrame.plot\n", + "The built-in pandas plotting is based on matplotlib by default and gives a simple inteface to make a lot of plot types. You'll notice that there are a couple of variations of the plot commands that work fairly interchangably:\n", + "* `df.plot.box(by='dayofyear')`\n", + "* `df.plot(kind='box', by='dayofyear')`\n", + "* `df.boxplot(by='dayofyear')`\n", + "\n", + "df.plot.box and df.plot(kind='box') are equivelant and use the pandas plot wrapper to call plt.boxplot. df.boxplot is a more direct call to plt.boxplot - and not all plot types have this call available directly in the dataframe. In any case, you'll notice that plt.box and plt.boxplot don't have a \"by\" argument. There's a bit of code in the pandas wrapper that the above three meuthods use to groupby the data for you. There's a comparison with the plt.box function in the boxplot example below.\n", + "\n", "The plot function built into the Pandas DataFrame object works with matplotlib to generate plots for you using a few standard arguments:\n", "\n", "* **data** is the dataframe object to work on. If you call df.plot, this is implied, and if you call pd.DataFrame.plot(data=df, ...) it must be given as an argument. \n", @@ -16,21 +23,23 @@ "* **y** is a label, position, or list of balel, positions, defaulting to None.\n", "* **kind** is the type of plot to make: line, bar, hist, scatter, etc... \n", "\n", - "As well as a bunch of more detailed options for the plot axis, subplots, style options etc. Read over the documintation for a few min to see what options are available: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html" + "As well as a bunch of more detailed options for the plot axis, subplots, style options etc. Read over the documintation for a few min to see what options are available: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html\n", + "\n", + "Many of the arguments you can pass into df.plot can also be called in some form against `plt`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Let's make a few typesc of charts! We'll start by pulling some data that we can work with. This is from the USGS gauging station at Toland Landing in Rio Vista, CA. This data clearly shows the tide, includes a lot of parameters to play with.\n", + "**Let's make a few types of charts!** We'll start by pulling some data that we can work with. This is from the USGS gauging station at Toland Landing in Rio Vista, CA. This data clearly shows the tide, includes a lot of parameters to play with.\n", "\n", "Note that we're importing numpy and pyplot here, as these are needed in a couple examples below." ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -42,6 +51,8 @@ "tol_all= pd.read_csv(data_url, sep='\\t', comment='#', header=0)\n", "tol_all = tol_all.drop(tol_all.index[0])\n", "\n", + "# If you open the above url in your web browser, you'll see information on what the numeric pcodes represent.\n", + "\n", "# regression/scatter of specific conductivity and salinity\n", "# time series with nitrate and chlorophyll; ph,do and chlorophyll...\n", "# Boxplot of daily temperature" @@ -49,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -108,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -117,15 +128,15 @@ "" ] }, - "execution_count": 27, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGrCAYAAADqwWxuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZxlVXUvvs65Q1X1yCBIA80gCoKIAUUfOCcOwSF5xPgSQxKn+ExiYkxifoYkDokijmjEiDxjkPjERI0a4/iCERDQMKo4ME/N2NI03dXdVbfucH5/nLvPXmvttfc5e+/qulXde30+/emqunffs8+5e1j7u77ru7KiKApIlixZsmTJkiVbRpZPugPJkiVLlixZsmTckoOSLFmyZMmSJVt2lhyUZMmSJUuWLNmys+SgJEuWLFmyZMmWnSUHJVmyZMmSJUu27Cw5KMmSJUuWLFmyZWfJQUmWLFmyZMmSLTtrT7oDITYajeC+++6DtWvXQpZlk+5OsmTJkiVLlqyBFUUBs7OzcPDBB0OeuzGSFemg3HfffbBx48ZJdyNZsmTJkiVLFmCbNm2CQw891PmeFemgrF27FgDKG1y3bt2Ee5MsWbJkyZIla2Lbt2+HjRs3Vvu4y1akg6LCOuvWrUsOSrJkyZIlS7bCrAk9I5FkkyVLlixZsmTLzpKDkixZsmTJkiVbdpYclGTJkiVLlizZsrMVyUFJlixZsmS7x4bDIfT7/Ul3I9kKtU6nA61Wa1E+KzkoyZIlS5YMiqKABx54AB555JFJdyXZCrd99tkHDjrooGidsuSgJEuWLFmyyjk58MADYdWqVUkEM5m3FUUBu3btgs2bNwMAwIYNG6I+LzkoyZIlS7aX23A4rJyT/ffff9LdSbaCbWZmBgAANm/eDAceeGBUuCeRZJMlS5ZsLzfFOVm1atWEe5JsTzA1jmK5TMlBSZYsWbJkANBMPCtZsjpbrHGUHJRkyZIlS5Ys2bKziTgow+EQ3vrWt8KRRx4JMzMzcNRRR8E73/lOKIpiEt1JlixZsmTJFt3e8Y53wC/8wi9EfcYll1wCWZZ5ZVctxnWV7dq1C172spfBunXrvPsRaxNxUN773vfCeeedBx/96EfhZz/7Gbz3ve+F973vfXDuuedOojvJktXawmAELzvvSvjTf/3BpLuSLFmyvchOPfVUuP/++2H9+vWL+rnPec5z4E1velPt+y688EL47ne/C1deeSXcf//9sHXrVsiyDH7wgx8san8km4iDcuWVV8Kv/uqvwotf/GI44ogj4Nd//dfhBS94AVx11VWT6E6yZLX2s/u3w7V3bYUvXX8vPLxzYdLdSZYs2V5i3W53UTRFQu22226DY489Fo4//vgl78dEHJRTTz0Vvv3tb8PNN98MAAA//OEP4fLLL4fTTjtNfH+v14Pt27eTf8mSLaVtm9Ns9Id29CbYk2TJkmGbnZ2FM844A1avXg0bNmyAD33oQwY68OlPfxqe8pSnwNq1a+Gggw6C3/qt36q0OpR95Stfgcc97nEwPT0Nz33uc+HCCy80QhqXX345PPOZz4SZmRnYuHEjvPGNb4SdO3fW9vHTn/40HHHEEbB+/Xr4zd/8TZidna1eG41GcPbZZ1eUhyc96UnwhS98oXpdCvF84hOfgI0bN8KqVavg9NNPh3POOQf22Wefxtd91ateBZdeein8/d//PWRZBlmWwZ133mm0f85zngMf/OAH4bLLLoMsy+A5z3kOHHnkkQAAcOKJJ1Z/221WTMCGw2Hxlre8pciyrGi320WWZcW73/1u6/vf/va3FwBg/Nu2bdsS9jrZ3mz/du2m4vC3fLU4/C1fLb5320OT7k6yZItqc3NzxU9/+tNibm6u+ttoNCp29vpL/m80Gnn1/fd+7/eKww8/vLj44ouLG264oTj99NOLtWvXFn/yJ39SveeTn/xk8fWvf7247bbbiu9973vFKaecUpx22mnV67fffnvR6XSKN7/5zcWNN95YfPazny0OOeSQAgCKrVu3FkVRFLfeemuxevXq4kMf+lBx8803F1dccUVx4oknFq961ausfXv7299erFmzpvi1X/u14oYbbiguu+yy4qCDDir+6q/+qnrPu971ruLxj3988c1vfrO47bbbigsuuKCYmpoqLrnkkqIoiuI73/kO6cfll19e5HlevP/97y9uuumm4h/+4R+K/fbbr1i/fn3j6z7yyCPFKaecUrzuda8r7r///uL+++8vBoOB0f8tW7YUr3vd64pTTjmluP/++4stW7YUV111VQEAxcUXX1z9jZs0npRt27at8f49EaG2z33uc/CZz3wGLrroInjCE54AP/jBD+BNb3oTHHzwwfDKV77SeP+ZZ54Jf/Znf1b9vn37dti4ceNSdjnZXm44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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAG5CAYAAACDeNt6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebxlWVEniseZ75BTDVlUFRZWicygYot8EGnhKSIPfTZPfa2N/RyRdmi6sfEn/LrtpyIUtlgovBZwaCgVB1REmkGbQkGgLJmKAgqKmuesKcc7nnG/P/ZZa8WKFRFr7XvWzsybd8fnw4fMrHP23uecvdeKiO8QraIoCmiiiSaaaKKJJppoookmmjhLo32mL6CJJppoookmmmiiiSaaaEKLpmhpookmmmiiiSaaaKKJJs7qaIqWJppoookmmmiiiSaaaOKsjqZoaaKJJppoookmmmiiiSbO6miKliaaaKKJJppoookmmmjirI6maGmiiSaaaKKJJppoookmzupoipYmmmiiiSaaaKKJJppo4qyOpmhpookmmmiiiSaaaKKJJs7q6J7uE85mM7j//vth//790Gq1Tvfpm2iiiSaaaKKJJppooomzJIqigLW1Nbj00kuh3ZbxlNNetNx///1w2WWXne7TNtFEE0000UQTTTTRRBNnadxzzz3wVV/1VeJ/P+1Fy/79+wGgvLADBw6c7tM30UQTTTTRRBNNNNFEE2dJnDp1Ci677DJbI0hx2osWQwk7cOBAU7Q00UQTTTTRRBNNNNFEE1HZSCPEb6KJJppoookmmmiiiSbO6miKliaaaKKJJppoookmmmjirI6maGmiiSaaaKKJJppoookmzuo47ZqWJppoookmmmiiiSZ2R0ynUxiPx2f6MprYxdHpdKDb7S486qQpWppoookmmmiiiSaaCGJ9fR3uvfdeKIriTF9KE7s8VlZW4JJLLoF+v7/jYzRFSxNNNNFEE0000UQTXkynU7j33nthZWUFDh8+3AwEb2JHURQFjEYjePjhh+GOO+6Axz3uceoASS2aoqWJJppoookmmmiiCS/G4zEURQGHDx+G5eXlM305TeziWF5ehl6vB3fddReMRiNYWlra0XEaIX4TTTTRRBNNNNFEE2w0CEsTOWKn6Ip3jAzX0UQTTTTRRBNNNNFEE000UVs0RUsTTTTRRBNNNNFEE03UHL/8y78M3/AN37DQMT7ykY9Aq9WCEydOnNbzmtjc3ITv+77vgwMHDlS+jkWjUtEynU7hl37pl+CKK66A5eVleOxjHwuvec1rGleJJppoookmmmiiiSaaqDm+5Vu+BY4cOQIHDx7MetznPve58B//43+Mvu7qq6+Gj33sY3DttdfCkSNH4Pjx49BqteBzn/tc1uvhopIQ/9d//dfhLW95C1x99dXwlKc8BT796U/Dj/3Yj8HBgwfh5S9/eV3X2EQTTZzFURQFvPQPPwPb4ym8/ceeAb1OA+A20UQTTTTRRB3R7/fh4osvPmPnv+222+BJT3oSPPWpTwUAgDvvvPO0nbtSdnHttdfC937v98KLXvQiuPzyy+H7v//74Tu/8zvhk5/8ZF3X10QTTZzlcfexTbjmyw/Cx299BK67/eiZvpwmmmiiiSb2cKytrcFLXvISWF1dhUsuuQTe+MY3BijCH/3RH8E3fdM3wf79++Hiiy+Gf/Nv/g089NBD3nHe+973wuMe9zhYWlqC5z3veXD11VcHdKiPf/zj8JznPAeWl5fhsssug5e//OWwsbERvcY/+qM/gssvvxwOHjwIP/iDPwhra2v2v81mM7jyyistq+nrv/7r4S//8i/tf+foYb/3e78Hl112GaysrMCLX/xiuOqqq+DQoUPJ5/3RH/1R+OhHPwq//du/Da1WC1qtFluMPPe5z4Xf/M3fhH/8x3+EVqsFz33uc+GKK64AAICnP/3p9t/qikpFy7d8y7fAhz/8Ybj55psBAOCGG26Aj3/84/DCF75QfM9wOIRTp055/2uiiSbOnbjt4XX757uPbZ7BK2miiSaaaKKuKIoCNkeTM/K/KjKEn//5n4dPfOIT8N73vhc+9KEPwcc+9jH47Gc/671mPB7Da17zGrjhhhvgPe95D9x5553woz/6o/a/33HHHfD93//98K/+1b+CG264AV72spfBf/7P/9k7xm233Qbf9V3fBd/3fd8Hn//85+HP//zP4eMf/zj83M/9nHp9t912G7znPe+B973vffC+970PPvrRj8LrX/96+9+vvPJK+MM//EN461vfCjfeeCO84hWvgB/+4R+Gj370o+zxPvGJT8C/+3f/Dv7Df/gP8LnPfQ6e//znw2tf+9pK5/3t3/5teNazngUvfelL4ciRI3DkyBG47LLLgmO8+93vhpe+9KXw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vfceFi9ejDVr1lh9C4x/TJsvWrQI69atQ0tLCxobGzFjxgysWrUKt9xyCzo6OrB06VKsWbMGl19+OWpra60IbpBcddVVmD17NhYsWICVK1di165dfK0WAbfdP/nkE8RiMRx11FGYN28eX6dEuO3+8ccfW9fqLbfcUtLXapiR92LRaBQAUFZWhoaGBgDABx98gFGjRqG9vR3/7//9P7S1teHKK6/EFVdcEdSSewUltwcmc4dCzksvvSTmzZsnDMMQkydPFn/729+EEEKkUqmcr3/sscfE6NGjxaOPPlrMZfY6NmzYID7zmc+IAw88UNxwww1izpw5Ytq0aeKGG25wvM707q+99loxYcIE8dBDD1n/jSMrPSOf7a+//nohRMauTz31lHjuuedEOp22voMPPvhATJo0Sfz0pz8NcvmhJJ/Nf/aznwkhhOjo6BCnn366GDt2rGhoaBBjx44VzzzzjBBCiAkTJojf//73ga09kUiIxYsXi3HjxonbbrtNfOELXxCTJk0SJ510kuN1fK3qJZ/dTzzxRCGEfZ0+++yzfJ1qJJ/dTzjhBCFEaV+rYUZlL2beR1588UXH3y5dulRMmzZN7Nmzp2jr7S2U6h6YnZY8XH/99eKUU04Rt912mzjxxBPF4sWLRSKREELkftB2dHSImpoaceeddwoh8n+xTH527twpLrjgAvHVr35VtLS0WL8/++yzxQUXXOBITZrfQTqdFlOnThVf+cpXxObNm8XatWvFTTfdVPS1hx0v23d1dQkhhHUNmJjfw+DBg8WVV15ZvAX3Arxs3t7eLoQQoq2tTWzatEn885//tF7T1dUl9tlnH3HLLbcUfd0mmzdvFhMmTBDr1q2zfvfII4+IqqoqR5mMeS/ka1UPhexuBhjcpUh8ne49hexult21t7eLN998s+Su1TDjdy8m//4LX/iCmDNnjmhvb+cAiU9KdQ/M5WF5WLhwIb75zW/i3HPPxfHHH49NmzbhjjvuyPv6VCqF2bNn44knngDASiE9ZdiwYfja176G2tpaJBIJAEBTUxNeeuklR2rSMAykUikYhoErr7wS69atw1FHHYUzzzyTy056SCHbV1RUAMik42UMw8C6deswbNgwLFy4sOhrDjuFbF5VVQUAqK6uxn777YdDDz3U+rs//OEPGDNmDBYsWBDIuoFME+ybb76JqVOnWr877rjjsHTpUlxzzTXYsmULgMy9kK9VfRSy+7XXXostW7ZY5TMmfJ3uPYXs/sMf/hBbtmxBVVUVxo8fX3LXapjxuxcDMuf7xo0bsW3bNpx77rmoqqrisn2flOoemHfWeRgyZAiOPPJIAMAZZ5yBkSNH4k9/+hM++ugjGIaRpbleU1ODjz76CK2trejq6gpiyaFnn332wZVXXomDDjoIgL1B3rlzJw4//PCs10ejUbz//vv4+9//jo8//hjHHnssPvroI1x00UVFXXdvwK/tX331VTz33HO47LLL8OUvfxnz589ntRaf+LX5zp078be//Q2XXHIJLr74YpxyyilobGwMbOOfSqUwdepU/PGPf3T8fsmSJWhsbMSNN95ovY6vVX2o2l0IwdepRgrZfcCAAZbd0+l0yV2rYcbPXuzNN9/Ek08+iUsvvRRHH3009t9/f3zhC18IaumhplT3wH3WaVG9eaTTaYwYMQKnnXYadu3ahVWrVgFwepHJZBJAZsDRd77zHcRiMf0L7iUUsrsQAmVlZdZrzMjI22+/jWnTpuX8+xtvvBFr167Fhg0bcOutt6KxsZFo5eFHp+2ffvppLFmyBBs2bMADDzyAH/3oR1lZGEavzffs2YO1a9fihRdewCOPPILvfe97iEQiZBFEr3vkyJEjsf/++2PDhg3WILd0Oo36+nr813/9F+655x50dnZaUX++VtXQYfeOjg4YhsHXqQ90ne+RSKTo12qY0bkXe/XVV3H99dfjlVdewaOPPorf/va3VsaacRLaPTBJ0VmJs2vXLtHc3Gz9W669c9fsm/9ub28XF154oZgzZ454+eWXhRBCvPDCC0KI7PphJjd+7G7a9N133xV1dXXilVdesf7btm3brJ/lXgAmP7psv3XrViGEEM3NzdZ1wORGl80//PBD62927txJuWSLnTt3io8++shaV761/+EPfxBTpkwRP/7xjx1/v3LlSnHggQeK999/3/odX6ve6LL7u+++K4QQorW1la9TBXSf7+l0umjXaphRtbv871x7seeee04Iken/e+edd4qx9FCjy+5B7IH7XKbloosuwsEHH4yTTz4ZixcvxrZt2xweoxn5vO2226x/p9NpVFVV4eyzz0ZZWRl+9KMfWcO7tm3bllU/zGTj1+6mTR966CGMHTsWkydPxtatW3H22WfjlFNOwe7duwEAtbW1xf8w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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -156,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 62, "metadata": {}, "outputs": [ { @@ -165,7 +176,7 @@ "" ] }, - "execution_count": 52, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" }, @@ -181,7 +192,8 @@ } ], "source": [ - "tol.plot(kind='scatter', y='specific conductance uS/cm', x='salinity ppt')" + "# tol.plot(kind='scatter', y='specific conductance uS/cm', x='salinity ppt')\n", + "tol.plot.scatter(y='specific conductance uS/cm', x='salinity ppt')" ] }, { @@ -274,36 +286,161 @@ "As mentioned above, both plots share the same figure. We can generate two separate plots by adding `plt.show()` before the second plt.plot command. Try doing this to see the result.\n", "\n", "## Box and Whiskers Plot\n", - "Matplotlib has two functinos for this: plt.boxplot and plt.box. Boxplot works on a dataframe by taking a list of columns to plot as separate boxes, e.g. `df.plot(kind='boxplot', columns=['A', 'B', 'C'])`, and box works on a series object and accepts another series to group the data from the first series on\n", + "As mentionMatplotlib has two functinos for this: plt.boxplot and plt.box. Boxplot works on a dataframe by taking a list of columns to plot as separate boxes, e.g. `df.plot(kind='boxplot', columns=['A', 'B', 'C'])`, and box works on a series object and accepts another series to group the data from the first series on\n", "\n", "For our plot, let's group our 15 minute data by day and show the temperature each day. " ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 68, "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "'PlotAccessor' object has no attribute 'boxplot'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[15], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m tol[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdayofyear\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m tol\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mdayofyear\n\u001b[0;32m----> 2\u001b[0m \u001b[43mtol\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mboxplot\u001b[49m(y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtemperature C\u001b[39m\u001b[38;5;124m'\u001b[39m, by\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdayofyear\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "\u001b[0;31mAttributeError\u001b[0m: 'PlotAccessor' object has no attribute 'boxplot'" - ] + "data": { + "text/plain": [ + "temperature C Axes(0.125,0.11;0.775x0.77)\n", + "dtype: object" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "tol['dayofyear'] = tol.index.dayofyear\n", - "tol.plot.boxplot(y='temperature C', by='dayofyear')" + "\n", + "# These three are all pretty much equivelant:\n", + "tol[['dayofyear', 'temperature C']].plot.box(by='dayofyear')\n", + "# tol[['dayofyear', 'temperature C']].boxplot(by='dayofyear')\n", + "# tol[['dayofyear', 'temperature C']].plot(kind='box', by='dayofyear')\n", + "\n", + "# An example using pyplot directly:\n", + "# grouped_data = tol.groupby('dayofyear')['temperature C'].apply(list)\n", + "# plt.boxplot(grouped_data, tick_labels=grouped_data.index)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*\n", + "* The labels are kind of hard to see... use the `figsize` argument to make the plot wider and the `rot` argument to rotate the labels. \n", + "* Day of year works, but isn't very understandable. The dataframe index is made up of datetime objects, so we can use the strftime function built into datetime objects to get a formatted date. Use the following line for a month_day column and update the plot command to use it instead of dayofyear:\n", + "\n", + " tol['month_day'] = tol.index.strftime('%B %d')\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "min_max_field = 'temperature C'\n", + "gate_max = tol.groupby('dayofyear')[min_max_field].apply(np.max)\n", + "gate_min = tol.groupby('dayofyear')[min_max_field].apply(np.min)\n", + "gate_avg = tol.groupby('dayofyear')[min_max_field].apply(np.mean)\n", + "stdev = tol.groupby('dayofyear')[min_max_field].apply(np.std)\n", + "(gate_avg + stdev).plot(label='avg+stdev')\n", + "(gate_avg - stdev).plot(label='avg+stdev')\n", + "gate_max.plot(label='max', figsize=(10, 5), style='.')\n", + "gate_min.plot(label='min', style='.')\n", + "gate_avg.plot(label='avg', style='--')\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Histogram\n", + "We can use a histogram to \"bucket\" values and see which buckets are most common. Let's try this with the temperature data:" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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m25ScXFxwIoDAADoLL9mdv7v//5PO3fulN1u99k/ePBg/f3vfw9IYQAAAIHgV9hpb29XW1vbKfsPHz6s2NjYThcFoHOCedfnL5ZkB61vAAgGv77GGj9+vB577DHvts1mU2NjoxYvXswjJAAAQFjxa2bnkUceUVZWltLT09XU1KSf/vSnOnDggPr3768XX3wx0DUCAAD4za+wM2jQIL3//vtav369PvjgAzU2Nio3N1czZ870WbAMAAAQan6FHUmKjIzULbfcEshaAAAAAs6vsLNu3brvPH7bbbf5VQwAAECg+RV25s6d67Pd2tqqEydOyG63KyYmhrADAADChl+/xvrqq698Xo2NjaqoqNA111zDAmUAABBW/H421rcNHTpUS5YsOWXWBwAAIJQCFnakrxctV1VVBbJLAACATvFrzc6f/vQnn23LslRdXa3f//73uvrqqwNSGAAAQCD4FXamTJnis22z2TRgwABdf/31euSRRwJRFwAAQED4/WwsAACA7iCga3YAAADCjV8zO/n5+efcdvny5f58BAAAQED4FXbKy8tVXl6u1tZWDRs2TJL0ySefqEePHrriiiu87Ww2W2CqBAAA8JNfYefGG29UbGys1q5dq759+0r6+kaDt99+u6699lrdc889AS0SAADAX36t2XnkkUdUUFDgDTqS1LdvXz300EP8GgsAAIQVv8KOx+PRkSNHTtl/5MgRNTQ0dLooAACAQPEr7Nx00026/fbbtWHDBh0+fFiHDx/WH//4R+Xm5mrq1KmBrhEAAMBvfq3ZWb16te6991799Kc/VWtr69cdRUYqNzdXDz/8cEALBAAA6Ay/ZnZiYmK0atUqHT161PvLrGPHjmnVqlXq3bv3OfdTUFCg733ve4qNjVVCQoKmTJmiiooKnzZNTU3Ky8tTv3791KdPH02bNk01NTU+bSorK5Wdna2YmBglJCTovvvu08mTJ/05NQAAYJhO3VSwurpa1dXVGjp0qHr37i3Lss7r/SUlJcrLy9Pbb7+tLVu2qLW1VePHj9fx48e9bebPn6/XX39dRUVFKikpUVVVlc9XZW1tbcrOzlZLS4t27typtWvXqrCwUIsWLerMqQEAAEPYrPNNKJKOHj2qH//4x9q2bZtsNpsOHDigiy66SD/72c/Ut29fv3+RdeTIESUkJKikpET/+Z//qfr6eg0YMEAv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//5c899ypnH3R//+/dWjRw+u93MQyHE/nbi4OF1yySUBu94v+LDTwel0asCAATpw4IB2796tyZMnn7Gty+VScXGxz74tW7b4zDzg7M5nzL+tra1Ne/fu1cCBA4NYYfdiWZbmzJmjV155RVu3btWQIUN8jmdkZCgqKsrn2q2oqFBlZeUZr90hQ4YoKSnJ5z0ej0e7du3iev+XYIz76Rw+fFhHjx7lmv+Xs427P+x2uzIyMnz+XbW3t6u4uJjr/V+CMe6n09jYqM8++yxw13vQlj6HiYaGBqu8vNwqLy+3JFnLly+3ysvLrS+//NKyLMt6+eWXrW3btlmfffaZ9eqrr1ppaWnW1KlTffq49dZbrfvvv9+7/be//c2KjIy0fve731kfffSRtXjxYisqKsrau3dvl55buArGmP/2t7+13nzzTeuzzz6zysrKrBkzZlg9e/a09u/f36XnFs5mz55tOZ1Oa/v27VZ1dbX3deLECW+bu+66y0pNTbW2bt1q7d6923K5XJbL5fLpZ9iwYdaGDRu820uWLLHi4uKs1157zfrggw+syZMnW0OGDLH++c9/dtm5hbNgjHtDQ4N17733WqWlpdbBgwett956y7riiiusoUOHWk1NTV16fuHqXMa9urraKi8vt5555hlLkrVjxw6rvLzcOnr0qLfN9ddfbz3xxBPe7fXr11vR0dFWYWGh9eGHH1p33nmnFRcXZ7nd7i49v3AVrHG/5557rO3bt1sHDx60/va3v1mZmZlW//79rdra2oDUbXzY6fjp27dfOTk5lmVZ1uOPP24NGjTIioqKslJTU62FCxdazc3NPn384Ac/8Lbv8PLLL1uXXHKJZbfbrcsuu8x64403uuiMwl8wxnzevHlWamqqZbfbrcTERGvSpEnWnj17uvCswt/pxlyStWbNGm+bf/7zn9YvfvELq2/fvlZMTIx10003WdXV1af08833tLe3W7/5zW+sxMREKzo62ho3bpxVUVHRRWcV/oIx7idOnLDGjx9vDRgwwIqKirLS0tKsO+64gz+433Au47548eKztklLS7MWL17s0/cTTzzh/f/NVVddZb399ttdc1LdQLDGffr06dbAgQMtu91u/du//Zs1ffp069NPPw1Y3bZ/FQ8AAGAk1uwAAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYLT/B1Qu8Ue5vqrOAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# histogram\n", + "# tol['temperature C'].hist(bins=20).plot()\n", + "# print(tol['temperature C'].hist(bins=20))\n", + "tol['temperature C'].plot.hist(bins=20)\n" ] }, { "cell_type": "markdown", "metadata": {}, + "source": [ + "## Multi Axis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [] }, { @@ -311,11 +448,6 @@ "metadata": {}, "source": [ "\n", - "## Multi Axis\n", - "\n", - "## Scatter Plot\n", - "\n", - "## Box and Whisker Plot\n", "\n", "## Histogram\n", "\n", @@ -339,7 +471,7 @@ ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "venv", "language": "python", "name": "python3" }, @@ -353,7 +485,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.3" } }, "nbformat": 4, From e58b3e96029de508027e7ac41f97ab7e223dc79e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 20 Oct 2024 08:58:39 -0700 Subject: [PATCH 114/163] more plots --- D3-Pandas_Graphing.ipynb | 54 ++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 783ff12..5a9a1b7 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -101,7 +101,9 @@ " '291459_00300': 'dissolved oxygen mg/L',\n", " '291463_00400': 'pH',\n", " '304254_32295': 'dom ug/L',\n", - " '305297_90860': 'salinity ppt',} \n", + " '305297_90860': 'salinity ppt',\n", + " '291460_32316': 'fchl mg/L' # chlorophyll\n", + " } \n", "tol = tol_all[cols.keys()].rename(columns=cols)\n", "tol['datetime'] = pd.to_datetime(tol['datetime'])\n", "tol = tol.set_index('datetime')\n", @@ -346,7 +348,9 @@ { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "Just for fun, we can sort of graph the data used to generate a simplified boxplot using " + ] }, { "cell_type": "code", @@ -380,11 +384,12 @@ "gate_min = tol.groupby('dayofyear')[min_max_field].apply(np.min)\n", "gate_avg = tol.groupby('dayofyear')[min_max_field].apply(np.mean)\n", "stdev = tol.groupby('dayofyear')[min_max_field].apply(np.std)\n", - "(gate_avg + stdev).plot(label='avg+stdev')\n", - "(gate_avg - stdev).plot(label='avg+stdev')\n", + "\n", "gate_max.plot(label='max', figsize=(10, 5), style='.')\n", "gate_min.plot(label='min', style='.')\n", "gate_avg.plot(label='avg', style='--')\n", + "(gate_avg + stdev).plot(label='avg+stdev')\n", + "(gate_avg - stdev).plot(label='avg+stdev')\n", "plt.legend()" ] }, @@ -398,7 +403,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 82, "metadata": {}, "outputs": [ { @@ -407,7 +412,7 @@ "" ] }, - "execution_count": 54, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" }, @@ -424,24 +429,47 @@ ], "source": [ "# histogram\n", - "# tol['temperature C'].hist(bins=20).plot()\n", - "# print(tol['temperature C'].hist(bins=20))\n", - "tol['temperature C'].plot.hist(bins=20)\n" + "tol['temperature C'].plot.hist(bins=20)\n", + "\n", + "# group by day of year and generate the histogram again:\n", + "# tol.groupby('dayofyear')['temperature C'].apply(np.mean).plot.hist(bins=20)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Multi Axis" + "## Multi Axis\n", + "\n", + "We need to pay more attion to matplotlib for multi-axis plots. Let's say we wanted do show plots of several parameters on separate graphs - we can define subplots using plt.subplots and tell each plot we make which axis to draw on. It's a convention to call multiple axis \"axs\". fig, axs = plt.subplots... is equiv to fig, (ax0, ax1, ...) = plt.subplots..." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 84, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "image/png": "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fj6KiorOihgdOt4zm0jH+9577+Guu+7CypUrMXbsWP78119/jZtuugmPPfYYHnzwQXz33XeYMWMGlixZgosvvphvt2jRIsybNw8FBQVITU3FlClT8OSTT6JHD7mK8h133IGPP/44bD51deEtJ6JRXV2Nfv364b777tO15CYLZ9vvCjj7jpmOV7a8NDQ08PM8EkkpYADggQcewG233Ybx48dj4sSJ+Pvf/46mpibcfvvtcY03m81RlVuykJmZeVb8SBl0vGc22uNNSZEzG9LT01XPnzwp17Tp2bMnMjMzkZYWqo2Ulsa3W7BgAW6//XZMmDABc+fORXl5OV588UVs2rQJ27dvR3Z2Nn75y19yAfPOO++o5hGLqqoqBAIBnDhxAk899RQA4JprrukQ39fZ9rsCzr5jPtuPNysrdpZZ0gqYH//4xzh16hQef/xxlJWVYcyYMfjqq6/CAnsJgkh+6urqUFlZCbfbje+//x5PPfUUUlJSMGPGDN3tfT4fHnroIYwYMQJr1qyB0ynXmrjoooswY8YMzJs3D08++aSqsOWtt95qaE49e/bkbuecnBz84x//wJVXXpngERIE0dYkrYABgLvvvjuiy4ggiI7DlClTVH/36dMH7733Hnr27Km7/ZYtW1BRUYE5c+Zw8QIA06dPx5AhQ7B06dIWu3q+/PJLuN1u7N+/H++++y4PJCYIomOQ1ALmTMbhcOCJJ55Qxe2cydDxntnEOt758+dj0KBBsFqtyMvLw+DBg2E2R05VPn5cLrg4ePDgsNeGDBmCtWvX8v1OmDABmzdvDtsuFpdddhkA4Oqrr8YPfvADjBgxAunp6Ul903S2/a6As++Y6XjjJymzkAiCODNgcSybN2/G+PHjI26nLWS3cOFC3HLLLVi+fDkuv/xy1bbXX3891q5di1On5F4+d999N+bPnx8z5TIWF1xwASRJwvr161v0PgRBtA1JWciOIIizmz595F5cBQXhPY0KCgr460DrVZV1uVyGs5cIgmg/SMAQBJF0jB8/Hrm5uXj11VdV9Z2+/PJL7N+/H9OnT+fPsQym2tramO/r9/tRU1MT9vymTZuwe/fuqFYigiCSC4qBIQgi6bDZbHjuuedw++2349JLL8Utt9zC06j79u2L+++/n287btw4AMC9996LadOmwWKx4Oabb9Z938bGRuTn5+PHP/4xhg8f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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3)\n", + "tol['temperature C'].plot(ax=axs[0])\n", + "tol['specific conductance uS/cm'].plot(ax=axs[1])\n", + "tol['salinity ppt'].plot(ax=axs[2])\n", + "\n", + "for n, ax in enumerate(axs):\n", + " ax.set_title(f'Plot {n+1}')\n", + " ax.label_outer()" + ] }, { "cell_type": "markdown", From 6416c239388d3d503bed2c7b63fd0e73ae86df51 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 20 Oct 2024 15:55:28 -0700 Subject: [PATCH 115/163] work --- D3-Pandas_Graphing.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 5a9a1b7..f379195 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -513,7 +513,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From 0dd19fbd2a630567021c249a607978a5bce41a0e Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Mon, 21 Oct 2024 19:34:48 -0700 Subject: [PATCH 116/163] graphs --- D3-Pandas_Graphing.ipynb | 82 ++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index f379195..7609bc8 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -83,13 +83,13 @@ "2024-09-15 20:45:00 166.0 8.6 7.8 \n", "2024-09-15 21:00:00 166.0 8.6 7.9 \n", "\n", - " dom ug/L salinity ppt \n", - "datetime \n", - "2024-09-15 20:00:00 14.7 0.1 \n", - "2024-09-15 20:15:00 16.6 0.1 \n", - "2024-09-15 20:30:00 16.5 0.1 \n", - "2024-09-15 20:45:00 16.7 0.1 \n", - "2024-09-15 21:00:00 16.7 0.1 \n" + " dom ug/L salinity ppt fchl mg/L nitrate mg/L \n", + "datetime \n", + "2024-09-15 20:00:00 14.7 0.1 NaN NaN \n", + "2024-09-15 20:15:00 16.6 0.1 NaN NaN \n", + "2024-09-15 20:30:00 16.5 0.1 NaN NaN \n", + "2024-09-15 20:45:00 16.7 0.1 NaN NaN \n", + "2024-09-15 21:00:00 16.7 0.1 NaN NaN \n" ] } ], @@ -102,7 +102,8 @@ " '291463_00400': 'pH',\n", " '304254_32295': 'dom ug/L',\n", " '305297_90860': 'salinity ppt',\n", - " '291460_32316': 'fchl mg/L' # chlorophyll\n", + " '291460_32316': 'fchl mg/L', # chlorophyll\n", + " '313341_99133': 'nitrate mg/L'\n", " } \n", "tol = tol_all[cols.keys()].rename(columns=cols)\n", "tol['datetime'] = pd.to_datetime(tol['datetime'])\n", @@ -288,7 +289,7 @@ "As mentioned above, both plots share the same figure. We can generate two separate plots by adding `plt.show()` before the second plt.plot command. Try doing this to see the result.\n", "\n", "## Box and Whiskers Plot\n", - "As mentionMatplotlib has two functinos for this: plt.boxplot and plt.box. Boxplot works on a dataframe by taking a list of columns to plot as separate boxes, e.g. `df.plot(kind='boxplot', columns=['A', 'B', 'C'])`, and box works on a series object and accepts another series to group the data from the first series on\n", + "The df.plot.box function from pandas includes a convenient 'by=\"col_name\"' option that isn't part of plt.boxplot - it will group your data by the given column automatically. There's an example commented out below of grouping the data before passing to plt.boxplot for comparison.\n", "\n", "For our plot, let's group our 15 minute data by day and show the temperature each day. " ] @@ -325,8 +326,8 @@ "\n", "# These three are all pretty much equivelant:\n", "tol[['dayofyear', 'temperature C']].plot.box(by='dayofyear')\n", - "# tol[['dayofyear', 'temperature C']].boxplot(by='dayofyear')\n", "# tol[['dayofyear', 'temperature C']].plot(kind='box', by='dayofyear')\n", + "# tol[['dayofyear', 'temperature C']].boxplot(by='dayofyear')\n", "\n", "# An example using pyplot directly:\n", "# grouped_data = tol.groupby('dayofyear')['temperature C'].apply(list)\n", @@ -446,14 +447,14 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { - "image/png": "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fj6KiorOihgdOt4zm0jH+9577+Guu+7CypUrMXbsWP78119/jZtuugmPPfYYHnzwQXz33XeYMWMGlixZgosvvphvt2jRIsybNw8FBQVITU3FlClT8OSTT6JHD7mK8h133IGPP/44bD51deEtJ6JRXV2Nfv364b777tO15CYLZ9vvCjj7jpmOV7a8NDQ08PM8EkkpYADggQcewG233Ybx48dj4sSJ+Pvf/46mpibcfvvtcY03m81RlVuykJmZeVb8SBl0vGc22uNNSZEzG9LT01XPnzwp17Tp2bMnMjMzkZYWqo2Ulsa3W7BgAW6//XZMmDABc+fORXl5OV588UVs2rQJ27dvR3Z2Nn75y19yAfPOO++o5hGLqqoqBAIBnDhxAk899RQA4JprrukQ39fZ9rsCzr5jPtuPNysrdpZZ0gqYH//4xzh16hQef/xxlJWVYcyYMfjqq6/CAnsJgkh+6urqUFlZCbfbje+//x5PPfUUUlJSMGPGDN3tfT4fHnroIYwYMQJr1qyB0ynXmrjoooswY8YMzJs3D08++aSqsOWtt95qaE49e/bkbuecnBz84x//wJVXXpngERIE0dYkrYABgLvvvjuiy4ggiI7DlClTVH/36dMH7733Hnr27Km7/ZYtW1BRUYE5c+Zw8QIA06dPx5AhQ7B06dIWu3q+/PJLuN1u7N+/H++++y4PJCYIomOQ1ALmTMbhcOCJJ55Qxe2cydDxntnEOt758+dj0KBBsFqtyMvLw+DBg2E2R05VPn5cLrg4ePDgsNeGDBmCtWvX8v1OmDABmzdvDtsuFpdddhkA4Oqrr8YPfvADjBgxAunp6Ul903S2/a6As++Y6XjjJymzkAiCODNgcSybN2/G+PHjI26nLWS3cOFC3HLLLVi+fDkuv/xy1bbXX3891q5di1On5F4+d999N+bPnx8z5TIWF1xwASRJwvr161v0PgRBtA1JWciOIIizmz595F5cBQXhPY0KCgr460DrVZV1uVyGs5cIgmg/SMAQBJF0jB8/Hrm5uXj11VdV9Z2+/PJL7N+/H9OnT+fPsQym2tramO/r9/tRU1MT9vymTZuwe/fuqFYigiCSC4qBIQgi6bDZbHjuuedw++2349JLL8Utt9zC06j79u2L+++/n287btw4AMC9996LadOmwWKx4Oabb9Z938bGRuTn5+PHP/4xhg8f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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -461,27 +462,52 @@ } ], "source": [ - "fig, axs = plt.subplots(3)\n", - "tol['temperature C'].plot(ax=axs[0])\n", - "tol['specific conductance uS/cm'].plot(ax=axs[1])\n", - "tol['salinity ppt'].plot(ax=axs[2])\n", - "\n", - "for n, ax in enumerate(axs):\n", - " ax.set_title(f'Plot {n+1}')\n", - " ax.label_outer()" + "# fig, axs = plt.subplots(3)\n", + "# tol['temperature C'].plot(ax=axs[0])\n", + "# tol['salinity ppt'].plot(ax=axs[1])\n", + "# tol['fchl mg/L'].plot(ax=axs[2])\n", + "\n", + "# for n, ax in enumerate(axs):\n", + "# ax.set_title(f'Plot/ax {n}')\n", + "# ax.label_outer()\n", + "\n", + "fig, axs = plt.subplots(3, 2)\n", + "tol['temperature C'].plot(ax=axs[0][0])\n", + "tol['salinity ppt'].plot(ax=axs[1][0])\n", + "tol['fchl mg/L'].plot(ax=axs[2][0])\n", + "compare_col = 'nitrate mg/L'\n", + "tol.plot.scatter(x=compare_col, y='temperature C', ax=axs[0][1])\n", + "tol.plot.scatter(x=compare_col, y='salinity ppt', ax=axs[1][1])\n", + "tol.plot.scatter(x=compare_col, y='fchl mg/L', ax=axs[2][1])\n", + "\n", + "for row_num, ax_row in enumerate(axs):\n", + " for col_num, ax in enumerate(ax_row):\n", + " ax.set_title(f'Plot/ax {row_num}-{col_num}')\n", + " ax.label_outer()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "#### *Exercise*:\n", + "Let's take this to the next level and do a 3x2 plot so we can show the correlation between each of these metrics with gage height alongside the time-series graph. \n", + "* edit the first line with subplots(3, 2). Now axs will be of the format `[[ax00, ax01], [ax10, ax11], [ax20, ax21]]`.\n", + "* Cange the ax=... for each of the current plots to add a [0] on the end of each one, like axs[1][0]\n", + "* Update the loop over axs to a nested loop and adjust the title text to show both. E.g:\n", "\n", + " for row_num, ax_row in enumerate(axs):\n", + " for col_num, ax in enumerate(ax_row):\n", + " ax.set_title(f'Plot/ax {row_num}-{col_num}')\n", + " ax.label_outer()\n", "\n", - "## Histogram\n", + "Go ahead and re-run the cell now and you should have three plots on the left and three empty boxes on the right side. \n", + "* Add three more scatter plots with axis locations `[0][1]`, `[1][1]`, and `[2][1]`. Each should have `x='gage height ft'` and `y=...` matching either temperature, salinity, or fchl.\n", "\n", - "## Heatmap\n", + "Wow, no correlation at all. Maybe there's something we can do to visually see which parameters might correliate... \n", "\n", - "## Multiple Plots" + "#### *Exercise*:\n", + "If you want a fun little challenge, try making an nxn matrix of scatter plots with regression lines comparing n different parameters.\n" ] }, { @@ -499,7 +525,7 @@ ], "metadata": { "kernelspec": { - "display_name": "venv", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -513,7 +539,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.10.12" } }, "nbformat": 4, From e52d2f7010284623ac80fad31a2d608793828d3c Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 21 Oct 2024 20:59:24 -0700 Subject: [PATCH 117/163] plotting stuff good enough for today --- D3-Pandas_Graphing.ipynb | 265 +++++++-------------------------------- 1 file changed, 46 insertions(+), 219 deletions(-) diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index 7609bc8..b227198 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -60,39 +60,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " gage height ft temperature C \\\n", - "datetime \n", - "2024-09-15 20:00:00 5.37 20.4 \n", - "2024-09-15 20:15:00 5.58 20.4 \n", - "2024-09-15 20:30:00 5.75 20.3 \n", - "2024-09-15 20:45:00 5.99 20.3 \n", - "2024-09-15 21:00:00 6.21 20.3 \n", - "\n", - " specific conductance uS/cm dissolved oxygen mg/L pH \\\n", - "datetime \n", - "2024-09-15 20:00:00 159.0 8.6 7.8 \n", - "2024-09-15 20:15:00 165.0 8.6 7.8 \n", - "2024-09-15 20:30:00 165.0 8.6 7.8 \n", - "2024-09-15 20:45:00 166.0 8.6 7.8 \n", - "2024-09-15 21:00:00 166.0 8.6 7.9 \n", - "\n", - " dom ug/L salinity ppt fchl mg/L nitrate mg/L \n", - "datetime \n", - "2024-09-15 20:00:00 14.7 0.1 NaN NaN \n", - "2024-09-15 20:15:00 16.6 0.1 NaN NaN \n", - "2024-09-15 20:30:00 16.5 0.1 NaN NaN \n", - "2024-09-15 20:45:00 16.7 0.1 NaN NaN \n", - "2024-09-15 21:00:00 16.7 0.1 NaN NaN \n" - ] - } - ], + "outputs": [], "source": [ "cols = {'datetime': 'datetime',\n", " '288768_00065': 'gage height ft',\n", @@ -122,30 +92,9 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAG5CAYAAACDeNt6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebxlWVEniseZ75BTDVlUFRZWicygYot8EGnhKSIPfTZPfa2N/RyRdmi6sfEn/LrtpyIUtlgovBZwaCgVB1REmkGbQkGgLJmKAgqKmuesKcc7nnG/P/ZZa8WKFRFr7XvWzsybd8fnw4fMrHP23uecvdeKiO8QraIoCmiiiSaaaKKJJppoookmmjhLo32mL6CJJppoookmmmiiiSaaaEKLpmhpookmmmiiiSaaaKKJJs7qaIqWJppoookmmmiiiSaaaOKsjqZoaaKJJppoookmmmiiiSbO6miKliaaaKKJJppoookmmmjirI6maGmiiSaaaKKJJppoookmzupoipYmmmiiiSaaaKKJJppo4qyOpmhpookmmmiiiSaaaKKJJs7q6J7uE85mM7j//vth//790Gq1Tvfpm2iiiSaaaKKJJppooomzJIqigLW1Nbj00kuh3ZbxlNNetNx///1w2WWXne7TNtFEE0000UQTTTTRRBNnadxzzz3wVV/1VeJ/P+1Fy/79+wGgvLADBw6c7tM30UQTTTTRRBNNNNFEE2dJnDp1Ci677DJbI0hx2osWQwk7cOBAU7Q00UQTTTTRRBNNNNFEE1HZSCPEb6KJJppoookmmmiiiSbO6miKliaaaKKJJppoookmmmjirI6maGmiiSaaaKKJJppoookmzuo47ZqWJppoookmmmiiiSZ2R0ynUxiPx2f6MprYxdHpdKDb7S486qQpWppoookmmmiiiSaaCGJ9fR3uvfdeKIriTF9KE7s8VlZW4JJLLoF+v7/jYzRFSxNNNNFEE0000UQTXkynU7j33nthZWUFDh8+3AwEb2JHURQFjEYjePjhh+GOO+6Axz3uceoASS2aoqWJJppoookmmmiiCS/G4zEURQGHDx+G5eXlM305TeziWF5ehl6vB3fddReMRiNYWlra0XEaIX4TTTTRRBNNNNFEE2w0CEsTOWKn6Ip3jAzX0UQTTTTRRBNNNNFEE000UVs0RUsTTTTRRBNNNNFEE03UHL/8y78M3/AN37DQMT7ykY9Aq9WCEydOnNbzmtjc3ITv+77vgwMHDlS+jkWjUtEynU7hl37pl+CKK66A5eVleOxjHwuvec1rGleJJppoookmmmiiiSaaqDm+5Vu+BY4cOQIHDx7MetznPve58B//43+Mvu7qq6+Gj33sY3DttdfCkSNH4Pjx49BqteBzn/tc1uvhopIQ/9d//dfhLW95C1x99dXwlKc8BT796U/Dj/3Yj8HBgwfh5S9/eV3X2EQTTZzFURQFvPQPPwPb4ym8/ceeAb1OA+A20UQTTTTRRB3R7/fh4osvPmPnv+222+BJT3oSPPWpTwUAgDvvvPO0nbtSdnHttdfC937v98KLXvQiuPzyy+H7v//74Tu/8zvhk5/8ZF3X10QTTZzlcfexTbjmyw/Cx299BK67/eiZvpwmmmiiiSb2cKytrcFLXvISWF1dhUsuuQTe+MY3BijCH/3RH8E3fdM3wf79++Hiiy+Gf/Nv/g089NBD3nHe+973wuMe9zhYWlqC5z3veXD11VcHdKiPf/zj8JznPAeWl5fhsssug5e//OWwsbERvcY/+qM/gssvvxwOHjwIP/iDPwhra2v2v81mM7jyyistq+nrv/7r4S//8i/tf+foYb/3e78Hl112GaysrMCLX/xiuOqqq+DQoUPJ5/3RH/1R+OhHPwq//du/Da1WC1qtFluMPPe5z4Xf/M3fhH/8x3+EVqsFz33uc+GKK64AAICnP/3p9t/qikpFy7d8y7fAhz/8Ybj55psBAOCGG26Aj3/84/DCF75QfM9wOIRTp055/2uiiSbOnbjt4XX757uPbZ7BK2miiSaaaKKuKIoCNkeTM/K/KjKEn//5n4dPfOIT8N73vhc+9KEPwcc+9jH47Gc/671mPB7Da17zGrjhhhvgPe95D9x5553woz/6o/a/33HHHfD93//98K/+1b+CG264AV72spfBf/7P/9k7xm233Qbf9V3fBd/3fd8Hn//85+HP//zP4eMf/zj83M/9nHp9t912G7znPe+B973vffC+970PPvrRj8LrX/96+9+vvPJK+MM//EN461vfCjfeeCO84hWvgB/+4R+Gj370o+zxPvGJT8C/+3f/Dv7Df/gP8LnPfQ6e//znw2tf+9pK5/3t3/5teNazngUvfelL4ciRI3DkyBG47LLLgmO8+93vhpe+9KXw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vfceFi9ejDVr1lh9C4x/TJsvWrQI69atQ0tLCxobGzFjxgysWrUKt9xyCzo6OrB06VKsWbMGl19+OWpra60IbpBcddVVmD17NhYsWICVK1di165dfK0WAbfdP/nkE8RiMRx11FGYN28eX6dEuO3+8ccfW9fqLbfcUtLXapiR92LRaBQAUFZWhoaGBgDABx98gFGjRqG9vR3/7//9P7S1teHKK6/EFVdcEdSSewUltwcmc4dCzksvvSTmzZsnDMMQkydPFn/729+EEEKkUqmcr3/sscfE6NGjxaOPPlrMZfY6NmzYID7zmc+IAw88UNxwww1izpw5Ytq0aeKGG25wvM707q+99loxYcIE8dBDD1n/jSMrPSOf7a+//nohRMauTz31lHjuuedEOp22voMPPvhATJo0Sfz0pz8NcvmhJJ/Nf/aznwkhhOjo6BCnn366GDt2rGhoaBBjx44VzzzzjBBCiAkTJojf//73ga09kUiIxYsXi3HjxonbbrtNfOELXxCTJk0SJ510kuN1fK3qJZ/dTzzxRCGEfZ0+++yzfJ1qJJ/dTzjhBCFEaV+rYUZlL2beR1588UXH3y5dulRMmzZN7Nmzp2jr7S2U6h6YnZY8XH/99eKUU04Rt912mzjxxBPF4sWLRSKREELkftB2dHSImpoaceeddwoh8n+xTH527twpLrjgAvHVr35VtLS0WL8/++yzxQUXXOBITZrfQTqdFlOnThVf+cpXxObNm8XatWvFTTfdVPS1hx0v23d1dQkhhHUNmJjfw+DBg8WVV15ZvAX3Arxs3t7eLoQQoq2tTWzatEn885//tF7T1dUl9tlnH3HLLbcUfd0mmzdvFhMmTBDr1q2zfvfII4+IqqoqR5mMeS/ka1UPhexuBhjcpUh8ne49hexult21t7eLN998s+Su1TDjdy8m//4LX/iCmDNnjmhvb+cAiU9KdQ/M5WF5WLhwIb75zW/i3HPPxfHHH49NmzbhjjvuyPv6VCqF2bNn44knngDASiE9ZdiwYfja176G2tpaJBIJAEBTUxNeeuklR2rSMAykUikYhoErr7wS69atw1FHHYUzzzyTy056SCHbV1RUAMik42UMw8C6deswbNgwLFy4sOhrDjuFbF5VVQUAqK6uxn777YdDDz3U+rs//OEPGDNmDBYsWBDIuoFME+ybb76JqVOnWr877rjjsHTpUlxzzTXYsmULgMy9kK9VfRSy+7XXXostW7ZY5TMmfJ3uPYXs/sMf/hBbtmxBVVUVxo8fX3LXapjxuxcDMuf7xo0bsW3bNpx77rmoqqrisn2flOoemHfWeRgyZAiOPPJIAMAZZ5yBkSNH4k9/+hM++ugjGIaRpbleU1ODjz76CK2trejq6gpiyaFnn332wZVXXomDDjoIgL1B3rlzJw4//PCs10ejUbz//vv4+9//jo8//hjHHnssPvroI1x00UVFXXdvwK/tX331VTz33HO47LLL8OUvfxnz589ntRaf+LX5zp078be//Q2XXHIJLr74YpxyyilobGwMbOOfSqUwdepU/PGPf3T8fsmSJWhsbMSNN95ovY6vVX2o2l0IwdepRgrZfcCAAZbd0+l0yV2rYcbPXuzNN9/Ek08+iUsvvRRHH3009t9/f3zhC18IaumhplT3wH3WaVG9eaTTaYwYMQKnnXYadu3ahVWrVgFwepHJZBJAZsDRd77zHcRiMf0L7iUUsrsQAmVlZdZrzMjI22+/jWnTpuX8+xtvvBFr167Fhg0bcOutt6KxsZFo5eFHp+2ffvppLFmyBBs2bMADDzyAH/3oR1lZGEavzffs2YO1a9fihRdewCOPPILvfe97iEQiZBFEr3vkyJEjsf/++2PDhg3WILd0Oo36+nr813/9F+655x50dnZaUX++VtXQYfeOjg4YhsHXqQ90ne+RSKTo12qY0bkXe/XVV3H99dfjlVdewaOPPorf/va3VsaacRLaPTBJ0VmJs2vXLtHc3Gz9W669c9fsm/9ub28XF154oZgzZ454+eWXhRBCvPDCC0KI7PphJjd+7G7a9N133xV1dXXilVdesf7btm3brJ/lXgAmP7psv3XrViGEEM3NzdZ1wORGl80//PBD62927txJuWSLnTt3io8++shaV761/+EPfxBTpkwRP/7xjx1/v3LlSnHggQeK999/3/odX6ve6LL7u+++K4QQorW1la9TBXSf7+l0umjXaphRtbv871x7seeee04Iken/e+edd4qx9FCjy+5B7IH7XKbloosuwsEHH4yTTz4ZixcvxrZt2xweoxn5vO2226x/p9NpVFVV4eyzz0ZZWRl+9KMfWcO7tm3bllU/zGTj1+6mTR966CGMHTsWkydPxtatW3H22WfjlFNOwe7duwEAtbW1xf8wIUOn7U899VTs2rULdXV1mDJlSiCfJwzotPmCBQssGeF99tmHfO1LlizB5MmTcfzxx2PevHl4++23s9aeSqVwxx134POf/zwOO+wwrFmzBvfff7/1mo8//hj9+/fH8OHDrd/xtVoYnXZvamoCkCnZ4Ou0MBTnu2EYRblWw4yK3VX3Yocccgg+/PBDVFdXY9999w3qI4UCnXYPYg/cZ5yW1tZWnHzyyXjxxRdx6623YvHixdi8eTNOOukkvPbaa9brVq5ciSFDhuDuu+/Gjh07ANhpsEmTJmH79u24++67UVVVhXfffRdDhw4N5POEhZ7YfefOndbv33rrLcyZMwfLli3Dfvvth48//hhr1qyxtNmZ/FDZnst68hN2m3/rW9/CP//5T9x111345je/ia6uLpx++ul48sknHWsfNmwYbr/9diQSCVxyySWYOHEiTjvtNHz961/HRRddhB//+Mc4++yzEY1GuY5fAbZ7MLDdg0HV7n72YsOGDQvks4QJCrsXfQ9ctJxOwDz55JNi4sSJ4qWXXrJ+t3XrVlFeXi6++tWvio8++kjce++9Yvjw4WLVqlVZ6a5//vOforGxUUyYMEE89dRTxV5+aNkbu7e1tYnRo0cLwzDE+PHjxSOPPBLERwgtbPviE1abp9Np0dbWJg4++GBx1VVXWb9vb28X06ZNE4sWLRLvv/++WLNmjRg2bJhYtWpVVhnBz372M3HBBReIefPmWZr+TGHY7sHAdg+Gntid92J7T2+ye59xWu677z5RU1Pj+N1LL70kBg8eLMaMGSPuvvtuIUT+uuvW1laxevVq8nX2NvbG7p988olYvHixuOOOO4qy1t4G2774hNnm//nPf8SQIUOsORTmbJ67775bTJo0Sfz2t78VQmTuhTI8/2DvYLsHA9s9GHpqdxPei/WM3mL3XlketmzZMlx22WVYsWIF4vE4AGD48OEYPnw4vv/971uvW7lyJRYuXIjq6mqsXbsWQKYG2I0QAjU1NTjnnHOKsv6wotPuQgg0Njbi9ttv57kCCrDti0+YbX7fffehubnZ8f7Dhw/HmDFjcNdddwGwSwLOOussjBs3Dg8++CB27NiRtXZWRFKH7R4MbPdg0Gl38+95L+ZNr7Z7QM4SCW+88YaYOHGimDx5sjj77LNFQ0ODOPLII8WLL74oUqmUuPHGG4VhGOKwww4T9fX1Yty4caK5uVmsXr1aNDQ0BL380MJ2Dw62ffEJs80ff/xxsf/++wvDMMSKFSus35vR41WrVony8nKxadMmIURmyrEQmcnflZWV4j//+Y/j9YwabPdgYLsHA9s9GPqC3XuV03L99deLWbNmWbWn27ZtE1OnThVnnXWW2Lx5sxBCiPXr14ubb75Z3H///dbf3XzzzWL69Oni448/DmTdYYftHhxs++ITVpu//vrr4uyzzxZLliwRF1xwgRg5cqQlp2yyefNmMXv2bHHMMcc4fr9p0ybRr18/rt3vAWz3YGC7BwPbPRj6it17jdOSSCTEl7/8ZbFgwQKHl3j33XeLmTNniu9+97s5/y6ZTIqFCxeKL33pS8Vaaq+C7R4cbPviE2abb9++Xdxyyy3i9ddfF83NzWL48OHim9/8puM16XRaPPjggyIWi4mf/OQnYseOHUKIzByKGTNmOObOMGqw3YOB7R4MbPdg6Ct27zVOixBCLFq0SBx//PEimUw6lA+WLFkijjnmGLFx40brd5s2bRJvv/22uPDCC8XIkSPF3//+dyFEaafFShW2e3Cw7YtPmG0uDxG79dZbRSwWcyidmfzud78TgwcPFgcccIA488wzRSwWE9ddd51Ip9N8vvQAtnswsN2Dge0eDH3B7r3CaTE3Do8//riIRCLixRdfFELYkzzXr18vxo0bZyn3CCHEr3/9azF+/Hgxc+ZMx/RpRh22e3Cw7YtPb7G5/FCaOXOmOOWUU7LkXIUQ4umnnxa//OUvxaWXXprzwcf4g+0eDGz3YGC7B0Nvt3tonJb33ntPfPDBB0IIkaUfbX4hHR0dYs6cOWLu3LlCCOeXN3bsWHHNNddY//7kk0/Ec889R73s0MN2Dw62ffEJs81V1m5irvkf//iHiEQilgxmMpm0SgYYNdjuwcB2Dwa2ezCw3TOEwmlZu3atMAxDnHrqqY7fy19cMpkU27dvF+vXrxfl5eXiN7/5jZUq27Vrl5gyZYr41a9+VdR1hx22e3Cw7YtPmG2usvZEIiG2b9+e9beLFi0S06dPF4899piYN2+e+N73vifi8Tj5mnsDbPdgYLsHA9s9GNjuNqGY0/Lss89i5syZ2LJlC+69914AQCqVQjQaBQD88pe/RHV1NR5++GHMmTMHP/jBD/CDH/wAF154IZ588klce+21aGlpwbHHHhvkxwgdbPfgYNsXnzDbXGXttbW1eOihhyCEcPztkiVLsHHjRhx33HEAgMsvvxzl5eXF/QAhhe0eDGz3YGC7BwPbXSJQl8kDM4K5ZMkScdFFF4mvfOUr4ogjjrC8xE8//VQsWrRIDBs2TNx2222OMo1f/vKX4ogjjhCTJ08WU6dOFRs2bAjkM4QRtntwsO2LT5ht7mftt99+u2PtyWRS3HbbbaK8vFzMnDnTISDAFIbtHgxs92BguwcD2z2bknZahMjU5s2bN0/861//Evfff7+YOHGiuPHGG4UQmS/sueeec8i0yeoJqVTKmpvA+IPtHhxs++ITZpv7XbtJW1ub+MUvfuEYQsaow3YPBrZ7MLDdg4Ht7qQs6EyPyT333IP+/ftj0qRJGDp0KAA7/RWNRhGPx3HooYfi9NNPx6pVq7BhwwZMnjwZl19+OSoqKqzjRCIRx89jxowp+mcJE2z34GDbF58w21zX2k2qq6txySWXkK877LDdg4HtHgxs92BguysStNd0++23i0GDBolDDjlEDBw4UBx++OFizZo11n/ftWuXGDJkiOjq6hJCCHHZZZeJyspKUVVVJZ5//vmAVh1+2O7BwbYvPmG2eZjXHmbY7sHAdg8GtnswsN39EVgjfjKZxI033ohly5bhRz/6EZ588kmsXbsWY8eOxcqVK9HV1QUA6OjowJw5c3DfffdhypQpWL16NebOnYtRo0ZZDUepVCqojxE62O7BwbYvPmG2eZjXHmbY7sHAdg8GtnswsN17SFDe0qeffiquvPJKsXz5ckd9+PLly8Xhhx8uWlpahBBCbNmyRRiGIcrLy8WSJUvE7t27xWuvvSbmz58vZs+eHdTyQwvbPTjY9sUnzDYP89rDDNs9GNjuwcB2Dwa2e88oak/LW2+9hXHjxsEwDPTr1w9nnnkmJk+ejEgkgnQ6jUgkgqamJrS1tVk1ek1NTfjDH/6AMWPG4JBDDgEA9O/fH6eeeipaWlosT9MwjGJ+lFDBdg8Otn3xCbPNw7z2MMN2Dwa2ezCw3YOB7a6BYnhGf/zjH8Xo0aPF/vvvLw455BBxyy23OP677GUuXLhQnHfeeUIIkXMAjinp5p4IymTDdg8Otn3xCbPNw7z2MMN2Dwa2ezCw3YOB7a4PcqflkUceEaNHjxY333yzePjhh8Xll18uysvLxcqVK0VHR4cQIvMlpNNp0dHRIaZMmSJWr16ddZy++gX1FLZ7cLDti0+YbR7mtYcZtnswsN2Dge0eDGx3vZA5LaY3ePXVV4vp06c7PMavf/3rYsaMGeK+++5z/M3WrVvF6NGjxaZNm4QQQmzatElcdtllVEvslbDdg4NtX3zCbPMwrz3MsN2Dge0eDGz3YGC700CmHmbW173++usYO3YsysvLkUgkAADXXXcdKisr8ec//xnbt2+3/uaxxx5DU1MThg4diksuuQQTJ07E+++/j0QiYdXtMYVhuwcH2774hNnmYV57mGG7BwPbPRjY7sHAdidCl/fzyCOPiIsuukjccMMNYsOGDdbvV65cKerq6qzUlultrly5UowfP148/vjjQoiMV3rWWWeJhoYGMWDAADFp0iTx3HPP6Vper4XtHhxs++ITZpuHee1hhu0eDGz3YGC7BwPbvTjstdPy4Ycfis9+9rNi0KBBYtGiRWLy5MmiX79+1pf25ptviuHDh4ulS5cKIYQ1IEcIIYYMGSJuuOEGIYQQbW1t4rOf/awYMWKEuOuuu/Z2Wb0etntwsO2LT5htHua1hxm2ezCw3YOB7R4MbPfisldOS1tbm/jiF78ozj77bLF582br94cccoilftDc3Cyuu+46UVVVJbZs2SKEsGv95syZI84//3zr7/ridM+ewHYPDrZ98QmzzcO89jDDdg8GtnswsN2Dge1efPaqp6W6uhqxWAznnXcexowZg2QyCQA48cQT8X//938QQqCurg4LFy7EQQcdhM997nN4//33YRgGtmzZgh07duDUU0+1jjd9+vS9KnXrK7Ddg4NtX3zCbPMwrz3MsN2Dge0eDGz3YGC7Fx9DiL3r7kkkEigvLwcAazjOokWLUFNTg5UrV1qv27p1K4466igkk0nMmDEDzzzzDCZMmIA777wTgwcP3rtP0QdhuwcH2774hNnmYV57mGG7BwPbPRjY7sHAdi8ue+205GL27Nn46le/ii9+8YtIp9MAgEgkgrfffhsvvPACNmzYgKlTp+KLX/yi7rfu07Ddg4NtX3zCbPMwrz3MsN2Dge0eDGz3YGC706Hdadm8eTMOO+wwPPDAA1aqKx6Po6KiQufbMC7Y7sHBti8+YbZ5mNceZtjuwcB2Dwa2ezCw3WnRNqfF9H2eeuop1NbWWl/W1VdfjUsuuQQ7duzQ9VaMBNs9ONj2xSfMNg/z2sMM2z0Y2O7BwHYPBrZ7cSjTdSBzkM6zzz6LM844A48++iguuOACtLe3Y/Xq1Rg0aJCut2Ik2O7BwbYvPmG2eZjXHmbY7sHAdg8GtnswsN2LhE4pso6ODjFu3DhhGIaIxWJi+fLlOg/P5IHtHhxs++ITZpuHee1hhu0eDGz3YGC7BwPbnR7tPS3HHXcc9ttvP/z85z9HZWWlzkMzBWC7BwfbvviE2eZhXnuYYbsHA9s9GNjuwcB2p0W705JKpRCNRnUeklGA7R4cbPviE2abh3ntYYbtHgxs92BguwcD250WEsljhmEYhmEYhmEYXWhTD2MYhmEYhmEYhqGAnRaGYRiGYRiGYUoadloYhmEYhmEYhilp2GlhGIZhGIZhGKakYaeFYRiGYRiGYZiShp0WhmEYhmEYhmFKGnZaGIZhmCyOOuooXHrppX3uvRmGYZjShJ0WhmEYZq9Yv349DMPAp59+quXv7rvvPlx77bX6FsgwDMOEnrKgF8AwDMMwMo2NjUEvgWEYhikxONPCMAzTx2lra8O5556L2tpaDB06FNdff73jv69evRozZsxAXV0dhgwZgoULF2LHjh0AgPfeew9HH300AKChoQGGYeC8884DAKTTaSxbtgxjxoxBVVUVpk6dinvuucfz79zlYaNHj8Z1111nrXHUqFFYt24ddu7ciQULFqC2thZTpkzB888/71j3U089hSOOOAJVVVVoamrCxRdfjLa2Nt3mYxiGYYoAOy0MwzB9nG9/+9t44okn8Oc//xmPPPII1q9fj40bN1r/PZFI4Nprr8XLL7+MtWvX4r333rMcjKamJtx7770AgDfffBPbtm3DjTfeCABYtmwZbr/9dvz2t7/Fa6+9hssuuwznnHMOnnjiiYJ/l4sbbrgBhx9+OF588UWcdNJJWLx4Mc4991ycc8452LhxI8aOHYtzzz0XQggAwDvvvIP58+fjjDPOwCuvvII//vGPeOqpp/CNb3yDwoQMwzAMMYYw7/AMwzBMn6O1tRUDBgzA//7v/+Kss84CAOzatQsjRozABRdcgF/84hdZf/P888/j4IMPRktLC2pra7F+/XocffTR2L17N/r37w8A6OrqQmNjIx577DHMmjXL+tvzzz8f7e3tuPPOO3P+HZDJtHzmM5+x3nv06NE44ogjsHr1agDA9u3bMXToUCxduhTXXHMNAOBf//oXZs2ahW3btmHIkCE4//zzEY1GsWLFCuu4Tz31FObMmYO2tjZUVlZqtCLDMAxDDfe0MAzD9GHeeecdxONxzJw50/pdY2Mj9t9/f+vfL7zwAq666iq8/PLL2L17N9LpNABgy5YtmDhxYs7jvv3222hvb8dxxx3n+H08Hse0adN8r3PKlCnWz4MHDwYATJ48Oet3O3bswJAhQ/Dyyy/jlVdewR133GG9RgiBdDqNd999FwcccIDvNTAMwzDBwU4LwzAMk5e2tjbMmzcP8+bNwx133IGBAwdiy5YtmDdvHuLxeN6/a21tBQA88MADGD58uOO/xWIx3+soLy+3fjYMI+/vTIeqtbUVF154IS6++OKsY40cOdL3+zMMwzDBwk4LwzBMH2bs2LEoLy/Hhg0brM387t27sWnTJsyZMwdvvPEGPvnkEyxfvhxNTU0AkNXwXlFRAQBIpVLW7yZOnIhYLIYtW7Zgzpw5Od8719/p4qCDDsLrr7+OcePGaT82wzAMU3y4EZ9hGKYPU1tbi6985Sv49re/jb///e949dVXcd555yESyTweRo4ciYqKCtx0003YvHkz1q1blzVDZdSoUTAMA/fffz927tyJ1tZW1NXV4Vvf+hYuu+wy3HbbbXjnnXewceNG3HTTTbjtttvy/p0uvvOd7+CZZ57BN77xDbz00kt466238Oc//5kb8RmGYUIKOy0MwzB9nJ/+9Kc44ogjcPLJJ2Pu3LmYPXs2pk+fDgAYOHAg/ud//gd/+tOfMHHiRCxfvhw/+9nPHH8/fPhwXH311fjud7+LwYMHW47Btddei6VLl2LZsmU44IADMH/+fDzwwAMYM2ZMwb/TwZQpU/DEE09g06ZNOOKIIzBt2jR8//vfx7Bhw7S9B8MwDFM8WD2MYRiGYRiGYZiShjMtDMMwDMMwDMOUNOy0MAzDMAzDMAxT0rDTwjAMwzAMwzBMScNOC8MwDMMwDMMwJQ07LQzDMAzDMAzDlDTstDAMwzAMwzAMU9Kw08IwDMMwDMMwTEnDTgvDMAzDMAzDMCUNOy0MwzAMwzAMw5Q07LQwDMMwDMMwDFPSsNPCMAzDMAzDMExJw04LwzAMwzAMwzAlzf8H0/fYCoIkkBcAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "tol.plot(y='gage height ft', kind='line')" ] @@ -170,30 +119,9 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# tol.plot(kind='scatter', y='specific conductance uS/cm', x='salinity ppt')\n", "tol.plot.scatter(y='specific conductance uS/cm', x='salinity ppt')" @@ -226,37 +154,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "slope: 2160.6322894868645 intercept: -19.685058556168173\n" - ] - }, - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABz2klEQVR4nO3dd3xTVf8H8E+6W7qggzIKFChlyCggUJAlCAr4iKgID7IEfEAQEBH0JyJDBVRQZIoyRAQERFRQhkyBsssUKtCWFqF7Dzrv74/atLdtbnKT3CZpPu/Xqy/NOTcn5za0+fasr0oQBAFEREREVszG1B0gIiIiMjUGRERERGT1GBARERGR1WNARERERFaPARERERFZPQZEREREZPUYEBEREZHVszN1ByxBUVERHjx4ADc3N6hUKlN3h4iIiHQgCAIyMjJQt25d2NhIjwExINLBgwcP4O/vb+puEBERkR5iYmJQv359yWsYEOnAzc0NQPE31N3d3cS9ISIiIl2kp6fD399f/TkuhQGRDkqmydzd3RkQERERWRhdlrtwUTURERFZPQZEREREZPUYEBEREZHVY0BEREREVo8BEREREVk9BkRERERk9RgQERERkdVjQERERERWjwERERERWT0GRERERGT1GBARERGR1WNARERERFaPARERERGZVmYmkJdn0i4wICIiIiLTEASgZ0/AzQ1wdDRpV+xM+upERERknR48AOrVM3Uv1DhCRERERFVr3TpxMOTmBuTnm64/YEBEREREVaWoCGjQAPjf/0rLPv0USE8H7Ew7acUpMyIiIlLezZtAy5bisrt3gcaNTdOfcjhCRERERMqaN08cDLVpUzxaZCbBEMARIiIiIlJKbi7g5CQu27IFGDHCNP2RwICIiIiIjC80FOjaVVwWFwf4+pqmP1pwyoyIiIiMa/x4cTD07LPFZw6ZaTAEcISIiIiIjCU9HfDwEJcdOAD062ea/sjAESIiIiIy3N69FYOhjAyLCIYABkRERERkqL59i6fFSkyeXDxF5upquj7JxCkzIiIi0s/Dh0DduuKy8+eBjh1N0x8DcISIiIiI5NuwQRwMOTkVZ6y3wGAIYEBERERUrUQkZOJoeDwiE7OUeYGiIqBpU2DcuNKyRYuAnBzA3l6Z16wCnDIjIiKqBlKz8zB122WcuJ2gLusR6IMVw4Ph4WKkQOXv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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Scatter plot\n", "tol.plot(kind='scatter', y='specific conductance uS/cm', x='salinity ppt')\n", @@ -296,31 +196,9 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "temperature C Axes(0.125,0.11;0.775x0.77)\n", - "dtype: object" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "tol['dayofyear'] = tol.index.dayofyear\n", "\n", @@ -350,35 +228,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Just for fun, we can sort of graph the data used to generate a simplified boxplot using " + "Just for fun, we can sort of graph the data used to generate a simplified boxplot using a bunch of plots:" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0UAAAHACAYAAABtZcP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD6iElEQVR4nOzdd3zT1frA8U/SpnuXtmmhCyiUvfcQASnIEIooiCCKG1AEvI7fFUS9cl33ugeogKOiMhyA7C2FQtmrtNDSAg0d0D3SJt/fH5Fqr6y2GR3P+/XKizT55pwno/T75JzzHJWiKApCCCGEEEII0UCpbR2AEEIIIYQQQtiSJEVCCCGEEEKIBk2SIiGEEEIIIUSDJkmREEIIIYQQokGTpEgIIYQQQgjRoElSJIQQQgghhGjQJCkSQgghhBBCNGiSFAkhhBBCCCEaNHtbB2AuRqORixcv4u7ujkqlsnU4QgghhBBCCBtRFIX8/HyCgoJQq28+DlRvkqKLFy8SHBxs6zCEEEIIIYQQtURaWhpNmjS56XH1Jilyd3cHTE/cw8PDxtEIIYQQQgghbCUvL4/g4OCKHOFm6k1SdHXKnIeHhyRFQgghhBBCiFteViOFFoQQQgghhBANmiRFQgghhBBCiAZNkiIhhBBCCCFEg1Zv1hQJIYQQQoiGTVEUysvLMRgMtg5FWJidnR329vZm24pHkiIhhBBCCFHn6fV60tPTKSoqsnUowkpcXFwIDAzEwcGhxm1JUiSEEEIIIeo0o9FIcnIydnZ2BAUF4eDgYLYRBFH7KIqCXq8nMzOT5ORkIiIibmmD1huRpEgIIYQQQtRper0eo9FIcHAwLi4utg5HWIGzszMajYZz586h1+txcnKqUXtSaEEIIYQQQtQLNR0tEHWLOd9v+eQIIYQQQgghGjRJioQQQgghhBANWpWSogULFtCtWzfc3d3x9/dn9OjRJCQkVDpm4cKFDBgwAA8PD1QqFTk5OTdt9+WXX0alUlW6REZGVumJCCGEEEIIIWqHAQMGMHPmTFuHccuqlBRt376dadOmsWfPHjZu3EhZWRlDhgyhsLCw4piioiKGDh3Kiy++WKVA2rRpQ3p6esVl165dVXq8EEIIIURDoivUEZceh65QZ+tQRAOxbdu2Wx70qGuqVH1u3bp1lX5esmQJ/v7+xMfH079/f4CKjHDbtm1VC8TeHq1WW6XHCCGEEEI0RCsTVzI/dj5GxYhapWZer3lER0TbOixRR6hUKpKTkwkLC7N1KLVGjdYU5ebmAuDj41PjQBITEwkKCqJp06ZMnDiR1NTUGx5fWlpKXl5epYsQQgghRH2nK9RVJEQARsXI/Nj5MmL0PxRFoUhfbvWLoihVinPdunX07dsXLy8vfH19GTFiBGfOnAGgd+/ePPfcc5WOz8zMRKPRsGPHDgDS09MZPnw4zs7OhIeHExMTQ1hYGO+++261Xrdz584xcuRIvL29cXV1pU2bNqxdu5aUlBRuv/12ALy9vVGpVEyZMgWAwsJCJk+ejJubG4GBgbzzzjt/a7e0tJQ5c+bQuHFjXF1d6dGjR8UgSl5eHs7Ozvz222+VHrNq1Src3d2tsiFvtfcpMhqNzJw5kz59+tC2bdsaBdGjRw+WLFlCy5YtSU9PZ/78+fTr149jx47h7u5+zccsWLCA+fPn16hfIYQQQoi6JjUvtSIhusqoGEnLT0PrKrNuriouM9B67nqr93vilShcHG79FLuwsJBZs2bRvn17CgoKmDt3LmPGjOHQoUNMnDiRN998k3//+98Vm9F+//33BAUF0a9fPwAmT55MVlYW27ZtQ6PRMGvWLDIyMqod/7Rp09Dr9ezYsQNXV1dOnDiBm5sbwcHBrFixgrFjx5KQkICHhwfOzs4APPvss2zfvp2ff/4Zf39/XnzxRQ4cOEDHjh0r2p0+fTonTpxg2bJlBAUFsWrVKoYOHcrRo0eJiIhgxIgRxMTEMGzYsIrHfPvtt4wePdoqe09VOymaNm0ax44dM8van78++fbt29OjRw9CQ0P54YcfmDp16jUf88ILLzBr1qyKn/Py8ggODq5xLEIIIYQQtVmIRwhqlbpSYqRWqQl2l/Ogumjs2LGVfv7yyy/x8/PjxIkT3HPPPcycOZNdu3ZVJEExMTFMmDABlUrFqVOn2LRpE/v27aNr164AfP7550RERFQ7ntTUVMaOHUu7du0AaNq0acV9V2eH+fv74+XlBUBBQQFffPEF33zzDYMGDQJg6dKlNGnSpFKbixcvJjU1laCgIADmzJnDunXrWLx4Ma+//joTJ05k0qRJFBUV4eLiQl5eHmvWrGHVqlXVfi5VUa2kaPr06axevZodO3ZUesLm4uXlRYsWLUhKSrruMY6Ojjg6Opq9byGEEEKI2kzrqmVer3l/W1Mko0SVOWvsOPFKlE36rYrExETmzp3L3r17ycrKwmg0Jbupqam0bduWIUOG8O2339KvXz+Sk5OJjY3ls88+AyAhIQF7e3s6d+5c0V7z5s3x9vau1MewYcPYuXNnpdvatGlTMfoUGhrK8ePHAXjqqad44okn2LBhA4MHD2bs2LG0b9/+uvGfOXMGvV5Pjx49Km7z8fGhZcuWFT8fPXoUg8FAixYtKj22tLQUX19fAO688040Gg2//PIL48ePZ8WKFXh4eDB48OBbeyFrqEpJkaIozJgxg1WrVrFt2zbCw8MtElRBQQFnzpxh0qRJFmlfCCGEEKIui46IpndQb9Ly0wh2D5aE6BpUKlWVprHZysiRIwkNDWXRokUEBQVhNBpp27Yter0egIkTJ/LUU0/xwQcfEBMTQ7t27SpGcW7V559/TnFxccXPERERrF27lsaNGwOg0Wgq7nv44YeJiopizZo1bNiwgQULFvDOO+8wY8aMaj/HgoIC7OzsiI+Px86uctLo5uYGgIODA3fffTcxMTGMHz+emJgY7r33XuztrfMeVqnQwrRp0/jmm2+IiYnB3d0dnU6HTqer9CLrdDoOHTpUMcpz9OhRDh06xOXLlyuOGTRoEB9++GHFz3PmzGH79u2kpKSwe/duxowZg52dHRMmTKjp8xNCCCGEqJe0rlq6abtJQlSHZWdnk5CQwD//+U8GDRpEq1atuHLlSqVj7rrrLkpKSli3bh0xMTFMnDix4r6WLVtSXl7OwYMHK25LSkr6WxuNGzemefPmFRcwjQ5d/Tk0NLTS8cHBwTz++OOsXLmS2bNns2jRIsCUuAAYDIaKY5s1a4ZGo2Hv3r0Vt125coXTp09X/NypUycMBgMZGRmV4mjevHml6tMTJ05k3bp1HD9+nC1btlR6rpZWpdTrk08+AUybMf3V4sWLK6pPfPrpp5UKIFwt1f3XY86cOUNWVlbFMefPn2fChAlkZ2fj5+dH37592bNnD35+flV9PkIIIYQQQtQJ3t7e+Pr6snDhQgIDA0lNTeX555+vdIyrqyujR4/mpZde4uTJk5UGDSIjIxk8eDCPPvoon3zyCRqNhtmzZ+Ps7FwxNa6qZs6cybBhw2jRogVXrlxh69attGrVCjAlUiqVitWrV3PnnXfi7OyMm5sbU6dO5dlnn8XX1xd/f3/+7//+D7X6z7GXFi1aMHHiRCZPnsw777xDp06dyMzMZPPmzbRv357hw4cDprxBq9UyceJEwsPDK03JszilnsjNzVUAJTc319ahCCGEEEIIKyouLlZOnDihFBcX2zqUKtu4caPSqlUrxdHRUWnfvr2ybds2BVBWrVpVcczatWsVQOnfv//fHn/x4kVl2LBhiqOjoxIaGqrExMQo/v7+yqeffnrdPgElOTn5mvdNnz5dadasmeLo6Kj4+fkpkyZNUrKysiruf+WVVxStVquoVCrlgQceUBRFUfLz85X7779fcXFxUQICApQ333xTue2225Snn3664nF6vV6ZO3euEhYWpmg0GiUwMFAZM2aMcuTIkUr9/+Mf/1AAZe7cuTd97W70vlc1N1ApShWLqddSeXl5eHp6kpubi4eHh63DEUIIIYQQVlJSUkJycjLh4eE4OTnZOhybOn/+PMHBwWzatKmiGlx9daP3vaq5Qe1ffSaEEEIIIYS4pi1btlBQUEC7du1IT0/nH//4B2FhYRVLWMStkaRICCGEEEKIOqqsrIwXX3yRs2fP4u7uTu/evfn2228rVZQTNydJkRBCCCGEEHVUVFQUUVHW34+pvqlSSW4hhBBCCCGEqG8kKRJCCCGEsABdoY649Dh0hTpbhyKEuAmZPieEEEIIYWYrE1cyP3Y+RsWIWqVmXq95REdE2zosIcR1yEiREEIIIYQZ6Qp1FQkRgFExMj92vowYCVGLSVIkhBBCCGFGqXmpFQnRVUbFSFp+mo0iEkLcjCRFQgghhBBmFOIRglpV+RRLrVIT7B5so4iEsL4BAwYwc+ZMW4dxyyQpEkIIIYQwI62rlnm95lUkRlfXFGldtTaOTIia2bZtGyqVipycHFuHYnZSaEEIIYQQwsyiI6LpHdSbtPw0gt2DJSEStYpKpSI5OZmwsDBbh1JryEiREEIIIYQFaF21dNN2k4RI3NC6devo27cvXl5e+Pr6MmLECM6cOQNA7969ee655yodn5mZiUajYceOHQCkp6czfPhwnJ2dCQ8PJyYmhrCwMN59991qxXPu3DlGjhyJt7c3rq6utGnThrVr15KSksLtt98OgLe3NyqViilTpgBQWFjI5MmTcXNzIzAwkHfeeedv7ZaWljJnzhwaN26Mq6srPXr0YNu2bQDk5eXh7OzMb7/9Vukxq1atwt3dnaKiomo9l6qQpEgIIYQQQtQ/igL6QutfFKVKYRYWFjJr1iz279/P5s2bUavVjBkzBqPRyMSJE1m2bBnKX9r8/vvvCQoKol+/fgBMnjyZixcvsm3bNlasWMHChQvJyMio9ss2bdo0SktL2bFjB0ePHuWNN97Azc2N4OBgVqxYAUBCQgLp6em89957ADz77LNs376dn3/+mQ0bNrBt2zYOHDhQqd3p06cTGxvLsmXLOHLkCOPGjWPo0KEkJibi4eHBiBEjiImJqfSYb7/9ltGjR+Pi4lLt53OrZPqcEEIIIYSof8qK4PUg6/f74kVwcL3lw8eOHVvp5y+//BI/Pz9OnDjBPffcw8yZM9m1a1dFEhQTE8OECRNQqVScOnWKTZs2sW/fPrp27QrA559/TkRERLXDT01NZezYsbRr1w6Apk2bVtzn4+MDgL+/P15eXgAUFBTwxRdf8M033zBo0CAAli5dSpMmTSq1uXjxYlJTUwkKMr0nc+bMYd26dSxevJjXX3+diRMnMmnSJIqKinBxcSEvL481a9awatWqaj+XqpCRIiGEEEIIIWwkMTGRCRMm0LRpUzw8PCrW+aSmpuLn58eQIUP49ttvAUhOTiY2NpaJEycCphEbe3t7OnfuXNFe8+bN8fb2rtTHsGHDcHNzq7gAtGnTpuLnNm3aVBz71FNP8dprr9GnTx/mzZvHkSNHbhj/mTNn0Ov19OjRo+I2Hx8fWrZsWfHz0aNHMRgMtGjRolIc27dvr5gqeOedd6LRaPjll18AWLFiBR4eHgwePLhKr2d1yUiREEIIIYSofzQuplEbW/RbBSNHjiQ0NJRFixYRFBSE0Wikbdu26PV6ACZOnMhTTz3FBx98QExMDO3atasYxblVn3/+OcXFxRU/R0REsHbtWho3bmwKWaOpuO/hhx8mKiqKNWvWsGHDBhYsWMA777zDjBkzqtTnXxUUFGBnZ0d8fDx2dnaV7ruapDk4OHD33XcTExPD+PHjiYmJ4d5778Xe3jrpiiRFQgghhBCi/lGpqjSNzRays7NJSEhg0aJFFdPjdu3aVemYu+66i0cffZR169YRExPD5MmTK+5r2bIl5eXlHDx4kC5dugCQlJTElStXKrVxNfn5q9DQ0OtWnwsODubxxx/n8ccf54UXXmDRokXMmDEDBwcHAAwGQ8WxzZo1Q6PRsHfvXkJCQgC4cuUKp0+f5rbbbgOgU6dOGAwGMjIyKp7ntUycOJE77riD48ePs2XLFl577bXrHmtukhQJIYQQQghhA97e3vj6+rJw4UICAwNJTU3l+eefr3SMq6sro0eP5qWXXuLkyZNMmDCh4r7IyEgGDx7Mo48+yieffIJGo2H27Nk4OzujUqmqFdPMmTMZNmwYLVq04MqVK2zdupVWrVoBpkRKpVKxevVq7rzzTpydnXFzc2Pq1Kk8++yz+Pr64u/vz//93/+hVv+5SqdFixZMnDiRyZMn884779CpUycyMzPZvHkz7du3Z/jw4QD0798frVbLxIkTCQ8PrzQlz9JkTZEQQgghGixdoY649Dh0hTpbh1KryOtiHWq1mmXLlhEfH0/btm155plneOutt/523MSJEzl8+DD9+vWrGI256quvviIgIID+/fszZswYHnnkEdzd3XFycqpWTAaDgWnTptGqVSuGDh1KixYt+PjjjwHTiNP8+fN5/vnnCQgIYPr06QC89dZb9OvXj5EjRzJ48GD69u1bMXJ11eLFi5k8eTKzZ8+mZcuWjB49mn379lV6PiqVigkTJnD48OGKdVPWolKUKtYNrKXy8vLw9PQkNzcXDw8PW4cjhBBCiFpuZeJK5sfOx6gYUavUzOs1j+iIaFuHZXN18XUpKSkhOTmZ8PDwaicD9cX58+cJDg5m06ZNFdXg6qsbve9VzQ1kpEgIIYQQDY6uUFdx4g9gVIzMj53f4EdG5HWpe7Zs2cIvv/xCcnIyu3fvZvz48YSFhdG/f39bh1anSFIkhBBCiAYnNS+14sT/KqNiJC0/zUYRVc35K0VM+mIv02IOUG4w3vwBt6iuvy4NUVlZGS+++CJt2rRhzJgx+Pn5sW3btkoV5cTNSaEFIYQQQjQ4IR4hqFXqSgmAWqUm2D3YhlHdmvhzl3ns63iyCkwlm3uG+zCpV5hZ2q7Lr0tDFRUVRVRUlK3DqPNkpEgIIYQQDY7WVcu8XvNQq0ynQlfXzmhdtTaO7MZWxJ9nwsK9ZBXo8XE1lUd+e8NpLhfqzdJ+XX1dhKgpGSkSQgghRIMUHRFN76DepOWnEeweXKtP/A1GhTfXn+Kz7WcBGNI6gLfv6cC9n+3hZHoeb61PYEF01Tb0vJ669LoIYS4yUiSEEEKIBkvrqqWbtlutPvEvKC3nsa/3VyRE025vxqf3d8HDScMrd7UBYNm+VI6ezzVbn3XhdRHCnCQpEkIIIYSopdIuFzH2491sOpmBg72ad+/tyLNRkajVpo05u4X5MLpjEIoC8345htFYL3ZaEcLqJCkSQgghhKiF9qVc5q6PfifhUj5+7o58/2hPRndq/LfjXrizFa4OdhxIzWHVwQs2iFSIuk+SIiGEEEKIWuaH/Wnct2gPlwv1tAny4OdpfegU4n3NYwM8nJgxKAKABb+dIq+kzJqhClEvSFIkhBBCCFFLGIwKr60+wT+WH6HMoDCsrZYfH+9FkJfzDR/3UJ9wmjZyJauglPc3JVopWiHqD0mKhBBCCCFqgfySMh5euo/PdyUD8NTA5nx0X2dcHG5eLNjBXs28UaaiC0t2p5CUkW/RWIWobyQpEkIIIYSwsdTsIqI/3s3WhEwc7dV8MKETs4a0rCiocCtua+HHHa0DKDcqvPzLCRRFii4IcaskKRJCCCGEsKE9Z7O566NdJGYU4O/uyA+P9WJkh6BqtfXS8NY42KvZlZTFumM6M0faMOgKdcSlx6ErtM7rN2DAAGbMmMHMmTPx9vYmICCARYsWUVhYyIMPPoi7uzvNmzfnt99+A8BgMDB16lTCw8NxdnamZcuWvPfeexXtlZSU0KZNGx599NGK286cOYO7uztffvmlVZ5TXSRJkRBCCCGEjXwXl8r9n+/lSlEZ7Rp78sv0vnQI9qp2eyG+LjzevykAr605SbHeYKZIG4aViSuJWhHF1A1TiVoRxcrElVbpd+nSpTRq1Ii4uDhmzJjBE088wbhx4+jduzcHDhxgyJAhTJo0iaKiIoxGI02aNOHHH3/kxIkTzJ07lxdffJEffvgBACcnJ7799luWLl3Kzz//jMFg4P777+eOO+7goYcessrzqYtUSj0ZW83Ly8PT05Pc3Fw8PDxsHY4QQgghxHWVG4z8a+1JFv+eAsDw9oG8fXcHnB3satx2sd7A4P9s50JOMU8NimDWHS1q3GZtV1JSQnJyMuHh4Tg5OVWrDV2hjqgVURgVY8VtapWa9WPXW3QT2wEDBmAwGNi5cydgGgny9PQkOjqar776yhSbTkdgYCCxsbH07Nnzb21Mnz4dnU7H8uXLK2576623ePPNNxk/fjwrVqzg6NGj+Pr6Wux52MKN3veq5gYyUiSEEEIIYUV5JWU8tHR/RUL0zOAWfDihk1kSIgBnBzv+ObwVAJ9uP0NqdpFZ2q3vUvNSKyVEAEbFSFp+msX7bt++fcV1Ozs7fH19adeuXcVtAQEBAGRkZADw0Ucf0aVLF/z8/HBzc2PhwoWkpqZWanP27Nm0aNGCDz/8kC+//LLeJUTmJkmREEIIIYSVpGQVMuaj39lxOhMnjZqP7uvM04MjUKluvaDCrRjaVkuf5r7oy428uuaEWduur0I8QlCrKp8aq1Vqgt2DLd63RqOp9LNKpap029XPh9FoZNmyZcyZM4epU6eyYcMGDh06xIMPPoher6/URkZGBqdPn8bOzo7ERCnTfjOSFAkhhBBCWMHupCzu+uh3zmQWovVw4sfHejO8faBF+lKpVLw8sg32ahUbT1xi++lMi/RTn2hdtczrNa8iMVKr1MzrNc+iU+eq4/fff6d37948+eSTdOrUiebNm3PmzJm/HffQQw/Rrl07li5dynPPPcfJkydtEG3dcfPC90IIIYQQoka+2XOOl385TrlRoUMTTxZN7oq/R/XWvtyqiAB3Hugdxhe7kpn/y3HWzeyPg718H34j0RHR9A7qTVp+GsHuwbUuIQKIiIjgq6++Yv369YSHh/P111+zb98+wsPDK4756KOPiI2N5ciRIwQHB7NmzRomTpzInj17cHBwsGH0tZf8ZgghhBBCWEi5wci8n4/xz5+OUW5UGNUhiO8f62XxhOiqpwdH0MjNkbNZhSz+PdkqfdZ1Wlct3bTdamVCBPDYY48RHR3NvffeS48ePcjOzubJJ5+suP/UqVM8++yzfPzxxwQHm6b+ffzxx2RlZfHSSy/ZKuxaT6rPCSGEEEJYQG5xGdNjDrAzMQuAZ6Na8uSAZmZfP3Qzy+PPM+fHw7g62LFlzgACrJSQWZM5qs+JukeqzwkhhBBC1GKKojBz2UF2JmbhrLHj0/u7MO325lZPiACiOzWmU4gXhXoDC9bKuhIhrkWSIiGEEEIIM/tiVzJbEzJxsFez7NGeDG1ru6lYarWKV0a1RaWCnw5dZF/KZZvFIkRtJUmREEIIIYQZHT2fyxvrTgHw0vBWdAj2sm1AQLsmnozvFgLAvJ+PYzDWi9UTQpiNJEVCCCGEEGZSUFrOjO8OUGZQiGoTwP09Q20dUoVno1ri6azhRHoeMXGpN3+AEA2IJEVCCCGEEGYy9+djpGQXEeTpxBtj29tkDdH1+Lg6MHtICwDeXp/A5UL9TR4hRMMhSZEQQgghhBmsOnielQcuoFbBu+M74eVS+/aDua97CJFad3KLy3h7Q4KtwxGi1pCkSAghhBCihpKzCvnnqmMAPDUogu7hPjaO6Nrs7dTMH9UGgO/iUjl2IdfGEQlRO0hSJIQQQghRA/pyI099d5BCvYHu4T7MGBhh65BuqEdTX+7qGISiwLxfjlNPtqwUokYkKRJCCCGEqIE3153i6IVcvFw0vDe+I3bq2rOO6HpeGNYKFwc74s9dYdXBC7YORwibk6RICCGEEKKatiZk8PmuZADeHNueQE9nG0d0a7SeThUjWq+vPUV+SZmNIxK3atu2bahUKnJycmwdSr0iSZEQQgghRDVk5JUw54fDADzQK5QhbWy3QWt1PNQ3jPBGrmQVlPL+5kRbhyNuUe/evUlPT8fT09PWodQrkhQJIYQQQlSR0agw64fDZBfqidS688KdrWwdUpU52tsxd2RrABb/nkJSRr6NIxK3wsHBAa1WW6vKvdcHkhQJIYQQQlTRpzvOsCspC2eNHR/e1wknjZ2tQ6qW21v6M7hVAOVGhZd/OSFFF4AynY7CPXsp0+ms0t+AAQOYMWMGM2fOxNvbm4CAABYtWkRhYSEPPvgg7u7uNG/enN9++w34+/S5JUuW4OXlxfr162nVqhVubm4MHTqU9PR0q8RfX0hSJIQQQghRBQdSr/DOhtMAvDyqNc393W0cUc3MHdEaB3s1u5KyWH/cOolAbZWzfDlJAweROmUKSQMHkbN8uVX6Xbp0KY0aNSIuLo4ZM2bwxBNPMG7cOHr37s2BAwcYMmQIkyZNoqio6JqPLyoq4u233+brr79mx44dpKamMmfOHKvEXl9IUiSEEEIIcYvySsp46ruDGIwKI9oHck/XYFuHVGMhvi481r8pAK+uPkmx3mDjiGyjTKcjfe48MBpNNxiNpM+dZ5URow4dOvDPf/6TiIgIXnjhBZycnGjUqBGPPPIIERERzJ07l+zsbI4cOXLt2MvK+PTTT+natSudO3dm+vTpbN682eJx1yeSFAkhhBBC3AJFUXhx5VHOXymmibczr0e3qzfrOp4c0JwgTycu5BTz6fYztg7HJvQp5/5MiK4yGtGfS7V43+3bt6+4bmdnh6+vL+3atau4LSAgAICMjIxrPt7FxYVmzZpV/BwYGHjdY8W1SVIkhBBCCHELftifxuoj6dipVbw/oRMeThpbh2Q2zg52/HOEqejCp9vPkHb52tO06jOHsFBQ/8+psVqNQ2iIxfvWaCp/llQqVaXbribfxv9N2m7weFkfVjWSFAkhhBBC3ERSRj7zfjkOwOwhLegc4m3jiMxvWFstvZv5Ulpu5NXVJ2wdjtVptFoCX5n/Z2KkVhP4ynw02rpVal1Uj72tAxBCCCGEqM1KygxMjzlISZmRvs0b8Xj/Zjd/UB2kUql4eVQbhr23kw0nLrHjdCb9W/jZOiyr8rr7blz79kV/LhWH0BBJiBoQGSkSQgghhLiBBWtPckqXj6+rA/+5pwNqdf1YR3QtLQLceaBXGAAv/3ocffm1p2vVZxqtFtce3SUhamCqlBQtWLCAbt264e7ujr+/P6NHjyYhIaHSMQsXLmTAgAF4eHhUqqF+Mx999BFhYWE4OTnRo0cP4uLiqhKaEEIIIYTZbTiuY2nsOQDevqcD/h5ONo7I8mbeEUEjNwfOZhby+tqTsjbFwrZt28a7775b6baUlBRmzpxZ6TZFURg9ejQDBgxAURS8vLwAmDJlyt/Ot0ePHi3vWxVVKSnavn0706ZNY8+ePWzcuJGysjKGDBlCYWFhxTFFRUUMHTqUF1988Zbb/f7775k1axbz5s3jwIEDdOjQgaioKKmaIYQQQgh0hTri0uPQFVp3D5303GL+scJUAvnhvuHc3tLfqv3bioeThvmj2gKwZHcK//7tlNlPsG31ngpxPSqlBp/yzMxM/P392b59O/37969037Zt27j99tu5cuVKRSZ7PT169KBbt258+OGHgKmyRnBwMDNmzOD555+/pVjy8vLw9PQkNzcXDw+Paj0fIYQQQtQuKxNXMj92PkbFiFqlZl6veURHRFu8X4NRYcKiPcQlX6ZdY09WPNEbB/uGterg273n+L9VxwCYMbA5s4e0NEu7lnhPS0pKSE5OJjw8HCen+j+aJ0xu9L5XNTeo0W93bm4uAD4+PtVuQ6/XEx8fz+DBg/8MSq1m8ODBxMbGXvdxpaWl5OXlVboIIYQQov7QFeoqTp4BjIqR+bHzrTK68MGWROKSL+PqYMcHEzo1uIQIYGKPUF4eaSrT/cGWJN7fnFjjNm35ngpxI9X+DTcajcycOZM+ffrQtm3bageQlZWFwWCo2JTqqoCAAHQ32EF4wYIFeHp6VlyCg+v+jtJCCCGE+FNqXmrFyfNVRsVIWn6aRfuNS75ckQC8NqYtYY1cLdpfdRTl6Vn1zgF+/eAwBgsWQ5jSJ5z/u7MVAP/ZeJpPttVsY1dbvadC3Ey1k6Jp06Zx7Ngxli1bZs54btkLL7xAbm5uxSUtTX6ZhBBCiPokxCMEtaryqYpapSbY3XJfhOYU6Zm57CBGBaI7N2ZMpyYW66u69CXlrPnoMBcTc0g9ns2hTakW7e+R/k15Nso0de6Ndaf4fOfZardli/dUiFtRraRo+vTprF69mq1bt9KkSc3+s2jUqBF2dnZcunSp0u2XLl1Ce4NSiI6Ojnh4eFS6CCGEEKL+0LpqmddrXsVJ9NX1J1pXy5RKVhSFfyw/wsXcEsIbufLKXdWfCWMphnIj6xYeI+NcPnZ/TOk7vDmNcr3Bov1Ou705MwdHAPDampN8FZtSrXas/Z4KcauqtHmroijMmDGDVatWsW3bNsLDw2scgIODA126dGHz5s2MHj0aME3N27x5M9OnT69x+0IIIYSou6Ijoukd1Ju0/DSC3YMtevL8zZ5zbDhxCY2divfHd8LNsXbtca8YFTYvPUnaicvYO6i565lOpB7LplWfIOwd7Cze/9ODIigzGPlo6xnm/nwce7Wa+3qEVLkda76nQtyqKv22T5s2jZiYGH7++Wfc3d0r1vx4enri7OwMgE6nQ6fTkZSUBMDRo0dxd3cnJCSkoiDDoEGDGDNmTEXSM2vWLB544AG6du1K9+7deffddyksLOTBBx802xMVQgghRN2kddVa/MT5ZHoer645CcBzQyNp18TTov1VR2lROVlp+ajVKoY+1g5tuCfacOvFqVKpmDOkJWUGhYU7zvLiqqPY26m4p2vVp75Z4z0VoiqqlBR98sknAAwYMKDS7YsXL2bKlCkAfPrpp8yfP7/ivquluv96zJkzZ8jKyqo45t577yUzM5O5c+ei0+no2LEj69at+1vxBSGEEEIIcyvWG5jx3UH05UZub+nH1L41nwljCU5uGqLndEGXnEtoG9+/3X/h9BX8wzzQWHDUSKVS8cKwSPTlRpbsTuG5FUfQ2Klq5dorIaqiRvsU1SayT5EQQgghquOFlUf4Li4Nf3dHfnu6H75ujrYOqZKCKyW4ed94753flydyaFMaXe8Mo8eophaPSVEU/vnTMb7dm4paBe9P6MSI9kEW7/d6ZJ+ihqnW7FMkhBBCCFGXrTmSzndxaahU8N97O9a6hOjcsWy+fimWYzsu3PA4bTPTNLoDG86Rc6nI4nGpVCpevast93RtglGBp5cdYt0x2WtI1F2SFAkhhBCiQbpSqOeFlUcAeOK2ZvRp3sjGEVWmS85l3cKjGMsV0pNyuNHknqYd/Qhp44uxXGH7dwk3PNZc1GoVC6LbE92pMQajwozvDrD55KWbP1CIWkiSIiGEEEI0SB9sSSKvpJxWgR48c0cLW4dTyRVdIWs+PEK53khwax8GTm6FSqW67vEqlYr+4yOws1dz/tQVkuIzrBKnnVrFW+M6MLJDEGUGhSe+OcD205lW6bu+WLduHX379sXLywtfX19GjBjBmTOmTXJ79+7Nc889V+n4zMxMNBoNO3bsACA9PZ3hw4fj7OxMeHg4MTExhIWF8e6771r7qdRpkhQJIYQQosFJu1zE13tSAHjxzkg0drXnlKgwp5Rf3z9MSWEZ/qHuDH20bcWeRDfi6edC56GhAOz6MRF9cbmlQwVMidF/7unAsLZa9AYjj361n9+Tsm7+QCspKzVc91JeZrj1Y/U3P7Y6CgsLmTVrFvv372fz5s2o1WrGjBmD0Whk4sSJLFu2rNLI3/fff09QUBD9+vUDYPLkyVy8eJFt27axYsUKFi5cSEaGdZLi+qR2FeAXQgghhLCCt9YnUGZQ6BfRiH4RfrYOp0JpURm/fnCI/MslePo7M2J6Bxycbv10rXNUCAl7deRlFhO3Opm+4yIsGO2fNHZq3hvfibJv49l0MoOpS/ex5MHu9Gz69yp51rbw6e3XvS+0rS8jpneo+PnLZ3dSrjde89igCC/GzO5c8fNX/7ebkoKySsdM+3RgleMbO3ZspZ+//PJL/Pz8OHHiBPfccw8zZ85k165dFUlQTEwMEyZMQKVScerUKTZt2sS+ffvo2rUrAJ9//jkREdZ53+uT2vO1iBBCCCGEFRw5n8Mvhy+iUsHzwyJtHU4lp+MukX2hEBcPB0Y91RFnd4cqPd5eY0f/8S1w9XRA29S6ey052Kv5aGJnbmvhR0mZkYeW7GN/ymWrxlAXJSYmMmHCBJo2bYqHhwdhYWEApKam4ufnx5AhQ/j2228BSE5OJjY2lokTJwKQkJCAvb09nTv/maw1b94cb29vqz+Puk5GioQQQgjRYCiKwutrTZu0junUmDZBtWuT1ra3Naa8zEhwK288GjlXq43QNr7c/2ov7C24X9H1ONrb8dmkLjy8dD+7krKYsngf3zzcg47BXlaP5apH37vtuvep/md44KG3+l3/2P9Z0jX5X71rElaFkSNHEhoayqJFiwgKCsJoNNK2bVv0ej0AEydO5KmnnuKDDz4gJiaGdu3a0a5dO7P0Lf4kI0VCCCGEaDC2JWSy5+xlHOzVzB7S0tbhAKZEzWAwTdlSqVR0uiOERk3ca9TmXxMixWjdLSmdNHYsmtyVnk19KCgtZ9IXezl2IdeqMfyVxtHuuhd7jd2tH+tw82OrKjs7m4SEBP75z38yaNAgWrVqxZUrVyodc9ddd1FSUsK6deuIiYmpGCUCaNmyJeXl5Rw8eLDitqSkpL+1IW5OkiIhhBBCNAgGo8K/fzsFwIO9w2jsVb2RGHPbtyaF1R8cRl9i3sIIiqJwak86370a97e1L5bm7GDHFw90o2uoN/kl5dz/xV5OpudZNYa6wNvbG19fXxYuXEhSUhJbtmxh1qxZlY5xdXVl9OjRvPTSS5w8eZIJEyZU3BcZGcngwYN59NFHiYuL4+DBgzz66KM4OzvfsFqh+DtJioQQQgjRIKw4cJ6ES/l4Omt4ckBzW4cDwLEdF9i3Opnzp65w7mi2Wds2GhUObkjlSnohsT+fMWvbt8LV0Z7FD3ajY7AXOUVlTPx8L6cv5Vs9jtpMrVazbNky4uPjadu2Lc888wxvvfXW346bOHEihw8fpl+/foSEhFS676uvviIgIID+/fszZswYHnnkEdzd3XFycrLW06gXZE2REEIIIeq9Yr2B/2w4DcCMgc3xdNHYOCI4ezCTHd8lAND1zjAiugWYtX07OzW3TWjJqncOcGLXRVr1CrR68QV3Jw1LH+rOxM/3cOxCHvct2sv3j/WkmZ+bVeOozQYPHsyJEycq3fa/m+8OGzbsuhvyBgYGsnbt2oqfz58/T0ZGBs2b147Ev66QkSIhhBBC1Htf/p6MLq+EJt7OTOoVautwuJh4hQ1fHEdRoHXfILqPDLdIP0ERXkT21IIC279LwGi4drlpS/J01vDN1B60CvQgq6CU+xbtISWr0Opx1Fdbtmzhl19+ITk5md27dzN+/HjCwsLo37+/rUOrUyQpEkIIIUS9ll1QyifbTNPH5gxpiaO99auyVYrnQgFrPj6KodxIWPtG3DahhUXXf/SKbo6jiz1ZaQUc23HBYv3ciJeLA99M7U6LADcu5ZkSo7TLRTaJpb4pKyvjxRdfpE2bNowZMwY/Pz+2bduGRmP70dC6RJIiIYQQQtRrH2xJoqC0nDZBHozqEGTTWIxGhfWLjqEvLiewuSdRD7dBbWfZ0zEXDwd63tUUgL0/n6Uwt9Si/V2Pr5sj3z7ck2Z+rlzMLeGBxXGU22Dkqr6Jiori2LFjFBUVcenSJVatWkVoqO1HQ+saSYqEEEIIUW+dyy7k273nAHjxzlao1batyKVWqxjycBuCW3lz5xPtrbaXUOt+jfEPdUdfYjB7QYeq8HN3JOaRnni7aDibWcjmUxk2i0WIv5KkSAghhBD11lvrEygzKNzWwo8+zRvZOhwAGjVxZ9TTnXBytd70JrVaxe2TIome05nWfW07Whbg4cT47qYKal/HnrNpLEJcJUmREEIIIeqlQ2k5rD6SjkoFzw+LtFkcBoORDV8c52JSjs1iAFMyFtjcy6YxXDWxRwhqFexKyiIpo8Bs7V6vQpuon8z5fktSJIQQQoh6R1EUFqw9CUB0pya0CvSwWRxbvz5F4r5L/PbJUbNv0FpduZnFnDlgu6lrTbxdGBhpKkH+zZ6ajxZdLSpQVCTFGxqSq++3OYpKyD5FQgghhKh3tpzKYG/yZRzs1cwe0sJmccSuOkPCHh0qtYpBU1rh4GT7U6/sCwX8+O/9qFTgF+qOh6+zTeKY3CuUTScvsSL+PM9GtcTVsfqvjZ2dHV5eXmRkmBI9FxcXi1b0E7alKApFRUVkZGTg5eWFnV3N1+bZ/jdTCCGEEHWarlBHal4qIR4haF21tg6HcoORf/92CoCH+oQT5GWbk/5j289zcEMqALffH0lYu9qxpsknyJWAMA8uJuaw64dE7nyivU3i6Nu8EeGNXEnOKmTVwQvc37NmFdO0WtNn72piJOo/Ly+vive9piQpEkIIIUS1rUxcyfzY+RgVI2qVmnm95hEdEW3TmFYcOE9iRgFeLhqeGNDMJjFcSslj5w+JAPS4qymtegfaJI5rUalU9J/Qgh9e20fy4SxSjmbZJGFTq1VM6hnKK6tP8HXsOSb2CKnR6I5KpSIwMBB/f3/KysrMGKmojTQajVlGiK6SpEgIIYQQ1aIr1FUkRABGxcj82Pn0DuptsxGjIn05/9l4GoAZAyPwdLb+BpYlhWWsX3QMo0GhaUc/ugytfXvG+Aa50WFQMAc3prLz+9M0aelttfLgfzW2SxPeWp9AwqV89iZfpmdT3xq3aWdnZ9aTZdEwSKEFIYQQQlRLal5qRUJ0lVExkpafZqOI4MtdyVzKK6WJtzP39wyxSQxqOxUBYR54NHJi4OTIWru2pevwMNy8HcnLKiF+nW1KY3s6axjdqTEg5bmFbUlSJIQQQohqCfEIQa2qfCqhVqkJdg+2STzZBaV8uv0sAM9GtcTR3jajBQ5O9gx5uA1j/9EVRxfrj1TdKgcne/reEwHAgQ3nyLlkm8ptk3uZRtLWH9dxKa/EJjEIIUmREEIIIapF66plXq95FYnR1TVFtpo698GWJApKy2nX2JOR7a2/QWnBldKKfVNUKhUuHg5Wj6Gqmnb0+2OKXxhuPo42iaFVoAfdwrwpNyrE7E21SQxCyJoiIYQQQlRbdEQ0vYN6k5afRrB7sM0SopSswor9bl64MxK12rpT1orz9Sx/Yz8B4R4MnNwKR+e6cYqlUqkY+lhbm0/xm9wrjH0pV4iJS2Xa7c1xsJfv7YV1ySdOCCGEEDWiddXSTdvNpuW431qfQLlR4faWfvRuZt1KaopRYdPiExTmlHL5YiG1dAnRdf01ITIajJTrDVaPIaqNFj93RzLzS1l/XGf1/oWQpEgIIYQQddrB1CusOZqOSgXPDYu0ev/x686ReuIy9ho1Qx9tWys2aK2OjHN5/Pjv/ez5+azV+3awVzOhu6kwhhRcELYgSZEQQggh6ixFUViw1rRR692dmxCp9bBq/+cTrhD3qymJ6D+hJb6N3azavzkVF5SRlVbAka3nyTpfYPX+7+segp1aRVzKZU7p8qzev2jYJCkSQgghRJ216WQGcSmXcbRXM2tIC6v2XZhbyoYvjqMoENk7sFZt0FodoW18adbZD8WosD0mAcWoWLV/racTUW0CAPhKRouElUlSJIQQQog6qdxg5I11plGiqX3DCfR0tmr/m5eepDhPj0+QK/3HWzchs5S+4yKwd7RDdzaXU3vSrd7/5F5hAKw6cIHc4jKr9y8aLkmKhBBCCFEn/Rh/nqSMArxdNDw+oJnV++92ZxjeWheGPtoWjYNt9kQyNzdvJ7oPDwdg94ozlBRYNzHpEe5DiwA3issMrIg/b9W+RcMmSZEQQggh6pwifTn/2XgagBkDI/Bwsv4mqYHNvZgwtwfeWler921J7Qc1wSfIlZLCMtYtOmrVanQqlYpJf4wWfbPnHEYrT+ETDZckRUIIIYSocz7fmUxmfikhPi7c3zPUav3mXy4h++KfRQhUVt4PyRrs7NQMntIajaMddvbWHwEb06kxbo72nM0q5PczWVbvXzRMkhQJIYQQDYCuUEdcehy6wrq/B0xWQSmfbT8DwLNRLa220afBYGTD58dYvmA/yUfq98m6X4g70c924c4n2mFv5amBbo72jO3cGJCCC8J6JCkSQggh6rmViSuJWhHF1A1TiVoRxcrElbYOqUbe35xIod5AhyaeDG9nvYpve1adQXc2D7W9Gp/A+jVl7loaNXHD7o+EU1EUkuIzrFaR7uoUus0nL3H+SpFV+hQNmyRFQgghRD2mK9QxP3Y+RsUIgFExMj92fp0dMTqbWUDM3lQAnh/WCrWVpq+dPZTJoU1pAAya3ApPP+tWursmxXrrbX5fnsT6RcfYsew0ihX6be7vRp/mvhgV+PaP91sIS5KkSAghhKjHUvNSKxKiq4yKkbT8NBtFVDNvrU+g3KgwMNKfXs18rdJnbmYxm5eeBKDDoGCadvKzSr83VHQZPuoBn/YDveVHUvxD3UEFx3ZcYPfKM1ZJjCb1DAPg+31plJRZr9iDaJgkKRJCCCHqsRCPENSqyn/u1So1we7BNoqo+uLPXeG3YzrUKnhuaKRV+jSUGVm/6Bj64nICwj3oNcb6pb//RlHglxmQlQC6I7DjTYt32aK7ltsnml7zQxtT2bcmxeJ9Dm7lT5CnE5cL9aw9av09k0TDIkmREEIIUY9pXbXM6zWvIjFSq9TM6zUPravWxpFVjaIoLFhrGq0Z1yWYllp3q/R7bMcFMlPzcXS1J+qRthVrbGwqfjGcWg1Xk93dH8Cl4xbvtnXfIPqOiwBg3+pkDm6w7LQ2ezs19/UIAaTggrA8e1sHIIQQQgjLio6IpndQb9Ly0wh2D65zCRHAxhOX2H/uCk4aNc/c0cJq/bYb0JjiAj3app64+zhZrd/ryjgJ614wXb/jVUiNNSVIv86Eh9aD2rJJW4dBwZTpDez9+Sy7VyahcVTT9rYmFutvfPcQ3t+cxKG0HI6cz6F9Ey+L9SUatlrwdYcQQgghLE3rqqWbtludTIjKDUb+ve4UAFP7hqP1tF5yorZT0/OuZoS1a2S1Pq+rrASWT4XyEmg2CHo+CcPeAAc3OB8H8V9aJYyuw8LoPDQUlQo0jpYt193IzZE725k+szJaJCxJkiIhhBBC1Grf70/jbGYhPq4OPHab5df0lOsN7P8tBUOZ8eYHW9PGlyDjOLj6wZhPTaNCnk1g4Eum+zfNh3zrVBXseVdTxr3QjZY9LV8S/Wp57l8PX+RKod7i/YmGSZIiIYQQQtRahaXl/HdjIgBPDWyOh5PG4n3u/P40e38+y28Lj1q8r1t2ai3ELTRdH/0puPn/eV/3RyCoM5TmwW/PWSUclUqFX8if67oKc0tJO3XZIn11DvGiTZAHpeVGfthfN6smitpPkiIhhBBC1FpvrU8gq6CUUF8X7usRavH+Tu1J58Tv6aAyrZ+pFfIuws/TTNd7TYeIwZXvV9vByPdAZQcnfoLT660aXlGenlXvHGDNh0c4b4HESKVSMbmX6b3/es85DFbaQFY0LJIUCSGEEKJWWnngPEt2pwAwb2RrHCxc+S37YgHbYxIA6D4inOBIH4v2d0uMBlj5KBRfBm17GDT32scFtoeeT5iur5kN+kKrhejoao9PoCuGciNrPjlK+plcs/cxqkNjPJ01nL9SzLaEDLO3L4QkRUIIIYSodY5dyOWFlabpa08NbM7AyACL9qcvKWf9wmOU640Et/Kmy7Awi/Z3y35/F1J2gsYV7l4M9o7XP/b2F8EzBHLTYOvrVgvRzk5N1MNtCW7tQ3mpgdUfHCIzNd+sfTg72HFPV1OVOym4ICxBkiIhhBBC1CqXC/U89nU8peVGbm/px8zBli3BrSgK22MSuKIrwtXTgcEPtkGtVlm0z1uStg+2/Mt0/c43oVHzGx/v4ArD3zFd3/MJpB+2bHx/YadRM+zxdgQ290RfYuCX9w6RfbHArH3c39NU8W776UxSsqw3EiYaBkmKhBBCCFFrlBuMTI85wIWcYsJ8XXh3fCeLJyj5l0tIOZqNSq1iyMNtcfFwsGh/t6QkF1ZMBcUAbcdCx4m39rgWQ6D1aNPjfn3aNP3OSjQOdoyY1gH/UHdKCsv45d1D5GQUma39UF9XbmvhB8A3e64/WqQr1BGXHoeu0DqV+ET9IEmREEIIIWqNN9adYveZbFwc7Fg4uSuezpavNufh68w9L3Zj0ORIgiK8LN7fTSmKaV1QzjnwCoER/wVVFRLDYW+AoydcPAhxiywX5zU4ONsz8qmO+DZ2ReNkh52Z14FdLbjww/40ivV/T/hWJq4kakUUUzdMJWpFFCsTV5q1f1F/SVIkhBBCiFrh50MXWLQzGYB3xnWgRYD7TR5hPp5+zlbZc+eWHF4GR380VZMb+wU4eVbt8e5aGDzPdH3Lq5B73vwx3oCTq4ZRT3dizOzOuPuYd6Pd21r4E+LjQl5JOT8fulDpPl2hjvmx8zEqpv2ljIqR+bHzZcRI3BJJioQQQghhcycu5vHciiMAPDmgGcPaWT5BObk7nbQTltlbp9qyz5hGiQBufwGCu1evnS4PQpPuoC+w2t5Ff+Xi4YCr559FIVKOZlFcUPONV+3UKu7vGQKYCi4oyp/luVPzUisSoquMipG0fNnbSNycJEVCCCGEsKkrhXoe+2Y/JWVG+rfwY/aQlhbvszC3lB3fn+aX9w9ZbNPRKivXw/KHoKwQwvpB31nVb0utNu1dpLaHU6vh5GrzxVlFifsvsfbjI/z6/mFKi8tr3N49XYNxtFdzIj2PA6lXKm4P8QhBrap8aqtWqQl2ryX7TYlaTZIiIYQQQthMucHIU8sOkna5mBAfF94f3xE7K1R+2/PTGcpLDQSEe9CkhbfF+7slW16F9EPg7A1jPjNtyloTAa2h91Om62ufhZK8GodYHY2auOHkpiEzNZ/VHxymrLRmxR+8XBwY1SEIqFyeW+uqZV6veRWJkVqlZl6veWhdtTXqTzQMkhQJIYQQwmbe2pDAzsQsnDV2LJzcBS8Xy1d+yziXx6lY0zqTvuMiUNWG8ttJm2H3+6broz4Ez8bmafe2f4B3GORfhK3/Mk+bVeStdWXkUx1xdLFHdzaXtZ8cobysZonRA73DAFh7NJ3M/NKK26Mjolk/dj1fRn3J+rHriY6IrlE/ouGQpEgIIYQQNrH6yEU+234WgLfGtSdS62HxPhVFYdcPiQC06B6AtmkVixhYQkEmrHrcdL3rVGg1wnxta5xN1esA9n4GF+LN13YV+AW7M2J6BzSOdpw/dYX1C49hKDfe/IHX0baxJ51CvCgzKCyLS610n9ZVSzdtNxkhElUiSZEQQgghrO6ULo9nfzQVVnjstqaMaB9klX6T4jNIP5OLvYOaXmOaWaXPGzIa4acnoDAD/FpBlAVGc5oNhHb3AIpp7yJDzdf1VIe2qSfDp7XHTqMm5Wg2W746WaP2rpbnjolLpdxQ/QRLCJCkSAghhBBWllOk59Gv4ikuM9AvohH/iIq0Sr/lZQZiV54BoHNUKG7e5i0XXS17P4WkjWDvBHd/aRrZsYSo18HJC3RHYe8nlunjFjRu4c2wx9uhtlOhGJUaTaO7s10gvq4OpOeWsOnkJTNGKRoiSYqEEEIIYTUGo8LTyw6RermIJt7OvD++k1UKKwDY2avpPbY5QRFedLwjxCp93lD6Ydj0x35CQ14zFUawFDc/GPKq6frW1+HKuRsfb0GhbXyZ/HpvhjzcFntN9YtJONrbcW83U2W5pbtt93xE/SBJkRBCCCGs5j8bE9h+OhMnjZrPJnXB29XyhRWuUqlUNO/iz5jZndE41LCyW03pC2H5VDDooeVw6Paw5fvsNAlC+0BZEaydA3/Z48fa/rqHUU1M7BmKWgWxZ7NJvJRvljZFwyRJkRBCCCGs4rej6Xy01TR97Y2x7WkTZL0iBzWtdmZ2vz0H2YngHgR3fQgqK4yWqVQw4l1QayBxA5z4yfJ93kRuZjF7fz1baRPWqmjs5czgVgEAfL1HRotE9UlSJIQQQgiLO30pn9k/Hgbg4b7h3NXRTCWnb8GllDy+enE3x3ZcsFqfN3RsJRz8GlBB9Gfg4mO9vv1aQL8/NoX97TkozrFe3/+jXG/gxwX72L8mheTDWdVuZ3KvMABWHrhAQaltikiIuq9KSdGCBQvo1q0b7u7u+Pv7M3r0aBISEiodU1JSwrRp0/D19cXNzY2xY8dy6dKNF79NmTIFlUpV6TJ06NCqPxshhBBC1Dq5xWU89nU8RXoDvZv58vww6xRWgD9LcBfnl6E7m2u1fq/ryjn4dabper/ZEN7f+jH0nQW+zaHgEmyeb/3+/2DvYEfb/qbkOO7XsyjG6o0W9WnuS1M/VwpKy1l14Lw5QxQNSJWSou3btzNt2jT27NnDxo0bKSsrY8iQIRQWFlYc88wzz/Drr7/y448/sn37di5evEh09M03zho6dCjp6ekVl++++67qz0YIIYQQtYrRqPDM94dIziqksZczH0zohL2d9SaqJO3PQHfWVIK75102LsFtKIeVj0BpLjTpBgOer1FzZTodhXv2UqbTVe2BGifTNDqA/V9CWlyN4qiJjneE4OBsT/aFQpIOZFSrDZVKxaSepvLcS2PPVXsq3q3SFeqIS49DV1jF193GbVuj/brMvioHr1u3rtLPS5Yswd/fn/j4ePr3709ubi5ffPEFMTExDBw4EIDFixfTqlUr9uzZQ8+ePa/btqOjI1qtbLIlhBBC1CfvbjrNllMZONqbCiv4uplngf2tKNMb2L0yCYAuQ0Nx87Ze39e0401I2wuOHjD2c7DTVLupnOXLSZ87z7TPkVpN4Cvz8br77ltvILwfdJwIh7417V302I4axVNdTq4aOg4OJu7XZOJ+TaZZJz/U1Uiax3ZpwlvrE0jKKCD2bDa9mzWyQLSwMnEl82PnY1SMqFVq5vWaR3TEzb/8t3Xb1mi/rqvRVzW5uaZhaB8f01zY+Ph4ysrKGDx4cMUxkZGRhISEEBsbe8O2tm3bhr+/Py1btuSJJ54gOzv7hseXlpaSl5dX6SKEEEKI2mP9cR3vbzElJQui29G2sfUKKwAc2phKwZVS3Hwc6TjYxiW4U36HHW+Zro/4L3iHVbupMp3uz4QIwGgkfe68qo8YDXkNXHwh4wTsfr/a8dRUh4HBOLlqyLlUxOm46u035OGkYUwn01S8r2MtU3BBV6irSCoAjIqR+bHzzTLqYsm2rdF+fVDtpMhoNDJz5kz69OlD27ZtAdDpdDg4OODl5VXp2ICAAHQ3+EUdOnQoX331FZs3b+aNN95g+/btDBs2DIPh+pViFixYgKenZ8UlODi4uk9FCCGEEGaWlJHP7B9MhRUe7BNGdOcmVu2/4EopB9abTo57RzfH3pYluIsum6bNKUbT6Ey7KozoXIM+5dyfCdFVRiP6c6lVa8jFx7SpK8D2N+Hy2RrFVV0OzvZ0ijIlrfvWJGMoN97kEdd2teDChhOXSM8tNld4FVLzUiuSiquMipG0/LRa3bY12q8Pqp0UTZs2jWPHjrFs2bIaBzF+/HhGjRpFu3btGD16NKtXr2bfvn1s27btuo954YUXyM3NrbikpcmbKoQQQtQGeSVlPPp1PAWl5fQI9+HFO1tZPYbUE9mUlxkJbOZJ8y7+Vu+/gqLAr09B3gXwaQbD3qxxkw5hoaD+n1M4tRqH0GqMhrW/F8Jvg/ISWD3LZnsXtRvQBK8AF1r20GKsZsGFllp3uof7YDAqfLe3igniLQjxCEGtqvy6q1Vqgt1r/sW8Jdu2Rvv1QbWSounTp7N69Wq2bt1KkyZ/fvOj1WrR6/Xk5ORUOv7SpUtVWi/UtGlTGjVqRFJS0nWPcXR0xMPDo9JFCCGEELZlNCrM+v4wZzMLCfR04qOJndFYsbDCVa37BDHu+a7cdl9LVNbYA+h64hfDyV9NewPd/QU4utW4SY1WS+Ar8/9MjP5YU6Spztpslco0nc/OEc5uhaM/1ji+6tA42DFhXg+6j2xao411J/cyFVyIiUtDX80Rp+vRumqZ12teRXJxdV2O1rXma+It2bY12q8PqlRoQVEUZsyYwapVq9i2bRvh4eGV7u/SpQsajYbNmzczduxYABISEkhNTaVXr1633M/58+fJzs4mMDCwKuEJIYQQwsY+2JLEppOXcLBX8+n9XWhkxcIK/8s/1MZfmGacgnUvmq4PngdBnczWtNfdd+Paty/6c6k4hIZULyG6yrcZ3PYsbHkN1r0AzQdbd++kP6jVNU9eo9po8Xd3JCO/lNVHLpp92mZ0RDS9g3qTlp9GsHuwWZMKS7Ztjfbruip9dTNt2jS++eYbYmJicHd3R6fTodPpKC42zdv09PRk6tSpzJo1i61btxIfH8+DDz5Ir169KlWei4yMZNWqVQAUFBTw7LPPsmfPHlJSUti8eTN33XUXzZs3JyoqyoxPVQghhBCWtPnkJf676TQA/xrdlg7BXlaP4cLpK+RcKrJ6v39Tkgff3w/lxdBsIPScZvYuNFotrj261ywhuqr30+AXCUVZsHFuzdurJkVRSDtxmTUfHaas9Ppry69HY6fmgd5hALyz4TQlZVVv42a0rlq6abtZJKmwZNvWaL8uq1JS9Mknn5Cbm8uAAQMIDAysuHz//fcVx/z3v/9lxIgRjB07lv79+6PValm5cmWldhISEioq19nZ2XHkyBFGjRpFixYtmDp1Kl26dGHnzp04Otq4dKYQQgghbsnZzAJmLjsEmKYwjetq/bUKZaUGNi0+wXev7CXt1GWr919BUeCnJyA7EdyDYMzCv68Bqm3sHf7cu+jg16ZqeTZgNCpsizlFytFsjm6r3kasD/UJJ8jTiQs5xXy+0zbFI0Tdo1IsvcOVleTl5eHp6Ulubq6sLxJCCCGsqKC0nNEf/U5SRgHdwrz59uGeONhbPwmIW53MvtXJuPs4cd/LPWxXcW7nf2DzfLBzgAd/gyZdbRNHdfz6NMQvgUYt4PFdYG/9L6hP7Uln85KTOLlqmPRaLxycq7TaA4CfD13g6WWHcHGwY+ucAQR4OFkgUlGbVTU3qOVfWwghhBCiNtOXG5m57BBJGQUEeDjy0cTONkmI8i+XcPBqCe6xNizBnbQZtrxqun7nW3UrIQIY/DK4+kPWadj1rk1CaNFdi7fWhZLCMg5vqV514VEdgugU4kWR3sBb6xPMHKGojyQpEkIIIUS15JeU8dCSfabCCnZqPrm/C/7utvlGPnbVGVMJ7uaeNOvsZ5MYuHIOVkw17UfUeTJ0mWKbOGrC2RuGLjBd3/k2ZFo/oVCrVXQbYSrmdWhjKiWFZVVuQ6VSMW9kGwCWx5/n6Plcs8Yo6h9JioQQQghRZRn5Jdz72R52JWXh4mDHoge60jnE2yax6M7mkrjvEqig3z0tbFOCu6zYVFih+Iqpytywt6wfg7m0HWuqQGfQw7d3Q95Fq4fQvLM/vo3d0JcYOLSxensOdQz2IrpTYwBeWX2cerJiRFiIJEVCCCGEqJKzmQVEf7ybE+l5NHJzYNmjPbmthW1GZxSjws4fEgFo1SsQvxB3GwShmDY+1R0BF1+452vQ1OE1LCoVjP4EfJpCTip8PQaKrFu4QqVW0X2kabTo8NbzFOfrq9XOs0Nb4qyxY1/KFdYe1ZkzRFHPSFIkhBBCiFt2MPUKYz/ZzfkrxYT6urDiid60b+Jls3iMikJ4h0a4eDrQ466mtgli/xdwOAZUarh7MXhZv/Ke2bn5w+SfTdXzMk/BN2OhNN+qIYR3aEREtwAG3h+Jk6umWm0Eejrz+G3NAHh97UmLlOgW9YNUn7MAXaGO1LxUQjxCzF4H3pJtCyGEEDey5dQlpn17kOIyA+2bePLllG423Zz1rwxlRuw0NviuN3UvLBkOxjK441Xo81TFXWU6HfqUcziEhZpnLyFbyEyAxcOgKBvC+sHE5XVuFKxYb2DgO9tIzy3h2aiWTLu9ua1Dqpdq2zlqVXMDSYrMbGXiSubHzseoGFGr1MzrNY/oiOha37YQQghxIz/sS+OFVUcxGBX6t/Djk4mdcXWseqnkeiX/EnzWHwp00Ho0jFtimnoG5CxfTvrceWA0glpN4Cvz8br7bpuGW20XD8KSkaDPh5Z3wj1fgV31Rm5qwmhUUKurt17sryW6t80ZgH8DK9GtLzfy27F0ftifhqJAtzAfejT1oVOwN85mqNRYG89RJSmyYVKkK9QRtSIKo2KsuE2tUrN+7PoaZ8yWbFsIIYS4HkVR+HBLEu9sPA1AdOfGvDG2PRo7287Az79cwvpFx+h5V1OaRPpYPwBDGSwdBam7wS8SHt4Mjm6AaYQoaeAgU0J0lVpN8y2b6+6IUcou0xS68hJofy+M/tRqG9IqisLRbRc4uPEcY2Z1xqORc7XaiP5kNwdTcxjXpQlvjetggUhrn6yCUmL2pvLNnnNk5Jf+7X6NnYr2TbzoHu5D93AfuoZ64+5UtYS3tp6jVjU3aOBf8ZhXal5qpQ8EgFExkpafVuMPhSXbFkIIIa7FYFSY+/Mxvt1rqv715IBmPBvV0jbV3f5H7MokLiXnsW9NCo1bels/pg0vmRIiRw+495uKhAhAn3KuckIEYDSiP5dad5OisL4wbil8PxGOfA9OnjDszYqRMUtSqVQkH86k4HIp+9emMHByq2q18dKI1kR/vJvlB84zuVcY7Zp4WiDa2uHYhVyW7E7hl0MX0RtMn0V/d0fu7xmKj6sDccmX2ZuczaW8UuLPXSH+3BU+2XYGtQraBHlWJEndwnzwcXW4YV/15RxVkiIzCvEIQa1S/y1TDnav+YJLS7YthBBC/K+SMgNPfXeQDScuoVLByyPb8EDvMFuHBUD6mVwS92eACvqOi7B+QnTkB9j7ien6mE+hUUSlux3CQk2jKP8zUuQQGmLFIC2g5VDTCNHKRyBuITh5wcD/s0rXPUY15fypeE7t0dE5KhSvAJcqt9E5xJvRHYP46dBFXl19gu8f61krEnxzKTcY2XjiEot/TyEu5c9qgR2CvXioTxjD2gZWbKx8f89QFEUh9XIRe5MvE/fHJfVyEUcv5HL0Qi5f7EoGoEWAGz3CfSsSpYD/mXpYX85RJSkyI62rlknNZ7Pk9NuoVErFnEpzZMlaVy3zes3723zNupSBCyGEqBtyivQ8vHQ/+89dwcFezbv3duTOdoG2DgswleDe9YNpKl/r3jYowa07Cr/8UUyh/7MQOfxvh2i0WgJfmf+3NUV1dpTor9qPg9JcWDMbdrwJzl7Qa5rFu9U29SSsnS8pR7OJW53MkKltqtXOc8MiWXdcR1zKZX47pqs1n+uayCnSs2xfGl/HnuNCTjEA9moVd7YL5ME+YXS6zv5hKpWKUF9XQn1duaerKYFJzy2uSJD2Jl8mKaOA05dMl6/3nAMgzNfljwTJlx7hPjTxDqgX56iypsjMTqbnMXnpBi7rL9LIsTFfTxlCiwDz/YetK9SRlp9GsHtwnfuwCSGEqP0u5BTzwJdxJGUU4O5kz+eTu9Kjqa+tw6pwak86m5ecRONkx/2v9MLF48ZTe8yq6DIsHAA550ybm973A6ivv0i9TKdDfy4Vh9CQ+pEQ/dWOt2HLq6broz6EzpMs3mVmaj4/vL4PVDD+n93xbex28wddw7ubTvPupkSaeDuzadZtOGlqXmjAFhIv5bN4dworD5ynpMw0SuPj6sDEHiFM7BGK1rPmxSSyCkrZn3K5YjTpRHoe/5s5BHk60T3ch8gmClrfAnoERxDoZvtkUwot1IKS3OevFPHAl3GcySzEw8meL6Z0o1uYDRaBCiGEEFVwSpfHA1/GcSmvFK2HE0sf6k5LrQ02Q70OfUk5387bQ1Gunl5jmtE5KtR6nRuNEHMPJG0Er1B4dBu4NOC/7YoCG1+C3R+Y9mcatwRa32XxbtctPMqZA5k07eTHsMfaVauNv5bo/sfQljw5oO6U6DYaFbYmZLBkdwo7E7Mqbm8V6MGDfcIY1SHIoklebnEZB85dYe8fa5KOns+l3Fg5lXhqYHNmDWlpsRhulRRaqAWaeLuw/PHePPzVfuLPXWHi53t5f3xHhra1fdYshBBCXMues9k88tV+8kvKifB3Y+lD3QnyqnqVL0s6HXeJolw9Ho2c6DDQyusVtv/blBDZO5kKKzTkhAhMBRbueBVKcuHAV7DiYXB0h2YDLdpt9xFNOXMwk7OHMsnNLMbTr+qfUWcHO54bGsnM7w/x0ZYk7u7cpNaX6M4vKWN5/HmW7k4hJbsIALUKhrTWMqVPGD3CfayyPsrTWcPtkf7cHukPQJG+nIOpOX+MJGVzMDWHjiFeFo/DEmSkyIJKygxMjznIppOmRaqvjGrDpF5htg5LCCGEqGTNkXSe+f4QeoORbmHeLJrcFS8XK05Lu0WKopAUn4GDsz2hbaw4pS/hN/huvOn6mIXQ4V7r9V3bGQ2w/CE48RNoXGDyzxDc3aJdHtqUSuMW3jVaT2Y0mkp0H0rL4Z6uTXjz7tpZojslq5Alu1NYHn+egtJyADyc7BnfPYRJPUMJ9ql6wQlLKi03oEJVUdDBlmT6XC1KisBUCeSln4/zXZypnOm025sxZ0jtKGcqhBBCLPk9mfmrT6AoENUmgPfGd6qzaywsIvuMaR1RaR50fwzufNPWEdU+5XpT0nhms6lU95S1oG1r66hu6kDqFaI/3o1KBb9O70vbxrWjRLeiKOxKymLJ7ylsScioWMPT3N+NKb3DiO7cGBcHmex1M5IU1bKkCEwf7vc3J/HfTaZqOeO6NOH16HY23/hOCCFEw6UoCm+sS+DT7WcAmNQzlJdHtcFOXfu+tMu5VISzhwOOzlY+ESwtgM8HQ+ZJCOkFk38B+9o3glYr6Avh62hI2wOu/vDQOvBtZvFuC3NLcfV0rPbjn152kJ8PXaR7uA/fP2r7Et2/J2Xx8i/HScwoqLhtYKQ/D/YJo2/zRjaPry6pam4gZ+UWcEVXyNpPjlBSWAaYSh4+PTiCf0e3Q62CH+PP88hX+ynSl9s4UiGEEA1RmcHI7B8OVyREc4a04JW7amdCpBgVNnxxnG/nxnIx8YoVO1bgl+mmhMhNayokIAnR9Tm4wn3fQ0A7KMyAr0ZD3kWLdrlreSJfvbib86cu3/zg63huaCROGjVxyZdZd0xnxuiqbnn8eR74Mo7EjAJcHeyY0juMrXMG8OWUbvSL8JOEyMIkKTIzRVHY+OUJkg9nsWPZ6Ur3je8ewsJJXXHSqNmWkMmEhXvILii1UaRCCCEaooLSch5aso+VBy9gp1bx5t3tmT7QBhug3qIDG86RmZqPocyIV4Cr9TqO/QiOrwK1PdzzFbjXs5LaluDsBZNWgk8zyE01JUaF2RbrzliuYDQo7P0lmepOfArycuax/qYRrdd/O0lJmcGcId4SRVH4cEsic348TLlR4a6OQcS+OIiXR7UhvJEVP/MNnCRFZqZSqegzpBEqFSTuu8SZgxmV7h/cOoCYR3ri7aLh8Plcxn6ym9Q/qogIIYRouHSFOuLS49AVWu7b6sz8UiYs3MPOxCycNXZ8PrlrxaaNtY2iKOxbk8yen84C0H1UU+vtSZS8AzbONV0f+m8I6WGdfmuRMp2Owj17KdNV8fPo5g+TfwKPxpCVAN+OhZI8i8TYZVgodho1urO5pJ6o/mjRY7c1RevhRNrlYhb/nmK+AG9BucHI//10jLc3mL5If2JAM/57T0c8nDRWjUNIUmR2OcuXkzd5BCEp6wHY+uURivP1lY7pHOLN8id609jLmZTsIqI/2c2xC7m2CFcIIUQtsDJxJVEropi6YSpRK6JYmbjS7H2kZBUy9pPdHL2Qi4+rA9892rOirG5toygKu1eeIe7XZAB6jAqn/e1NrNN57nn48UFQDNBhAnR72Dr91iI5y5eTNHAQqVOmkDRwEDnLl1etAa8QmPQTuPjCxYOw7D4oKzZ7nK6ejrQbYPpc7P35bLVHi1wc7HlumGlfnY+2JpGRX2K2GG+kSF/O49/EE7M31VSl+K42PDc0EnUtnMbaEEhSZEZlOh3pc+eB0Uh4ylpcCy5QWqZm6+LDf/tFbebnxqone9Mq0IOsglLu/SyWnYmZNopcCCGEregKdcyPnY9RMe1Ib1SMzI+db9YRo9OX8k0zEy4XEezjzIonetMx2Mts7ZuT0aiwLSaBQxtNVVv7joug653h1pneV1YC30+CoizQtoMR/zXtx9OA/PVcBgCjkfS586o+YuTXAu5fAQ7ukLLTlGgaysweb+chIWgc7chMzSf5cNbNH3Add3VoTIdgLwpKy/nPhtM3f0ANZReUMmHRXjadzMDRXs2n93dhsmzbYlOSFJmRPuVcxX8iaqWc1qe+QmU0kHwin6T9GX873t/DiR8e60mf5r4U6g08uHgfqw6et3bYQgghbCg1L7UiIbrKqBhJy08zS/tGo8LzK46QXainTZAHK57oXavXKSgGhfysYlDB7ZMi6TDIitP7fvsHXDwAzt6mDVo1tWvzWmv467lMBaMR/bnUqjcW1MlUfMHeCU7/Bj9P+3vbNeTs7kD7gX+MFv1yFsVYvdEitVrF3BGtAfh+f5pFZ/CcyzaN2h5Oy8HLRUPMIz2IaiNr1mxNkiIzcggLBfWfL6l7wXnCUk3T6E7Fpl/zMe5OGhZP6c6oDkGUGxWe+f4wn20/U+0hYCGEEHVLiEcIalXlP8dqlZpgd/MkA6sOXuBAag4uDnZ88UA3/N2dzNKupdhp1Ax7vD0jZ3SgdZ8g63UcvxQOLAVUMPYL8A6zXt+1yP+eywCgVuMQGlK9BsP6mApVqO3hyPemxNPM5zgdB4fg4GxPXnYJl9MLq91Ol1BvRnUIQlHg1dUnLHIudigth+iPd5OS/eeobZdQH7P3I6pOkiIz0mi1BD55N6j++CVSq+n5UE9uu68lw6e1v+7jHOzVvHtvRx7uGw7Agt9O8crqExir+W2HEEKIukPrqmVer3kViZFapWZer3loXWv+zXF+SRkLfjsFwPSBzdF61s6EqKzUwPGdFypOQjWOdoS09rVeAOfjYe0c0/WB/4Tmg6zXdy2j0WoJfGX+n4mRWk3gK/PRaGvweWwRBWM+A1SwbxFs/ZdZYr3KyVXD0EfbMvm1Xvg2dqtRW88Ni8TRXs3e5MusP27eoiebT14yVR4u1NO2sWnUtplfzeIV5iObt5qbolD2Vm/0yUk43PEYmujXqvTwRTvO8q+1JwEY3j6Q/9zTAUd72VlcCCHqO12hjrT8NILdg82SEAG8vvYkC3ecJbyRK+tm9quVf09Ki8pY/eERdGdz6XFXU7oOC7NuAAWZsPA2yLsAkSPgnq//PlLSAJXpdOjPpeIQGlKzhOiv9n0Ba2aZrg/5F/Sebp52zew/GxJ4f0sSwT7ObJp1m1l+b76LS+X/Vh3FqED/Fn58PLEzbo5W3oy4gZHNW21NpUIz/B+4BujRnP66UhlKQ5mRvb+epeDK9auaPNK/Ke+N74jGTsWaI+k88GUceSXmX5gohBCidtG6aumm7Wa2hCgpo4Avd5mqt80d0bpWJkTF+Xp++u9BdGdzcXSxp0mkt3UDMBphxVRTQuTbHEZ/IgnRHzRaLa49upsvIQLoNhUG/VHqfMP/wYGvzdf2X1xMzMFQXv21S4/d1owAD0ezlOhWFIX/bEjghZWmhGhclyZ88UBXSYhqIfnNt4RWo6BRCyjJgf1fVNy87dtT7F+TwtavT91wnupdHRuz5MHuuDnas+fsZe75NBZdrnXKQwohhKj7FEVh/q/HKTcqDIr0r5WltwuulLDqnQNkpRXg7K5h9KzOaMM9rRvE4RhI3g4aV7j3W3Cy4UyThqLvLOj9lOn66pmgO2rW5jcuPs6qdw5wcve113LfCldHe54bGgnAh1uSyMwvrVY7ZQYj/1h+hPe3JAHw1KAI3ry7PRo7Of2ujeRdsQS1nemXHmD3h6A3bc7aKSoUO3s1qScuc/L3G/+y9mneiO8f64mfuyOndKZSqkkZ+ZaOXAghRD2w4cQldiZm4WCn5qU/KmrVJrmZxax8+wBXdEW4eTsSPacLjZpYeW1F8ZU/N2i9/QXwj7Ru/w2VSgV3vGKaqmgsh5+egHL9zR93iwLCTIn1/rUplJcZqt3O6I6N6dDE01Sie2NClR9fWFrOw0v382P8eezUKhZEt2PWHS2sU1peVIskRZbS7m7wCjXtdXBgKQA+ga70uKspALuWJ5KXfeONzNoEebLyid40beTKhZxi7v40lvhz1d+xWQghRP1XUmbg1dUnAHi4Xzhhtaz8dlmpgZ/+c4D87BI8/ZwZM6czXgEu1g9ky2tQlA1+kdDjcev335CpVKY9oJx9TCNFO98xW9Nt+gbh5u1IYU4phzdXv6y9Wq1i7kjTFwrL9qVx/OKtl+jOyC/h3oWxbD+dibPGjkWTuzChezWr9wmrkaTIUuw00PcZ0/Xf34dy09Brh0HBBDbzpKzEwJavTt20nn6wjwvL/9hkL6eojPsW7WXjiUuWjl4IIUQdtXDHWc5fKUbr4cS025vbOpy/0Tja0W1EOL6NXRkzpzMevjbYC+jiQdOif4A73zb9zRbW5eYPw982Xd/5NqQfNkuzdho1Pf/4AnrfmhRyMoqq3VaXUB9GVrFE95nMAqI/3s2xC3n4ujqw7NGeDIwMqHYM5mQoN3LuWDaXUvJufnADJEmRJXW8D9yDIP8iHIoBTN88DJzcCnuNmgsJVzi248JNm/FxdSDmkR4MivSntNzIY1/v5/OdZ2UvIyGEEJWcv1LEx9tM6xdeHN4K11q0mPuvXwK27hPEuBe64erpaP1AjEZYMwdQoN04CO9n/RiESZto0zpsYzn89KTZptG16KGlSaQ3hjIj27698Trum3luaEsc7dXsOXuZ9cdv/KV0/LnLjP1kN+evFBPm68LKJ3vTIdir2n2bS25mEbGrklj6wu+s/vAwZw9lVtxnNBgxGMy7oW5dJUmRJdk7Qp8/FhPu+g8YTFXkvAJc6BXdDIB9a1Mo1998zquLgz2fTerC+G7BGBV4bc1JZv94mJIazJcVQghRvyxYe4qSMiPdw30Y2T7Q1uFUSD2RzY//3k9R3p8nvXb2NjoFOfQNXNgPDu5wx6u2iUGYqFQw/D/g4guXjsGOt8zUrIoBEyOxd1BzISGnRkUXmni78Gh/08jT62tPUlp+7fOudcd03LdoLzlFZXQM9mLFE70J9bXd1FWDwUhSfAY/v3uQb17aw4H1qRTnl+HgbE+zTn4Vx6Uev8zif+xiy1cnOXcsu0ZV++o6SYosrfMD4NIIclLh6PKKm9vd1oROd4Rw9z+6YO9wa2VS7e3ULIhux7yRrbFTq1h54AL3fiaV6YQQQsDupCzWHE1HrYKXR7apNQu6zx7MZM3HR8hMzefA+nO2DaboMmycZ7p++wvgUXsSxwbLzQ+G/7GmaOc7cPGQWZr19HOmx6imeDRywt23ZpsWP35bM/zdHUm9XMSSa5To/io2hSe+jae03MjgVv5890hPfN1sMAr6B0OZkW/+Gcv6Rcc4f+oKqCCktQ9DH2vLQ2/3xT/0zyqL545nU1pYzsnd6az+8DBfPruLTUtOkHIkC0NZw0qQZPNWa9j1X9j0sqlM95N7TNXpauj3pCymxRwgp6gMP3dHPr2/C11Ca76/g65QR2peKiEeIWbbK8Na6nLsQghRE2UGI8Pf38npSwVM7hXKK3e1tXVIACTs1bF56UkUo0KzTn7cMbWN7UaIAH6dCfGLwb81PLYD7DSmTUpTzuEQFmrePXlE1fzwAJz4yfTePLrNNNumhowGI4ZyBY1jzc+7lsefZ86Ph3FztGfrnAH4uTtiNCq8uT6BT7efAeC+HiG8MqoN9lYuuW0wGNGdyaVxiz/PA9ctPEp6Ui6tegfSum8QHo2uvXbPaDByMSmXMwcyOHsws9JorsbJjonze9pmmqsZVDU3kKTIGkry4N12pn2Lxi2BNmP+dsj5U5dx83aqUgWe1OwiHvlqPwmX8nGwU/PamLbc0zW42mGuTFzJ/Nj5GBUjapWaeb3mER0RXe32rKkuxy6EEDX15a5kXll9Am8XDVvnDMDLxcHWIXFs+3m2f3cagMheWm6/PxK1LfdnuRAPiwYBCkxZC2F9yFm+nPS580zrjNRqAl+Zj9fdd9suxoasMAs+6mGq2ttvDgx6yexdGI0KanX1RlCNRoXRH//OkfO5TOgewvxRbfjH8sP8dOgiAM9GteTJAc2sOkKbl1XMiV0XObk7naI8PRPn96w4jyzK0+Poao9dFX7njEYF3RlTgnTmYCYOzvbcN69Hxf2Ht6Th5uVISFtfNLc4y8mWJCmqjUkRwNYFsP3fENAWHt9lmkf7h2M7LrA9JoGAcA+in+1SpV/YwtJyZv9wmHXHdQBM6R3G/w1vVeWNwXSFOqJWRGFU/hwqVavUrB+7vtaPutTl2IUQoqayCkq5/e1t5JeU868xbZnYI9TWIXFgwzliV5q+PW93exP6jYtAVc2TUbMwGuDzQaaqc+3vheiFlOl0JA0cZEqIrlKrab5ls4wY2cqJn+GHyaCyg4c3QePOZmlWMSoc23GBI1vPc/dzXXB0qV61wf0pl7n701jUKmjfxItDaTnYq1W8MbY9Y7s0MUusN2MwGDl3JJvjuy6QeuIy/HEW7+yuYeDkVoS1a2SWfhSjQmGuHjdv0yhRmd7Al8/uorzUgL2DmtC2vjTr7E9oW18cnGpPQZe/qmpuIGuKrKXHY+DgZlpIeHpdpbtMHyg7LiXncWhjapWadXW05+OJnZl1RwsAluxOYfIXcVwurFoFl9S81EpJBYBRMZKWX/0a/9ZSl2MXQoiaemtdAvkl5bRt7MH4brbfC0VfUs7xPyqrdhkWSr97bJwQARz4ypQQOXpUFFfQp5yrnBABGI3oz1Xt77Awo9Z3QduxoBj+2NS11CzNGgxGjmw9T86lImJXnal2O13DfBjRPhCjAofScnB1sOPLKd2slhBlnS/gqxd389tnR0k9bkqIglt5E/VIWx5Y0MdsCRGASq2qSIjAtE6p3W2N8WjkRLneyJkDmWz4/DhfPruLtZ8cIfV4ttn6thVJiqzFxQe6PWy6vuNt+MsAnbuPE33viQBg769nyb5YUKWm1WoVTw2K4LNJXXB1sCP2bDajPtzFyfRbr0Mf4hGCWlX546BWqQl2r/50PGupy7ELIURNHE7L4Yd40xdAL49sg52tkw/Awcmeu2Z2ot+9Leh5l3WnE11TYTZsnm+6fvuL4G7aM8YhLBTU/3MapFbjEGr7xLJBG/YWuPpB5inYtsAsTdpr7BgwsSUAx3de5MLpK9Vu6/lhkfi4OhDg4cj3j/Wifwu/mz+omowGI7mZxRU/ewU4Yygz4uyuoXNUCPe/2pNRT3eieRd/i6/Vc3LV0Du6Ofe/2ot7XuxG56GhePqZ4kk+nEVmWr5F+7cGmT5nTQUZprVF5SUw6SdodnvFXYqisObjI5w7mo1fiDtjn+tSpXmgV52+lM8jX+3nXHYRzho7/nNPB4a1u7XqOnV5XU5djl0IIarDaFSI/mQ3h9JyGNOpMf+9t6NNY7mUnEdgM0+bxXBdvzwFB5aCf5s/iiv8OdVH1hTVUid/he/vB5Uapm6CJl3M0uzWb09xYudFPP2dGf9Sd+w11VsXk1tchouDXZWXKtyq/MslprVCv1/E3tFU7ODqlwtZ5/Px1rratmDJHxRFIftCIWcOZBDZKxBPPxtsxHwDsqaoNidFAL89B3s/hdC+8OCaSncV5pTy3St7KS0qp/vIcLoND69WFzlFemZ8d5CdiVkAPDWwOTMHt7iltUq6Qh1p+WkEuwfXufU4dTl2IYSoqh/3p/Hs8iO4Otixdc4A/D1qVna4ukoKytjy9UlSjmYz9NG2NO1ouW/Oq+z8fvh8MKDAg79BaO+/HVKm06E/l4pDaIisJapNVjwMR380Ve59bCdoav75Li0qI2b+Xopy9XQZGkrP0c3MEKh57f8thbhfzlZMKHJ213D3c12vWz1OXJ+sKartej8Fag2c2wXnYivd5erlSL97TWuD9q9JqTRkWhVeLg4sntKNh/uakqr3tyTx6Nfx5JeU3fSxWlct3bTd6mRSUZdjF0KIqsgrKeONdacAeGpQhM0SojMHMoiZv4fkw1moVKbF2bWG0QBrZgMKdJhwzYQIQKPV4tqjuyREtc2wN8HVH7JOw7bXzdKko4uG28abptEd3JBK1vnaNeXr8OY09v5sSogat/RmyMNteOD1PpIQWYkkRdbm2Rg6TTRd3/n23+5u0T2AVr0DGTSlFR6Nqv9Hzt5OzT9HtOadcR1wsFez6eQloj/eTUpWYbXbFEIIUTu8tymRrAI9TRu58mCf6s0qqImiPD3rFh5l3cJjFOeX4R3oSvScLjTr7G/1WK4rfgmkH/qjuMIrto5GVJWLD4x813R99weQts8szTbt5EfTTn4ogO7sra+9trRTe9LZ9WMiAD1GhTP6mU5EdA3ATiOn6tYi0+ds4XIyfNDFVF3lka1mKzl5PYfScnjs6/1cyivFw8meD+/rbNGFgUIIISwn8VI+w97bSblRYcmD3RjQ0rqJyJkDGWz7NoGSwjJUahVdhobSdVhY7Tp5K8wy/Z0tyTGNOPR4zNYRiepa+Sgc+R58I+DxnaCp+ahJYW4pRbl6/ELczRBgzSmKwm+fHiX5cBYdBgbTZ1xz2xcoqQdk+lxd4BMO7caZru9854aHlhSUcUVXs9GdjsFe/Dq9L51DvMgrKWfK4jgW7ThLPcmHhRCiwVAUhfm/nqDcqDC4VYDVEyIwlTcuKSzDt4kb457vSo9RTWtXQgSw6WVTQhTQDrpOtXU0oiaG/hvctJCdCFv/ZZYmXT0da01CBKBSqYh6tC0DJrakz92SENlKLftfrAHpNwtQwanVcOnENQ+5lJxHzCt7+e2zY5SXGWrUnb+HE9892pN7ujbBqMC/1p5k1g+HKalhu0IIIaxn/XEdu5KycLBXM3dEa6v0qSgKedl/rnGN6BrAHVNbM+6FrrXqxLJC2j44+LXp+vC3K1WbE3WQiw+MfM90ffeHkLrXrM1nXyjg9+WJNvmiuOBKaUW/dnZq2vRrbPs9vRowSYpsxa+laZMyuO5o0dXShlfSC4n7NbnGXTra2/HG2PbMH2Xay2LVwQvc81ks6bnVK+gghBDCekrKDLy6+iQAj/VvSoivi8X7zL9cwuoPDrP83/spKTAV61GpVLTopq3WthEWZzTAmlmm6x0nQkhP28YjzKPlUOhwH6CYNnXVF5ml2dLicla+Fc+hTWkk7NWZpc1blXOpiB9ej2P7d6cx1qYCJQ1YLfwfrQHpN9v07/GVkJX0t7ud3DQMuM9UJeXQxlR0Z3Nr3KVKpeKB3mF8PbU73i4ajpzPZeQHvxN/7nKN2xZCCGE5n24/w4WcYoI8nXhigGVLCStGhWM7LvDdK3tJPXEZfbEBXXLN/wZZ3P4vQXcEHD1h8HxbRyPMaegCcA+Ey2dgy2tmadLR2Z4uw8IA2PVjIkV5erO0ezMFV0r4+b2DFOeXkZGSR7leZu3UBpIU2VJge2gxFBQj7PrvNQ9p2tGPlj20KApsXnqSMjP94vRu1ohfpvclUutOVkEp4xfuYVlcqlnaFg2LrlBHXHocukLrfssmREOSdrmIT7adAeDF4a1wcbDclLDczGJ+fu8g22MSKCsxoG3qyb3/7EZYu0YW69MsCjJhy6um64NeAjcpKFSblel0FO7ZS5nuFv92OHvByPdN1/d8/LdtTaqrw+BgGgW7UVpYzq4fTpulzRspLtDzy3uHKLhcileACyOmd8DBSaZ41gaSFNlavzmmf48sg5xrJyV974nA1dOBnEtF7P35rNm6DvZxYcUTvRnWVkuZQeH5lUeZ+/MxygxGs/Uh6reViSuJWhHF1A1TiVoRxcrElbYOSYh66fW1JyktN9KrqS/D2wVapA9FUTiyNY1lr+7lQkIO9ho1fcdFMGZOZ7y1rhbp06w2vQwluaBtD10fsnU04gZyli8naeAgUqdMIWngIHKWL7+1B7YYAh3vBxT4+UmzTKOzs1Nz+/2RqFSQuD+DlCNZNW7zevQl5az+4DBXdEW4eTsy6umOuHg4WKw/UTWSFNlacDcIvw2M5fD7e9c8xMlVw+2TWgFweEsaF5NyzNa9q6M9H0/szOw7TJvGfhV7jke+2i+JkbgpXaGO+bHzMSqmz4pRMTI/dr6MGAlhZr8nZfHbMR12ahXzRrW2WGUqlUpFZloB5XojjVt4MX5udzoMCkZdFxZ+p+6FQ9+Yrg9/B9R2to1HXFeZTkf63Hlg/OM8w2gkfe68Wx8xivoXuAfB5bOw2Tz7T/mHetBhcAgA279LQF9SbpZ2/6q8zMDaT46ScS4fJ1cNI5/qiLuPbTZdFtcmSVFt0P9Z078Hvoa89GseEtrWl1Z9AonsqcU3yLzf2KlUKmYMimDR5K44a+zYlpDJCyuPSslucUOpeakVCdFVRsVIWn6ajSISov4pMxiZ98txACb1DCVSa959+IxGhZLCsoqf+97dnNsnRXLXzE54+lm+kINZGMph7R9rdDvdD8HdbRuPuCF9yrk/E6KrjEb0525xCr+zF4z6wHR976eQ8rtZ4uo+MhyPRk4UXCnl2PYLZmnzr3RncrmYmIPG0Y4RMzrgE1gHRl8bGEmKaoOwvhDcEwylEPvhdQ8bMDGSQQ+0xtFFY5Ew7mgdwEcTO6FWwfL487y7KdEi/Yj6IcQjBLWq8n8hapWaYPdgG0UkRP2zdHcKSRkF+Lg68MzgFmZtO/tiASvejGfjlycqvgRzdNHQuk9Q3SoLvP9L0B0FJy8prlAHOISFgvp/Tj/VahxCQ269kYjB0GkSf06jq9l+jgAaBzsG3B9Jn7ub0/GOKsRyi5pE+jDssbYMe6IdAWHm/XJDmIckRbWBSvXnaNH+L6Ew+5qH/XUKg9GokLBXZ/bRnIGRAbw2uh0A721O5Pt9UnxBXJvWVcu8XvMqEiO1Ss28XvPQumptHJkQ9UNmfinv/fHl1D+iWuJppi/EDAYj+9cm88O/9pGRkofubC55WXV0a4aCjD8rkQ2aC661vBiEQKPVEvjK/D8TI7WawFfmo9FW8W9H1L/AowlcSYFN5kmGgyN96Dg4xKxTRv86FS+8gx/BkT5ma1uYl5S7qC2aD4LAjpB+yFRVZdBL1z1UURQ2LT5B4r5LXL5YQK8xzc0ayn09QriYU8yHW5N4cdUxAjycbLJruqj9oiOi6R3Um7T8NILdgyUhEsKM3lx3ivzScto19mRcV/OMwGam5bPlq5NkpRUAENbOl9vui8TN29Es7VvdxnlQmmv6+9lliq2jEbfI6+67ce3bF/25VBxCQ6qeEAE4ecKo9+GbaIj7DFqNhPB+ZouxXG8g/WxujZKYA+vPcXzXRe56uiMejZzNFpuwDBkpqi1UKuj/RyW6uIVQnHODQ1UEtzL9kh5Yn8rhzeZfwzF7SAuiOzXGYFR48tsDHLtQB/anEDahddXSTdtNEiIhzOhg6hV+jD8PwPy7TBtu14TBYGTvL2dZvmA/WWkFOLrac8dDrbnzyfZ1NyE6FwuHYwAVDP+PFFeoYzRaLa49ulcvIbqq+aA/k+Gfp0FpgVliKy7Qs+y1OFZ/cJjsi9Vr8/jOC8SuOkNeZjHnjl17BpBVZZ+BLf+Cj3rAF1Fw6DsoK7F1VLWKJEW1Scvh4NcKSvMgbtEND23VO5Ceo5sCpg3HEvddMmsoKpWKf49tT5/mvhTpDTy4ZB9pl82zg7QQQojrMxoVXv6juMLYzk3oHOJd4zavpBdyfNdFjEaFZp39uG9eT1p011qskp3FGcph7R9fJHaeDE262DYeYTt3vAqewZBzDjbNM0uTTq4avLWuGA0KW78+hdFYtaUKSfEZbI9JAKBzVCjtBjQxS1xVVpwD+xfDF0Pgg86w403IPAVpe+Cnx+E/rWDjXLicbJv4ahlJimoTtfrP0aI9H9/0G4/OUaG0u930i7ZpyQnOn7ps1nAc7NV8cn8XIrXuZOaXMmVxHDlF1tntWQghGqrl8ec5fD4XN0d7nhvW0ixtNmrizn3zejB8WnuGPtqu7u+Nsm8RXDoGzt4wyDwnwqKOcvL4sxrdvs/h7PYaN6lSqbhtQgs0TnZcSs7j2Pbzt/zYtBOX2fjlcRQFWvcLqvgC22oM5XB6A/w4Bd5uAatnQtpeUKmh2SCIXgQDXzKtxyq+bNoO5v1O8O04OL0ejAbrxluLSFJU27QZAz5NTR/U+MU3PFSlUtFvXATNu/hjNCis/fQoman5Zg3Hw0nD4ge7EejpxJnMQh79Kp6Ssob7CyOEEJaUW1zGG+tOAfD0oAj83c23j4mTq4awdvWgEEG+Dra+bro+aB64+to2HmF7zW7/c8PeX6ZDac3Phdy8neg9phkAsT+dJf/yzaea6ZJzWfvZUYwGhWad/bltQkvrjcbqjsL6/zON/sSMg+OrTFWN/VrBHa/AMydg0kpof4/pC/inD8P470yJEgokboCYe+D9jrDrv1BouU1saytJimobtR30nWW6vvsDKLtxRSCVWsXgKa1p3NILo0GhMKfU7CEFejqz+MFuuDvaE5dymdk/Hq7yULIQQoibe3fTabIL9TTzc+WB3mE1bm/fmmSLVCq1qY1zTdPMgzqbps4JAaYTf88QyEk1fUbMoE2/xgQ296S81MC2bxNu+HukKAq//5hIeamB4NY+3PFQa8tvfFyQAbEfwSd94dO+pm1dCjPAxRd6PA6PbocnY6HP0+ARWPmxdvYQeacpUZpxAHpNN5W1z0mFTS+bkquVj0JaHNSn/z9uQKXUk/8p8/Ly8PT0JDc3Fw+POl7/vVxvmvuZmwZ3vg3dH7npQ0qLy7miK0Qb7mmxsHYnZfHA4jjKDAqP9Avn/4a3tlhfQgjR0Jy+lM+w93ZiMCp8PbU7/SL8atRe+plcVr4dDwrc/XzX+rE3SsrvsOROQAWPbIbGspZI/MXZ7fDVKNP1ST+ZRpBq6IqukGWvxWEsVxj8YGta9rh+YYiiPD17fzlL33ERaBwtVPijrAQS1sLhZZC0CZQ/Zu/YOUCLodBhAkTcAXbVKOGvL4LjK03r2tMP/Xm7th10exjajQOHurPpbFVzA0mKaqu4RaZFpJ7Bpgzevmrzv/Mvl+DoYo+Dk3mrrv908AIzvz8EwLyRrXmwT7hZ2xdCiIZIURTu/2IvvydlE9UmgM8mda1Re+V6A9//ax85l4qI7KVl0AP14EssQxl81h8yTkCXB2Hku7aOSNRGa2ab1hZ5BsMTu01rjmpo/9pk0s/kcdt9LfDwrVxa22gworaz8MQrRTGN2Bz+zpS0lPylInDjrtBxArSJBhcz7oF0IR72fQHHVkD5H1MHHT2h433QbSo0ijBfXxZS1dygSu/iggUL6NatG+7u7vj7+zN69GgSEhIqHVNSUsK0adPw9fXFzc2NsWPHcunSjSujKYrC3LlzCQwMxNnZmcGDB5OYmFiV0OqfTveDW4BptOjI91V6aNb5Apa/sZ/1C49hMBjNGtboTo35x1DTwt9XVp9g3bF0s7YvhBAN0aaTGfyelI2DvZp/mmEUfu+vyeRcKsLV04E+d9f+k5dbErfQlBA5+5g2ahXiWgbPB69Q0/nTb/8wS5Odh4YxYnr7vyVEpUVlLH8jnhO/XzRLP39z5Rxsf9M0e+jLIaa15iW5piIJ/WbDtH2mEdNuD5s3IQLTKOzoj2HWSRjyGniHm/YE2/sJfNgVlo6CE7+YCjvUE1VKirZv3860adPYs2cPGzdupKysjCFDhlBYWFhxzDPPPMOvv/7Kjz/+yPbt27l48SLR0dE3bPfNN9/k/fff59NPP2Xv3r24uroSFRVFSUkDrp+ucYbeM0zXd/2nSh+68jID+uJyUk9cZutXp1DMvP7niduacX/PEBQFnl52iPhzt1b1TleoIy49Dl2hzqzxWENdjr0uk9fdNuR1t64yg5EFa08CMLVvOME+LjVqT3c2l8ObUgEYcH8kTq7VmEZT2+Slw9YFpuuDXzb/CaCoPxzdYMynpmprh78zTTOrIbVaValggr64nDK9gTUfHyEzNZ+9P59FX2ym5KBcDwe/gSUj4L32sPVfcPksaFxNU+Mm/wIzj5q+GPBrYZ4+b8TFx3Q+OuMA3L8CWt5pem2Tt8MPk+DddrDtDVMBlDquRtPnMjMz8ff3Z/v27fTv35/c3Fz8/PyIiYnh7rvvBuDUqVO0atWK2NhYevbs+bc2FEUhKCiI2bNnM2eOqRx1bm4uAQEBLFmyhPHjx99SLPVu+hyYSnK/285UiS76c2g/7pYfmnI0i7WfHEUxKnQaEkLv6OZmDa3cYOTxb+LZdDIDLxcNK57oTTM/t+sevzJxJfNj52NUjKhVaub1mkd0xI2T5dqiLsdel8nrbhvyulvf0t0pzPvlOL6uDmx7dgDuTtVPYv46ba5lTy2Dp9SDaXMAKx6Goz+avr2eusm0hYUQN7LtDdj2uimZeHwn+DarcZOlxeX8/mMi5xOu4BPoyrlj2Tg42zNmdicaNXGvecxGIyybAKfX/XGDCsL7QYf7oNVIU8JXG+SkQvwSiF8KRX9UqVPbQ+QI06hVWF+oBXugWXT63P/KzTXNafTxMX1jEx8fT1lZGYMHD644JjIykpCQEGJjY6/ZRnJyMjqdrtJjPD096dGjx3UfA1BaWkpeXl6lS73j6AY9nzRd3/mO6ZflFoW1a8Tt90cCcHBDKoc3p5k1NHs7Ne9P6ESHJp7kFJUxZXEcmfnXrnynK9RVnGQBGBUj82Pnm+1baKNRYd2xdCZ/GcdXsSlmafMqS8curk1ed9uQ1936covLeHfTaQCeuaNFjRIigNQTl8m5VISLpwN9x9WDaXOKAoe+MyVEqGD4O5IQiVvTfw6E9oWyQlj+IJTXvDqvSgVppy6Tn13CuWPZ2GvUDJ/W3jwJEZg2Vz29DuydYOA/TSNCD/xqWjNUWxIiAK8Q00jVrBMw9gsI6QXGcjjxEywdYbZNdK2t2v+zGI1GZs6cSZ8+fWjbti0AOp0OBwcHvLy8Kh0bEBCATnftP6pXbw8ICLjlx4BpfZOnp2fFJTg4uLpPpXbr/gg4ekDmSUhYU6WHtuodWLFp2K4fEzm9z7wnNi4O9nwxpRshPi6kXS5m6tJ9FOn/PnycmpdacZJ1lVExkpZfs0TNYFT4+dAFhr63g8e/OcCO05nM/fk4G0/ceA1bVVgqdnFj8rrbhrzu1vfR1iSuFJUR4e/G+G41/zvWtKMfo5/pxOAHWtf9aXO55+G78fDT46afu02FoE62jUnUHWo7iF5oWoOWfhg2za9xkw5O9gyYaPrCWa1WEfVoW4Kae9W4XcC04eq2f5uuj/gv9H8WvGr5ua29I7S7Gx5aB4/vMhVA0bhCq1G2jqxaqp0UTZs2jWPHjrFsWc3nalbHCy+8QG5ubsUlLa2e/tF29oLuj5qu73iryrXiO0eF0u72JgAc2XLe7OuLGrk5svSh7ni7aDhyPpfpMQcp/5/iDiEeIahVlT9qapWaYPfq/bKXGYz8uD+Nwf/ZztPLDnH6UgHujvb0CDeNWM76/hDJWYU3aeXWmDt2cWvkdbcNed2tKzW7iCW/pwDw4vBW2JupglXjlt4Et67Da26MBti7ED7qYfrWXK2B256HqAW2jkzUNZ6NTcUCAPZ8BKfX17jJ0Da+3DWzI3c/39V8myFfPgsrHwYU6DrVVOGtrtG2M1WEnJNQZ0vlV+t/4OnTp7N69Wq2bt1KkyZNKm7XarXo9XpycnIqHX/p0iW02mvXdb96+/9WqLvRYwAcHR3x8PCodKm3ej4JGhfTNx1Jm6r0UJVKRb9xEfQc3ZRRT3dEZYGNxMIbufL5A91wtFez5VQGL/18vNIGZ1pXLfN6zas42bq6TkHrev3391pKyw3E7E3l9re38ezyIyRnFeLlomH2HS3Y9fxAvnm4B93CvMkvLefxr+OvOWpVVeaKXVSNvO62Ia+7db2x7hR6g5F+EY0Y0KJmexKd3H2R3Mwbb/ZdJ2SchC+j4LdnQV8AwT1M30Df/kKVt6YQAoCWw6DHE6brPz0BeTWvFNck0ge/EDNNmdMXwfeTTVXlmnSDof82T7u24uheK9YTVUeVCi0oisKMGTNYtWoV27ZtIyKi8nzlq4UWvvvuO8aOHQtAQkICkZGRNy20MGfOHGbPng2YFkb5+/tLoYW/Wv9/pp2Kg3vAQ+tr/IEr0xvQOJh3Y7F1x3Q88W08igLPRrVk2u2VizvoCnWk5acR7B5cpZOskjIDy+JS+WzHWdJzTRUJG7k58HC/ptzfMxQ3xz/3YsrIK2H4B7vIzC9lVIcg3hvfsVLFmOqqbuyiZlLzLnIqK5n2Ac3kdbci+bxb3v6Uy9z9aSxqFax9uh+R2ur/3bqUkseKN/Zjp1EzYV6Pv5UNrhPKS2HH27Drv2AsAwd3GDzP9K25rCESNVVeCp8PBt0RCOsHk382Ta+zNUWBVY+Ztl5x9YPHdoBHkK2jqjcsWmhh2rRpfPPNN8TExODu7o5Op0On01FcbPp2ytPTk6lTpzJr1iy2bt1KfHw8Dz74IL169aqUEEVGRrJq1SrANJIx8//bu++wps72gePfhL0REQEF3HvvvWfVaq3V2qq1aqfd8/V921rtsP11T22d1dpq3aPuvbe4B6AMkaAgeyUk5/fHUSwVlJEQxv25Li5jSJ7zJOeEnPs8z3Pfr73Gxx9/zNq1azlz5gzjxo3D39+fYcOGFaZ75VvHl8DGAaIOQ/i+IjejKAonNkew9OMjpCfrzdhBGNDElw+HNAbgi82XWHniWq7f+7r40ta3bYFPstKysvl1TxhdPt/Jh+vOE5OUSVV3Bz4Y3Ii97/Ti+e61cwVEAD7ujvz8ZCtstRrWnrrOggPhZnlthe27KL641CwmzgnhudmJfLUhFl1SBU7RX8LkeLcsRVH4+G81BffINgHFCoiMBhPbf7uAokDN5lXKZkAUcQBmdlYXmZsMasrfyYfVNbUSEAlzsHWAEfPV9S7he2Hv19bukerIbDUg0tjAYwskILKyQv21mTlzJklJSfTo0QM/P7+cn6VL7xYX/eabbxg8eDCPPvoo3bp1w9fXl5UrV+Zq59KlSzmZ6wDeeecdXn75ZZ599lnatm1LamoqmzZtwtHRsZgvrxxx94NWY9Xbe74ocjP6TCNn90STdCOD9T+eQp9p3qJbT3WqwbPd1OQO7yw/zf7QuEK3kZxp4KedoXT5fAefbrhIXGoW1Tyd+HhYE3a/3ZMJXWridJ9RrrY1vPjfoIYAfPL3BY6GF6yOkig9kjIMjJt7hJAbqSgKLDt+jR5f7uSrLZdIzSo/heJExbTudAzBUYk429vwRr/i1Rk5uuEqCTFpOLnZ0W1UCdQsMafMJFj3GswfCPEhasHyx36Dx/9Q14IIYU7eddTshaCm6o7IP8NxiYg8DJunqLf7TlfTWAurKladotKk3E+fAzUv/Pct1bSHT61Xc9cXpZnYdFZ8cZzMVAMBjbwY9GIzbGzNdzXOZFJ4ZclJ1p+Owc3Blr+e70hDvwfvk8R0PfP2h7Ng/1WSbwdrQZWdmdyjDo+0qoZdIRYhK4rCa0uDWRN8nSpuDvz9chd83CXILgvSsrIZM/cwJyMT8XZ1YNrDjZm//yrHIhIAderk633rMapNgNkWpgtRUjINRnp/tZvoxAze7FuPl3sXPW32jYhkln9+HMWkMOC5JtRu6WPGnlrYhXXw91uQejsraqtx6omhUyXr9kuUfyufVUdn3Kur9YusUQg4JRZ+6aYe/40fUUexyug6nNKsROsUiRLmGah+cQCsflG9ylaUZqo6M3hyc2zttUSdv8WOhRfMmpVOq9Xw1cjmtKvpRUpWNk/PP0pMUv4LgONSs/hs40U6f7aD77eHkJyZTR0fV74d1YLtb3RnZNuAQgVEoE7LnDG8KfWrunEzJYvJf5zAYCx4nSdhHZkGI88sPMbJyEQ8nOz4fVI7BjXzY9nzHZk1phU1KjsTl6rnf6vOMuC7vey4GEs5ua4jKoj5+8OJTszAz8ORSV1rFbkdY/btaXMmhTptfMpOQJQcA0uehKVj1BNCr9rqRb6Hf5CASJSMQV+BVy1IvgZrXy50Vt9iMxpg2Xj1+K/SAB7+UQKiUkKCorKmzzSoVAOSItWrbEVUtaY7A55tilar4fKRWA6uCjNfHwEHWxtmj21DHR9XdMmZjJ93lORMQ67HxCZn8tH683T5fAezdoeRpjfS0M+dn59sxZbXujGsZbVijQQ429sya2xr3BxsORqewKcbLhT3ZQkLMhhNTF58ggNh8bg62LJwQructRYajYYBTfzY8np3pg5phKezHaE3Upmw4BhPzjnM2eiiXSAQoiTFpWbx085QQE1Gc79pwA9ydnc0t66XoWlzJhMcmwc/tYOL60FrC13fhBf2F3nWgxBF4uAGI+apqd4vroejc0p2+1s/gMgDajKRUb+XrqKsFZxMnyuLoo7AvAGgGGH4HGj2WJGbungohu0L1GBh+Nut8avtYa5eAnAtIZ1Hfj7AzZQsOtaqzG8T2nEzNYtZu8JYeiwKfbY6etO8ugcv96pL74Y+ZskW909bz8fyzMJjAHz3eAuGtpC56qWN0aTw6u0pl452Wn57uh3ta1XO9/FJGQZ+3hnK/P3h6I0mNBp4pGU13upXH3/PMrjQXFQI760+w++HImlazYM1kzujLUaJBKPBxLGN4XhXd6V2q1I+SnTzMqx7VT0RBPBvpY4M+Taxbr9ExXbwJ9j8XzWJ1TM7SuZ4PLMcVkxUb49aDA0HW36bFVhhYwMJisqqXZ/Brhng4K7WcKgUVOSmTmyJwM7ehqY9qj/4wUVwNjqJUb8cJE1vpIGvG6E3Usm+PV2vTVAlXu5dl251vc0eDP3Tl5sv8ePOUJzsbFg1uVOxsj0J8zKZFP6z8jR/HbuGnY2GOU+1pXsBa7ZE3Urnyy2XWBOs1p1wsNUyqWtNnu9eGzdHO0t2W4hCCYlNof+3ezApsOTZDnS4T9BfbmTrYf+3anIgo17N/NXrPWj/XOlIhywqNkWBP0ZByGbwrgfP7gJ7F8ttL/acmhbckA5d3lBTzguLkqCoogRFxmw1Y8+1IxDYCcavL9VfMrsv32TCgqMYbwdDnWpX5uVedelQy8uiwdAdRpPC+PlH2BsSR43Kzqx5qQseTnLSbG2KojBt3XkWHAjHRqvhpydaMqCJX6HbORWVyCcbLnDkqpppsLKLPa/1rcfjRViPJoQlPD3/CDsv3aRfo6r8Oq5Nkdu5HpJA1Voe2JT24zrqqLpe4+btact1+sLgr9W1sUKUFmlxajr4VB20HAtDf7TMdjISYXZPuHUFavWEMStK9TlbeSGJFso5g05H2qHDGG7GwfBf1TmpkQfUgndmkJlqYN33wdyMTDFLe3d0r1eFmU+2YmSb6qx4oSN/PNOBjrUrl0hABGCj1fD94y2p5ulEeHw6b/4VjMmMySWKS5em40jMEXRpujLVdnF9teVyTi2pL0Y0K1JABNA8wJOlz3bg17GtqeXtQnyanvdXn2XAt3vYej7/ZAyl+b0R5cfekJvsvHQTW62GKQ81LHI7N6NSWPNNMMs/O0ZWRilNTZ+VAhvegbl91YDIubI6zfvJZcUKiHK++3TyWRVm5OINj84GNHBykTq9zdxMJlj1vBoQeQTAo3PvGxBZ+liXz1L+JCgqQxKXLye0V28ix48ntFdvEncch4du1yzaNQOijxd7GwdXhxF5/hbrfjxFclz+GeOKol9jX/5vRHNaB1kh/SVQycWeWWNaY2+rZduFG/y8K9Qq/fi3lSEr6b+iPxO3TKT/iv6sDFn54CeVgraL6+ddofx4e9H5R8OaMLxV8aZvajQa+jX2ZfPr3Zg+tDFeLvaE3UzjmYXHGD37EGeu5U7GUJrfG1F+GE0Kn9wu1Dq2YxA1vYs2PcdoNLFj4QVMJgV3byfsHUvhVeZLm+CnDnDkF0CB5qNh8lF13WsxLoDd89233AInrqLiqtkNut1OXLXuNbh11bzt7/sKLm9U1y6NXAgu+U+dtfSxLp+l+5Ppc2WEQacjtFdv9YrDHVotdbZvw27fFDi3Sk1t+tyeYmUyycrIZtWXJ4iPTsXDx4lH32mNk6u9GV5B6fHX0SjeWXEajQYWPN2uwOtXLEGXpqP/iv6YlLv7VavRsvnRzfi6+JbatovrtwPhTF17DoApAxvwXPfaZt9GcqaBmbvCmLvvak5Cj0daVuOt/vWxsUsqte+NKF+WHo3k3RVncHe0Zc87PfF0Ltrf06N/X+XIuqs4uNjyxNQOOLuXkr/LigIR++Hgz3Dpb/U+zyAY8i3U7lXs5vP97tuxHTtf+awKMzFmw4JBEHUIqrWGpzeBrRk+Y6Hb4PcRgKImF7lTViUPlj7WK+JnSabPlVP68IjcBzKAyYQ+MgoGfwPu1eBW2N3qyEXk4GTLkJeb4+blSNKNDP7+6TSGLGOx2ixtRrYNYHS7QBQFXl1ykqhb6VbrS2RyZK4TcwCTYiIqJapUt10cy45F5QREr/SqY5GACMDd0Y53BzRg51s9GN5SzTi46mQ0Pb/cxWfb9pXK90aUL2lZ2Xy55TIAr/SuW+SAKO5aKsc2hAPQbVS90hEQZaXC0bkws5N6Mnnpb9BoodPL8OJBswREcJ/vvohIs7QvBAA2tvDoHHD0VGfd7Pio+G0mRMCKSYACrZ66b0AElj/W5bP0YBIUlRH2NYJA+6/dpdViHxSoFrx75BdAAycWqpXCi8HF04EhrzTHwcWW2KvJbJlzFlM5K3z64cONaF7dg8R0Ay8sPk6mwTqBX6B7IFpN7v2q1WgJcAso1W0X1d+nY3h3xWkAJnSuyet9LV9fpZqnE1+PasG6l7rQoZYX+mwTa47qQck9ncfa740of37ZHcbNlCyCKjszrmONIrWRM23OqFCzuTd121Y1bycLKy4ENr4LXzeEv9+AG+fBzhlaj4cXDkC/j82aweu+331CmJNnwN1ECwe+V0d5isqQoRYozkhQU9DfWepwH5Y+1uWz9GASFJURdr6++E2fdveA1mrxmz7t7pBnza7Q+VX19tqX1arhxVDJ14VBLzbHxk5L+Jl4Dqw0b3FXa3OwteHnMa3xcrHnbHQy768+m+9ifEvydfFlasepOcGLVqNlasepZpnCZcm2i2LnxRu8uuQkJgUebxvA+4MblliiDYCm1T3485kOzH2qDbUq+ZMZMxzldmBk7fdGlD8xSRn8uvcKoE4Rtbct2tftyS2R3IxMwcHZlu5P1C/Rz0wOkxEuboCFw+DHNnB4FmQlq1O2+8+ANy7AkO/Ap+hJJPLzwO8+Icyp4RBoO0m9vep5SIktfBuKAn+/CbrTaqKRUYvA1uGBT7P0sS6fpQeTNUVljEGnQx8RiX1Q4L0HcrYe5vaBmFNQqweMWXXvVYFCunrqJvuXhzL4peZ4VnUuVlul0f7QOMbOPYxJgU8facoT7a1zxUSXpiMqJYoAtwCzn5hbsu2COhgWz/j5R8jKNvFwc3++GdUCm2IUriyubKOJP49E8uGGA2AXx4+P9WVgQ/Of0JVVN1IyScnMpnYVqbReVG/8FczKE9G0q+HF0uc6FDmYSdClsf23CzTtUZ367Uv485sWDycXwtF5kHRnio0G6g2AdpOgVq9if8cU1H2/+4QwJ0MGzO4NN84V7Vzq6Fx1FFWjhbGroVb3wm3ewsd6RfosSZ2ich4UPVBcCMzqCtkZ0P9T6Di52E0as03YFPEqZ1kwc1cYn2+6iL2Nlr+e70iLAE9rd6lcORmZwJg5h0nTG+nTsCozx7QqNbWD/rvqDH8cjqSxvztrX+pi1UCttFh36jrvrjhNVraJP5/pQLua1skWWZaduZbEkB/3AbBmcmeaF/NvismkoNFQcqNE0SfgyGw4uwKMWep9TpXUNRFtJkClGiXTDyGs5eYl+LWHWmi191To+kbBnnftGMwbACYD9JkGXV6zZC/FA0iihYrOuy4M+FS9ve1D0J0pdpP/DIgiz8dz9dTNYrdZmjzfvRb9G1dFbzTxwu/HiU/NsnaXyo3z15N5at4R0vRGOtepzI9PtCw1ARHAm33r4eZoy7nrySw/XrGTLBiMJqatO8fLf54kXW/EaFJ4e/kp0vWltB5OKaUoCh//fR6AYS38ixwQpSfrc25rtRrLB0SGTDi1BGb3UotMnvpDDYj8msPQn9Upcn2nS0AkKoYq9WHg5+rtHR9D1JEHPyf1JiwdqwZEDR++u6RBlBml5+xEmE/rp6H+Q2DUw4pn1KFgM9BdSeLvH0+zec45YsKSHvyEMkKj0fDlY82p5e1CTFImL/95kuxylljCGsJupjJ27mGSM7NpHVSJ2ePa4GhXumqrVHZ14NXedQH4YvMlUjINVu6RdcQmZzL610PM3x8OwLPdauHv4UhEfDr/t+mSdTtXxmw9H8vhq7dwsNXy9oAGRWrj1vU0Fv3vAPuXh2C09N+ixCjYNg2+aQSrnlMzb9nYQ7NRMHEbPLsbWj4Jdk6W7YcQpU3LsdDkUVCMsHwiZCTm/1hjNix/GlKug3c9GPZzsWpzCeuQoKg80mjUfPiuVdWK4lunmqVZnyA3Aht7YTSY+PvnU9yKSTNLu6WBm6Mdv4xtjbO9DQfC4nPS6IqiibqVzpg5h4lP09PY351549vibG9r7W7laVzHGtTydiEuVZ9TTLYiOXQlnkHf7+NYRAJuDrb8OrY1/32oIZ892gyABQfCORgWb+Velg36bBMzNl4EYFLXmlTzLHwgYTKa2L7wAtkGEwm6dLSWmNKpKBC2E5Y8Cd81g31fQ3q8Wtqh1/vw+nkY/isEtJUTO1FxaTRqyRPPIHVN3bpX1c9OXrZ/COF7wd4VRv0ODm4l2lVhHhIUlVcu3uqUB1Cri4dsLXaTWhst/SY1oWpNd7LSsln3QzBpieVnqlndqm783wj1RHDW7jA2nS1eBr+KKjY5kyfnHCYmKZM6Pq4snNAODyc7a3crX/a2Wv43SE2yMH9fOBHx5SfYvx9FUfh1TxhPzjlMXGoWDXzdWPtyF/o1VhfedqtXhdHt1MQj76w4RVqWTKN7kMWHI7gal4a3qz0v9KhTpDaCt0VxIzwZeydbejzZwLzT5jKT4fCv8FM7WDQMLq4HxQQ1u6kncq+ehm5vgav1CloLUao4esCI+aC1hfOr4cRv9z7m3Co48IN6e+hP6tQ7USZJUFSe1e0D7V9Qb69+UZ3vWkx2DjYMmtwMz6rOpN7KYt0Pp8jKKD8nS4Ob+TOpS00A3lp2mtAbqVbuUdlyK03PmDmHibyVTqCXM4sntaey64NTkeZFURQ2/XKGX1/bzY5FF4i9mmyxtOm9GvjQta43eqOJT/6+YJFtlCYpmQZeXHyCTzdcxGhSeKRlNVa92Jma3rnry/xvUEOqeToRdSuDz26PgIi8JaUb+G57CABv9K2Pq0PhR0YTdGkcWXcVgC6P1cG1UtE+O3kK2QZfN4KNb0PcZfWKdttn4MXD8NQ6NRWxTekczRXCqqq3ht4fqLc3vgs3/vEdceMirL6d0KrTK9B4WIl3T5iPBEXlXZ8PwacRpN2AtS/lP/RbCE6u9gx5uTnO7vbER6eyceZpjIbyswbnPwMb0L6mF6lZ2Tz/+3FS5Qp5gSRnGhg37zAhN1LxdXdk8aT2VHV3LHJ7Fw/qCDt5E0OmkQv7Y1j++TGWfnyU6EsJZuy1SqPR8P7gRthoNWw5H8uB0Dizb6O0uBybwtCf9rPxrA47Gw0fDWvC1yOb42R/73ovVwfbnNHTRYciyvX7Ulw/7AghMd1AvaqujGxTvdDPN5kUtv92AWO2icDGXjTo6Ge+ziWEw4oJoE9R1zs89KWaOGHQl+BTtHVPQlQoHV+G2r0hOxOWPa2u1c5MhqVPgiENanRVs9SJMk2CovLOzhEenQM2DnB5ExybZ5Zm3b2dGPxSc+wcbXDzdipXR5KtjZYfn2hFVXcHQm+k8u7y01Yp7FqWpOuzmTD/KGejk6nsYs/vk9oT4FX0ulbpyXr2L1evujfpXo167atiY6slPjoVe6e7V7MNWUaz7Zt6Vd148nadqunrzxc72YYuTceRmCPo0nTm6J5Z2l976jpDf9zPlZtp+Hk48tdzHRnbIei+U7Q61/FmTAf1fXl7+WmzXCSw9HtjSXn1PSI+jd8OhgPw34caYluEDItnd18j9moydo425p02l50Fy8ZDZhIGj1aktfoGQ+AQcDRv6QqDTkfaocMYdGVvn4ryx+zHo1YLj8wCFx91rfam/8DqFyA+VF2LN2K+jLRS9v8OlKNTWZGvqo3VESOAzf9T8++bQZVAN0ZOaUuvsQ2wKUVpls2hipsDPz/ZGjsbDX+fiWHO3qvW7lKplWkw8uzC4xyLSMDd0ZZFE9tTx6d4RT8Tb6SjtdHgHeBKl5F16ft0Y8Z/3pk+TzeiSuDdBax7ll7mz+lHOLU9iszU4meOe71PPTyc7LioS2HpsaKn6F4ZspL+K/ozcctE+q/oz8qQlcXuW3Ha12eb+HDtOV758yQZBiNd6niz/uUutAysVKDtTRnYkOqVnIhOzODTDcWbXmjp98aS8uv7ZxsvYjAqdKtXhR71fYrUtp2DLfaONnR6pDZuXkUfYb3H5v/B9ZMkRnkTOvsGkROeIbRXbxKXLzfbJhKXLye0V28ix483e9tCFJbFjkdXHxj+i3r7+AJ1TZ6NPYxcJOvwKB9/B6R4a0VhMsHiRyFsB/g2g0nbwdbezJtQiL6YQECj8lPsceHBcD5Ycw4brYbfJ7anY+3K1u5SqaLPNvHi4hNsuxCLs70Nv09qT6sCnmg/SGaqgcw0A55V8x5xMmab+G3KfjJS1GDIxlZLrZZVaNzVH/+6nkW+0j5//1WmrTuPl4s9O9/qUegkEbo0Hf1X9Mek3B1p0mq0bH50M74uxa8eXtj2dUmZTP7jBMcj1GmHk3vW5o2+9QtdqPZgWDyjZx8CYNHEdnStW/iTAEu/N5aUX9//r/1SnpsfhlYDG1/tRn3fomedSkvKwtnNHo25Ms6dXQHLJ2BI1xK6zi/39Gmtljo7the7or1BpyO0V2/1O8bMbQtRWCVyPG6dCvu/VW8P/hbaPG2edsuw0vp3QIq3irxptTBsJjh5ge407PzYrM0bjSY2/XKGtd8Hc+lw2Rw2zcvYDkEMb1kNo0nhpT9OsC9E1lTccSM5k9GzD7HtQiwOtlrmPNXGbAERgKOrXb4BEahB0JPTO9J9dD28A1wxZpsIORrL6q9P8seHh7lw4HqRtjumQxB1fFy5labnh9sL5wsjMjky14kzgEkxEZVinuKwhWn/YFg8g3/Yy/GIBNwcbZk9rg1v929Q6IAIoGPtyjzVMQiAd5efLlJNJ0u/N5aUX9+/2nEAgFFtA4sUEP3zuqSLh4P5AqK4EFj7CgD6mk/cu57UZEIfEVnszejDI3KfCJmxbSEKq0SOx17vqYVZB3wOrcebr90yrLz8HZCgqCJx84WhP6q3938PV/eYrWmtVoN7ZbUmx46FF4i6cMtsbVuTRqPhk0ea0sjPnfg0PWPmHubFxceJTjRPQdyy6nhEAoN/2Jdzsj3nqTZ0qu1d7HaP/n2VkKOxBV4n5OBkS5Pu1Rn537Y8NqUNjbr4Y+dgQ2Jseq508SaTgmIqWJt2Nlreu52ie8GBcK7cLFwGwkD3QLSa3H9atRotAW4BhWqnOO0risIvu8MYM/cwcal6Gvi6se6lLvRtVLVY2353YAMCvZy5npRZpCx9ln5vLCmvvmvQEhLtiIu9DW/0rVfoNjNTDSz/7BgRZ81cB0qfDn+NA30qBHXB/uEp6oWxf9JqsQ8KLPam7GsEWaxtIQqrRI5HGzvoOx06PC91vG4rL38HJCiqaBoMun1lQ4GVz0G6eYIXjUZD5xF1qNPGB5NRYeOsM9yMTDFL29bmZG/Dn892YHynGmg1sOGMjt5f7eKH7SFkGozW7l6JW3w4gsd/PciNlCzqVXVl3UtdijSV6t90V5M4sv4qW+aeK/Sxo9Fo8Alyp+eYBoz/vDM9xzSgYSf/nN9fDb7J7x8c5PimcNKSHlxbq0d9H3rWr0K2SSn0yb+viy9TO07NOYHWarRM7TjVbNPDHtR+SqaBF34/wYyNarrt4a3UdNs1/pVuuyic7W354nY2uiVHo9h16YZZ+16a5dV3+8SRKNkevNCjNlXcCp8+e/+KEG5EpHBgZSimYib2yGXD23DjvLoofMRc7KpVx2/6tLsnLVotftOnmWVai52vr8XaFqKw5Hi0jvLyvsuaoopInwa/dFOzpjQaCo/9ZrarHUaDiXU/BhN9KREnd3tGvNMad+/CV3Uvrc5fT+bDtec4Eq4Gk4Fezkwd0ojeDYt3Bb4syMo28uHac/x5RJ3q9FBTX74Y0RyXItRj+TdjtollM44SH51G/fa+9Hm6UbHb/KcNM09z9ZQ69VGr1VCjmTeNuvgT0MgLbT7TlcJuptL/mz1kmxQWTmhHt3qFC/x0aTqiUqIIcAuwyEl/Xu1fjk3h+UXHuRKXhr2Nlg+GNOLJ9oHmLQAKTFt3jvn7w/F1d2Tz692KtO7Kku+NJd3p+44zRmZuj8ffw5Edb/XA0e7elOb3E3XhFmu/CwYNPPp2a3xreZingyd/hzWTQaOFcWvUwqy3GXQ69BGR2AcFmv1kxZJtC1FYcjxaR2l73wsbG0hQVFFdPwlz+oApG4b+DC2fNFvTWRnZrPryBPHRqXj4OPHoO61xcjVvUgdrUhSFtaeu8+mGC8Qmq6MOPetX4YMhje8pflle6JIyef734wRHJaLRwDv9G/B891pmO9k+tiGcw2uv4OhqxxMftjf78WLIMhJ6/Abn911HdyUp535XLwd6jmlAYKO8E2hMX3eeefuvUtfHlY2vdi1SquWSsiY4mv+sOEOGwYi/hyM/j2lNiwBPi2wrQ29k4Hd7CI9P57HW1fniseYW2U5pdTMli55f7iI1K5tvRjXnkZaFq0tk0BtZMv0wyXGZNO1RnW6PF37qXZ50Z2HO7Voqvd6Dbm+bp10hhCiDJNGCKBj/ltDzf+rtje/ArStma9rByZYhLzfHzcuRtIQsbkWnma3tvGTrjdy6nkbkuXgyUvUW3RaoU7WGtqjG9jd78Fz3WtjZaNh56Sb9v9nDF5svkq4vX8Vej4bfYvAP+wiOSsTDyY4FT7fjhR61zRYQJcamc2xDOABdHqtrkQDazsGGhp38ePSd1jz+QTua9aqOnaMNqbey2LnoIqZ81hu92rsulZztCLmRyuLDpXPB6J10268uCb6bbvuVrhYLiECdUvrlY83RaGDZ8WvsuBhrsW2VRt9su0xqVjbNqnswtHm1Qj//6LqrJMdl4lrJgQ7DapmnU5nJsOwpNSCq0we6vGmedoUQooKQkaKKzGSE34ZAxH6o3hae3mTW4mMJujSyMrLxrVm8aSGKSSE1MYuU+AwyUgzUbnW3Dsi674OJPH93XZRnVWce+0+bXAU+LS3sZiofrj3H3tuZ6fw8HPnfoIYMaupn9mlLJUlRFH4/FMG0defJNik08HXjl7GtCapsvtEwxaSw+puTXA9JJLCRF4Nfbl5i75k+I5tDq8No1jsAT5/8s9wtOhTB+6vP4ulsx663euDpXHpGPWOSMpi8+AQnIhMBeKlnHV7vW69I2eWK4uP155mz7yo+bg5sfb07Hs6Fm0ZXFl2OTWHAt3swKfDXcx1pV7NwJQhuRqaw7LNjKCaFQS82o0az4icoQVFg+QQ4t1ItJPncXnCR8gFCiIqtsLGBlN+tyLQ28MgvMLMzXDsKe76AnlPM1nwl39wnz+nJepzc7B540nvpsA5dWBLJcRkkx2eSHJ+BKVuN3W1stdRqUSUnba2dozqP397RBkVRRx12LLpI/2cal9jJde0qriyc0I4t52P5aP15riVk8NIfJ1lcK5JpQxtTr2rR65ZYS6bByPurz7Ls+DUABjfz4/9GNMPZ3rx/Mq6HJnI9JBFbey3dn6hfokGkvZMt3UbXf+DjRrcN4PeDEVyKTeHbbSF8+HDjEujdgx0Ii+PlP04Sn6bHzdGWb0a2oE8xs8sV1lv967Pj4g2uxKUxbf05vh7ZokS3bw2f/H0BkwIDGvsWOiACCDtxA8WkUKe1j3kCIoCjc9SASGsLjy2QgEgIIYpARopEToE/NFp1tCiwvdk3cSMimfU/nqJu26pU8nVRA564TJLjMkhPyuKpzzrnnBBv+uUMYSdv5nq+VqvBtbIj7pUdGfhc05yRoNSELGzttTg42xJ7NZlVX57AZFLoOqoezXoWbp6/OWQajMzaHcbMXWFkZZuw0Wp4qmMNXutbF3fHsnEV/XpiBi/8fpxT15LQauA/AxvwTFfzrR/6t2sXb5GakEWDjn4Wab+g9JnZ2DvmHfTtC4ljzNzD2Gg1bHq1K3WtHOguOhTB1DVnMSnQ0M+dWWNamXUEz2RSMGQZcSjAiOvxiAQem3UAkwKzx7Updtrv0mz1yWheWxqMnY2Gra93L3JGvyvBN6la0x0Xj8JnrLtH9HGY2x9MBuj/KXScXPw2hRCiHJBECxIUFc3K5+D0EvAMguf3gaN538Pz+66z8/eL+f5+/Oedc04QLh/RcSsmDXdvp9s/jrh6OqAtwCL3U9uj2LcsBM+qzjz+fjtsbK2zbC7qVjof/32ezefUtRbervb8Z2BDhreslm+2s9Lg8JV4Jv9xgrhUPZ7Odvw4uhVd6prpanYplZGiZ8+Sy+iuJjFmWkds7PI+Zib9doxtF2LpVq8Kvz3d1ipTIxVF4YvNl/h5VxgAw1tV45NhTXGyL1zms/tJS8xi9TcnyUjV8+jbre8Z8c3LjA0X+GXPFaq4ObD19W6laoqhuSw6GM4Ha8+hKPBct1pMeaihtbsEGQlqJtHESGgwGEb9LnVThBDiNgmKJCgqmsxkmNUFEiOg8XB4dO69hbiK6eTWSC4d1uFWySFXwOPu7YSnrzM2ZsjspSgKwVujaNjZD0cX64/M7L58k2lrz3ElTk020TLQk+kPN6FpdTOl3zUTRVH47UA4H/99gWyTQiM/d34Z25oAr/zX2hRHTGgirl6OuHk5WqT9wjAaTCx6/yBpiVl0H12PJt3zHmG8GpdGv292YzAqzB/flp4NfPJ8nKXos038Z8VpVp6MBuCNvvV4uVcdswdn2+af59JhHQDVG1Ti4VdbPHAbmQYjg77fS9jNNIa18Ofbx1uatU/WpCgK32wL4fvtIQCM6RDItIebFGrdlqIonNgcQcNO/ji7mylgVBT4czRc3giVasCzu8HJ0zxtCyFEOSBBkQRFRRd5GBY8pKbp7vgS9P/E2j0qF/TZJubtv8r320NI1xvRaGB0u0De7lefSi7Wv6KeaTDy31VnWHlCPdke2sKfz4Y3M+vowz9lZWTz54eHyMo08vDLzfGr42mR7RTG6Z3X2Lv0Mq6VHBgzPf/Rok83XODXPVeoVcWFza91w66EUnTfKci6LzQOG62GGcObMrJNgEW2pc/MZtfvF7lyKg6jwUS/SY2p2+bBU+KCoxIZ/vN+TArMGtOaAU2sX6OiuIwmhffXnOWP25kHX+tTl1d71y10IHrxYAzbf7uAi6cDYz7qgG0haxrlaf93sPUDsHGAiVvAv0Xx2xRCiHJEUnKLogtsD0N/Um8f/BH2f2/d/hSToiic3RNN8DbrplK2t9XyfPfa7HizB0Nb+KMo8MfhSHp8uYtFhyIw5pMOuiREJ2YwYtYBVp6Ixkar4b1BDfl2VAuLBUQAh1aFkZakx8XdniqBpSMJRaMufjh72JOakMXFQzH5Pu6lXnWo7GLPlZtpLDwYUSJ9i03OZOQvh9gXGoezvQ1zn2pj9oDonynJ7R1t6TepCa0HBAGwb1kI+owHp5lvEeDJc91rA/De6jPcSrN8evy86NJ0HIk5gi5NV6x2Mg1GJi8+wR+HI9Fo4ONhTXitT71CB0TpyXr2LVdHmZr1rG6egCjiIGybpt4e+JkEREKUMINOR9qhwxh0xfs7I0oXCYpEbs0fh34fq7e3vg/Bf1q3P8Vw7VICu/+4xIGVYVwPSbB2d/D1cOS7x1uy9NkONPB1IynDwPurzzLkh30cC7/14AbM7EBYHEN+2MfZ6GS8XOxZNKEdkyyYUAHUaXNn96gjUj3GNMDWgsFXYdja2dCqnxoEHN8YgTHblOfj3B3teKu/mrHuu22XLX7iHxKbwvCfD3AhJhlvVweWPtuRHvXNO23PmG3i759Oc3xTeK77W/YLxMPHifQkPUfWXS1QW6/1qUu9qq7EpeqZuvacWftZECtDVtJ/RX8mbplI/xX9WRmyskjtJGcaGD//CJvO6bC30fLTE60Y0yGoSG3tWxZCVlo23gGuNO9jhmA29SYsfxoUIzQdCa2fLn6bQogCS1y+nNBevYkcP57QXr1JXL7c2l0SZiJBkbhXp5fVH4A1k+HyZuv2p4iq169EvfZVUUwKm+ecIz3ZOleu/619rcqsf7kL0x5ujLujLedjkhkx6yCDf9jLW8tOMWfvFfaFxBGXmmWR7SuKwtx9Vxk79wi30vQ0qebO2pc606mOZRMqGA2mnGQbDTv5Ub1+JYtur7Aad1XXe6TcyuTSofyv/o1sE0BDP3eSM7P5eusli/XnyNVbPDrzANGJGdTydmHVi53MvhbNZDSxdd45Is/Fc2xDOMnxGTm/s7Wzodvj9QBIuZWJUoARTQdbtairjVbDulPX2XAm/1E3c9Ol6Zh2cBomRQ1oTYqJaQenFXrE6EZKJo//cohDV27h6mDLgqfb8lDTomVGDD8TR8jRWDQa6DmmQfHXTZqMsHISpMSAd30Y/I0kVhCiBBl0OmI+mAqm2xfOTCZiPpgqI0blhNQpEnnrMx3S4uDUn/DXUzBujUVSdVuSRqOhxxMNuBmZSkJMGlvmnuPhV1uUiuxvtjZanupUg0HN/Phi0yX+Oh7F2ehkzkYn53qct6sDDXzd1B8/dxr4ulHHxxXHIk7BydAbmbLyNKuDrwMwvGU1Ph3etMjtFcbxTeEk6NJxcren06N1CvakHZ/AxfXg3xICO0JQJ/CqZZETQVt7G1r2C2T/8lDO7Y2mURf/PB9no9UwdUgjHv/1EH8cjmRMhyAa+Jp3HeOGMzG8tjQYfbaJVoGezHmqLV5mXn+mmBR2Lr5E2ImbaG01PPR8M9wrO+V6TGCjyoz4Txuq1ij462tW3ZMXutfmx52hvL/6LO1relHZ1Qyppx8gMjkyJyC6w6SYiEqJwtelYOubIuLTGDv3CJG30vF2tWfB0+1oUq1ogag+M5vdf6pBc/PeAfgEmeEY2fMFXNkFds4wciE4uBa/TSFEgenDI+4GRHeYTOgjIrHzLfvrKCs6SbQg8mc0wJInIGQLOHrChM3g08DavSq0WzFpLPvsGNlZRto8VIP2D9eydpfuEZ2YwZlriVyISeGSLoWLumQibqWT16fTRquhprcL9X3daOjrRn1fNViqXsnpvlPfom6l89yi45yPSc5ZPzS+U40SSS19KyaNpR8fwWRUCrxwn7gQ+LEt8K83wbXq3QApsCNUbawWIjYDg97IuT1qQJRfzaI7Xvj9OBvP6uhcpzK/T2xvtvdx3r6rfPT3eRQF+jWqyvejW5o9aFUUhX1/hXB65zU0Wg0DnmlCrZZVzNZ+VraRoT/u56IuhUFN/fjpyVZmazs/ujQd/Vf0zxUYaTVaNj+6uUBB0dnoJMbPP0Jcqp5AL2cWTmhX5DpEAIfXXuHYhnDcKjsy+oP22DkUcx+G7YRFjwAKPPIrNB9VvPaEEIVm0OkI7dU7d2Ck1VJnx3YJikohyT4nQZF56dNg4VC4dhTcq6lZjjxKvihqcV0+omPrvPMADH65OUGNS3/F93R9NpdjU7kYk8zF24HSRV0KiemGPB/v5mBLvTujSrdHlur7uuHuaMe+kDhe/vMECekGKrvY89OTrehQq+Teg2y9kWMbwkmITWfAs00KFkCsegFO/QFBnSGgnbq4/PoJMP5rGqSDOwS0h6COENgJqrUCW8uPTETdSqf317vRZ5v4dWxr+jUu3heiyaQwY+MFZu9V1++M6xjE1CGNC5X6uaDunLAD9BnfkPodHjw9LD1Zz9G/r9J+SC0cXR+c7v5sdBJDf9qP0aTw4xMtGdws75E3c1oZsjJnCp1Wo2Vqx6kMrzv8gc87EBrHs4uOk5qVTSM/dxZMaIuPW/HSxeszsjm0Oowazb0JbFTMz1rydZjVFdLjoNVT8HDZToIjRFmWuHz53Sl0Wi1+06fhOWKEtbsl8iBBkQRF5pd+C+YNgLhL4F1PHTFy9rJ2rwpt1x+XOL83ms6P1aV5L8ukM7Y0RVG4kZLFhZjk2yNK6k/ojRQMxrw/ytU8nYhJysCkQLPqHswa0xp/T6c8H2tpiqIULCBKiIDvW6qLySftgOqt1fsNGRB9AiIPqEFS1BHQp+R+ro0DVGt9N0gKaFekYsSKopCWqMe1Uv4B1v9tusjPu8IIquzMlte74WBbtNGArGwjby07zbpT6rTGdwc04Pnulkl6EXs1meWfHwOg2+P1aNqjYBc5Vn11gushiTTq4k/PMQUbMf5662W+3x5CJWc7trzenSpulg9WdWk6olKiCHALKNAI0YYzMby2JBi90USHWl78Oq4N7o7Wr3GWw2iA34ZA5EHwbQoTt4Gd9et7CVGRGXQ69BGR2AcFyghRKSZBkQRFlpF0Deb2g+RoqNYGnloL9kWfWmIN2QYjcVGp+NYqXYVTzcFgNHHlZlrOaNLF20HT9aTMnMeMaF2dj4c1KZH1Q3dkZWRj52BT+HVc69+AY3OhVg91PVt+jNkQe1Y9YYw4oP6bdjP3YzRaqNrk7nS7oE7gev8Mbgk6dQ2aPtPIkx+2R5vPAvnUrGx6frmLmylZTBnYICcldWEkZRh4duExDl+9hZ2Nhi9GNGdYy2qFbqcwzuy6hj4zm9YDahT4OddDE1n15QkAHn2ndYE+R/psE0N/2s+FmGT6N67KrDGtS2S6ZkEtOhTBB2vOoigwoLEv3z7eotifj7hrqVSu5mK+17n1A7UmkYM7PLsLKhf+GBNCiIpIgiIJiiznxkWYPwAyEqBOXxj9J9iUoiuqhWQymvI92S0vktINXIpNwc5GQ4sAzxI9IVUUhQ0zz5CelEXvpxrh5V/AIDpFB982A2MWPLUeanYtzEYhPuzuSFLkAUgIv/dxXrXVkaSgztDk0Xum2+kzs1n03kEyUw0PnF627FgUby8/jauDLTvf6lGo0ZDriRmMn3+Ey7GpuDrY8svY1nS2UBZAxaSgKeZUvO2/nefiQR3eAa489p82Bfr8nLuexNAf95NtUvju8RYMbWHZgK8gFEXh220hfLddrR/0RPtAPhrapNhTFRN0aSz5+Ah+tT146Plm2DsVM5fRxQ2wZLR6e+RCaDS0eO0JIUQFIsVbheX4NIAn/gJbJwjdCmteujcLSxmRoEvjr0+PcuXkzQc/uAzzcLajXU0vWgZWKvEr9GEnbhJ+Oo64a6ko/06WcD8HflADooAOUKNL4Taq0YB3HWg1Dh6ZCa+egjcuwIh50PYZdcQIDdwKg5O/w+oXYOUz9zRj72hLi9s1ZY5tjMhV3PTfHm1VnabVPEjNKlyK7ou6ZIb/fIDLsalUdXfgr+c6WiwgCj8dx8ovT5CZmvd6tILqNLwODs62xEWlcmZ3dIGe09jfg5d71QVg6tpz3EjJfMAzLMtoUnhv9dmcgOjV3nX5ZFjxAyLFpLBr8SVM2Qo2tlrsHIs5IpsQAaufV2+3f0ECIiGEsDAJikThBLSDkb+BxgZOL1ELvJZBFw/piI9OY/tv50m6mW7t7pQ7mWkG9i69DECr/kFU9i9g6uD0W3Bsvnq721vmSb3t7q+OBg36El7YD+9eVYP7Tq8AGji/BuJC73la0x7VcXCxJTE2nZCjsfk2r9Vq+GBIIwCWHI3i3PWkB3bpQFgcj808iC45k7o+rqx8sTON/C0zwn3tUgKbfj2L7koSp3ZEFastJzd7OgxTp28dXnuFtKSC1dJ6sWdtGvu7k5hu4H+rzmKtCQqZBiMv/XGCxYcj0Wjgo6GNeb1vPbNcMDi//zrXQxKxtdfSfXT94rWZnQXLnoLMJHW6ct/pxe6fEEKI+5OgSBRevf4w9Cf19sEfYX/Zy4TUbkhN/Gp7oM80sunXs2QbjNbuUrlycGUo6cl6Kvk602ZgjYI/8dBMMKSBX3Oo08cynXOqpB7D/T5S/wU4POueh6mjRYEAHNsQft/RorY1vBjczA9Fgenrzt/3pH9NcDRPzTtCSlY27Wp6sfz5TlSzUOIL3dUk/v75NMZsEzWbe9N2UI1it9moiz8+NdwxZBo5uv5qgZ5jZ6Plq5HNsbPRsPV8LKuDCzbKZE4pmQbGzz/CxrM67G20/Di6FWM71jBL22mJWRxYGQZAh6G1cfcu5v7c8h5cP6keq48tAFvz1qgSQghxLwmKRNG0GA19P1Jvb30fgv+0bn8KycZGS79JjXF0tSMuKpV9f4VYu0vlRvSlBM7vjwGgx5gG2NgV8M9MZjIc+UW93fVNixRovUeHF9R/g/+AjMR7ft2sR3UcnNXRotDj+Y8WAUx5qCEOtloOX73FprP3VjdXFIVfdofx6pJgDEaFQc38WDihHR7OllmXF3ctlfU/nCI7y0j1BpXoP6mJWdbQabUauo9Ws9Z1fKTgi/4b+Lrzau/b0+jWnOOiLrnERoxupGQy6pdDHLpyC1cHWxY83ZZBzR6chryg9iy9jD4jG58gN5r2LGbJgrMr4Miv6u3hs8GzbGbKFEKIskaCIlF0nV+Bji+pt9dMhsubrdufQnKt5EjfCY1AA+f2XufS4XtPZEXhZOuN7Fx8EYDGXf3xr+NZ8CcfnaNOF/KuDw2GWKaD/1azO/g0UkenTi6659f2TrY0762elF49FXffpqp5OvFcN7Uw8CcbLpD5j9FHo0lh2rrzzNiovjcTu9Tkh8fNX5T1jsTYdNZ+H0xWeja+tdx56IVmBQ9OC8AnyJ1uj9fDoZAB3fPda9O0mgfJmdkM+HYvzaZt4YnZh5ix4QLrT18nIj7N7IFSRHwaI2Ye5HxMMt6u9ix5tgOdzLh268rJm1w5eROtVkPPsQ0Ln2nxn+JCYe0r6u2ub0LdvubppBBCiAcqZmocUd4YdDr04RHY1wgqWO79vh9BWpy6vuivp9RU3QHtLN9RMwlsVJk2D9Xg2N/h7Fp8kSoBbgXPkibukZlmwMHZDmcPIx2H1yn4E/XpcPD2lMyub4BWPYEv9PFYWBoNtH8e1r0Ch39VF7Tb5P6z2KxXAN7VXanR7MEn0s/3qM1fx65xLSGDufuuMrlnHTINRl5bEsymc2rQ/d6ghkzqWsv8r+U2RVHYtuA8Gcl6vANcGfxSc+wcLJeGXVEUEnTpePk9+HNja6Plh9Et+c/K05yITCQlM5sDYfEcCIvPeYy7oy1Nq3vQpJoHzap50rSaBwFeTkVao3M2Oonx848Sl5pFoJczCye0o4a3eT/fLp4OePm7ULOZN97VC7h2Li+GDHUdkT4VgrpAj/+ar5NCCCEeSFJyixxFrtJsNMCfo9WMdI6eanFXn4IVdywNTCaFdd8Hk6030f+ZxrhWksKIxWEyKSTHZeDp41zwJx2aBZveBc8gePkE2NiWXNVwQwZ83QgybsHIRdDo4WI1t+rkNV5fegpnextWT+7Mf1ee4VhEAvY2Wr4e1ZzBzfzN1PH8Jcams2fpZfqMb4SzexHWoyhKgaYvZmVks3HWGWKvJDF6avtCraUxGE1cjk3hbHQSp68lcTY6iQsxKeiN92a09HCyo2k1D5pW91D/reZB9Ur3D5QOhMXx7MLjpGZl09DPnd8mtMXHzTKfbWO2CRSKNxq37jU4Ph9cqsDz+8BNCkIKIURxSJ0iCYqKxKDTEdqrd+4U21otdXZsL9gVen0aLBwK146CezWYuAU8ijm3vgRlphmwc7TBppzXLSqVsvXwfQu1MPDgb6DNhOIfj4W1fTrs/QoCO8GEjfk+TJ+ZTVpiFpV88x9tMJkUhs88QHBUIrZaDdkmBXdHW34d14YOtSqbv++3KYpinrTr2Xr44zGIvwKTtoFb1ftuc/XXJ7kekkiNZt4MerFZsTatz1YDpTPRSZyJvhMoJWMw3vs15elslxMg3QmYqnmqgdKGMzG8tiQYvdFE+5pezH6qDe6O5l27ZTIpxZsq909nV8DyCYAGxq6C2j3N064QQlRghY0NZPqcAEAfHnFvzSGTCX1EZMFOQu1d1DTH8wZA3CVY9Ig6YuTsZZkOm5mjS+4TppRbmbh5yYhRQZ3eeY3UhEzaDq6JnX0hp2qd+lMNiNz8oMWTgBmOx8JqOwn2f6cWe70eDP4t7nnI9ZBENs46g4unPaP+1y7fQqharYapQxrxyM8HyDYp+Hs4smBCO+pVdTN/v2/TZ2azYeYZWvYNJKhJMQOvHdPhyi719s5P4OH8s0tqNBq6j67P0o+PEH46jqunblKzeZUib9reVkuTaurUudslS3MCpdPXkm4HS4lc0qWQmG5gb0gce0PurvWq5GxHfV83Dl+9haLAgMa+fPt4C7Ov3co2GFn++XHqtPahZb/A4l1MiQ+Dta+qt7u9JQGREEJYiVwWFwDY1wjKWceRQ6vFPiiw4I04e8HYlepIUdxlWPyYOoJUhpiMJvYvD2Hx1EPcjEyxdnfKhOT4DA6uDuPklkjCjt8o3JON2bDvG/V2p5fB1gEw0/FYGO7+0GiYejuP9NwAXv4uGI0m4qPTuHLq/kV/WwZW4n8PNWRQUz9WvtjZogFRtsHIhplniL6UwPaFFzBkFSO9/OXNavHcO04ugtjz932Kl78LLfqqySj2Lg3BoDdvevs7gdIT7QOZMbwp61/uytlp/Vn7Umc+eaQJj7cNoLG/O7ZaDQnpBg5dUQOi0e0C+enJVhZJZnF8YwTx11I5s/MahsxivN7sLFj+NOhT1FHK7v8xXyeFEEIUigRFAgA7X1/8pk+7eyJ6ew1Hoa/Ke1SHMSvVtUXRx9TkC0aD2ftrKRqNhsTYdIwGE5t+PUNWetnpuzUoisLuPy6TnWXEr44H9dsX8ng5twoSroJzZWg9Pudusx2PhdHhRfXfsysg5d70244udjS7nW756N/hKPepWwTwTLda/PRkK3w9LDfiaDSa2Dz7HNGXErBzsGHQC82KnlQhKRpWPafebv8CNBwCiqlABZrbPFQT10oOpNzK5PjG8KJtvxAcbG1oVt2TJ9sH8dmjzfj7FTVQWjO5Mx8Na8I3o5rz6SNNsDHX9LZ/iI9O5cSmCAC6jqp3zyhzoWz9AGJOgZMXPDrnniQfQgghSo4ERSKH54gR1NmxncDffqPOju1FX9Tu0wCeXAa2TmryhTUv3TsVqpTSaDX0Ht8INy9HkuMy2f7bhRKrpVLWGI0m9i65TOS5eLS2GnqOaZDvlLI8mUzqOh5Q6wXZ516nY7bjsaCqt4bq7cCoh2Pz8nxIi96B2DnYEH8tlaun75+i29IUk8L2BRcIPx2Hja2WQS82o2rNIq6nNGbDiomQkQB+LaDvNOgzDbS2ELoNQrff9+l2DjZ0HVkPgJNbIknQlfwIsaOdDc0DPBnbIYhHWlY3z/qqfzGZFHb+fhGTSaFmc29qtyr6VEEurL87KvnIL+BRzTydFEIIUSQSFIlc7Hx9cWnfrvhX5APawcjfQGOjpuve9oF5OlgCHF3s6P9sE7S2Gq6eiuPU9ihrd6nUyUjRs+67YM7sjgagy4i6900+kKdLG+DmBXBwh7bP5PkQsx2PBdXhefXfY3PVqU3/4uhql1Oc8+jfV60WMCuKwu4llwk5GotWq2HAs02oVr9S0Rvc9SlEHlT3xWPz1WmMlWvf3S9b3gfT/aeJ1WzhTVCTynj4OBdvCl8pZTSa2P3nJWKvJmPvaEO3x+sXPfBKiIA1t0cmO70C9fqZr6NCCCGKRIIiYTn1+sPQH9XbB36A/fkv2C5tqtZwp8uIugAcXBlGTFiSlXtUeiiKwsZZZ4i+nIidgw0Dn29K0x6FzDSoKLD3S/V2u2fAydPs/SyShg+ra+LSbqrT6PLQok8Atg42xEWlEn4mPs/HWNqV4Juc2xMNGujzdKMC1VDKV+h22Pu1envId+D1jxpK3d8BRw+4cQ6CF9+3GY1GQ+/xDRn1v7b4BJW/DKBb5pzj/N7roIFuj9fDtZJD0RoyGtRMc5lJUL0t9C47F4yEEKI8k6BIWFaLJ6DvdPX21vch+E/r9qcQmnSvRp3WPphMClvmnC2XV7+LQqPR0HlEXbz8XXj03dbUalGEKURh2+H6SbBzvruWpzSwsVMz0QEc+lkN3v7FydWeZj2qgQZuRCSXcAdVtZpXoVbLKvQa25C6bfNPmf1AKTpY+SygQJsJ0GR47t87e0G3t9XbOz6BrNT7Nufkao+Nbfn8WmnQ0Q87Rxseer4p9Tv4Fb2h7dPV9ZaOHvDoXPWYE0IIYXVSp0hYnqLAlvfg4O1RI+966tqNgNs/3vXvzTRWSugzs1nzzUla9A2kbptinHyWcYpJIf56Kt7V3XLdV6g1RP80b6Ca/rrDizBghpl6aSbpt9RirtkZMH4D1Oh8z0MyUw2kJ+vx8i/klMFiCD1+g6AmlXMSKRS7LpHJqNYWC98LVZvApO1gl0dSiOws+KkdJISr2dF6Tnlg08ZsE8HbItFnGuk4rHbR+2hl2QYjtv/IXpeZZiheYoXLW9QaUACjFkPDwcXsoRBCiPwUNjYonWeionzRaKDvR+qVaFDTdQf/DutegZ87wOc1YNFw2PUZhO2ATOtcfc+LvaMtI95tkysgMhrLRtIIc9FnZLNh1hmWf34818hIkQOiiANqQGRjr6bhLm2cvaD54+rtQz/n+RBHV7sSC4iy9UZ2LLzA5tln2f3HpZx1TMVOJLDnSzUgsnOBxxbkHRCBur6oz4fq7QPfQ3LMA5vWhSVxaPUVTm6O4GZU2Uxtf+mwjsUfHCI5LiPnvmIFRLmy+z0vAZEQQpQyEhSJkqHVwuBv4O0rMHopdHkDanRVp09lJanTqXbNUIu+fhYIP3eCda9C8B8QF5rnNKaS8s+T/8Qb6Sx+/xBXgu9fp6a8SIxNZ/nnxwg/HQcKJMdlFr/RPbfXErV4Qq0PVBq1v51w4eLf6gjJfSTdTLfYib/6/h/nwoEYNBrwrOpknoav7oXdn6m3h3wL3nXv//hGw9TRXUM67Pz4gc1Xq1+JOq19UBTY8+elB6YvL00UReHw2itsm3+e1ISsnGQixWLMhhWTIOMW+DW/O6VYCCFEqSHT54R1GbMh9ixcOwpRhyHqCCRG3Ps4Jy91ql31thDQHqq1uieFc0nYsegCF/arV8qb9qxO5+F1sLErn9cWIs/Fs2XuObLSs3HxdGDg802pWqOYn63oEzC7p5qV8OXj4FXTPJ21hEWPqCOXHV+C/p/k+ZCQo7FsnX8enyA3Hn2ntVnTQIcev8GORRcwZBpxcrOj38TGVG/gVfyGU2/CrC6QqoOWY2DoTwV7XtQRmNsX0MDze8G36f03k5DFHx8ewpBlpOfYBjTqXEoD4H/I1hvZvvACocfUIsSt+gfSYWjtoo+K3rHjY9jzBdi7wXO71cx+QgghLMri0+f27NnDkCFD8Pf3R6PRsHr16ly/j42NZfz48fj7++Ps7MyAAQMICQm5b5sLFixAo9Hk+nF0tFzBQ1GK2NiCfws1A9mjc+C10/DmZRj1u5qqNqAD2DioV1gvb4IdH8Fvg2FGAMzqCn+/Baf/Uq/ml0B83310fVr0CQDgzM5rLP+/YyTGplt8uyVJURRObolk/Y+nyErPxreWO49NaVP8gAju1iVqOqJ0B0SgFjAFOLEQsvIeCfKv54nWRkPs1WSiLtwyy2aN2Sb2/nWZzbPPYshUi+KO+l878wREJhOselYNiKo0gIH/V/DnBrSDxo8At9cIPuDz5lrJgXZD1H18cGUYmamluxByerKe1d+cJPTYDbRaDT3HNqDjI3WKHxCF7bw7OjrkWwmIhBCilCp0UJSWlkbz5s356ad7ry4qisKwYcO4cuUKa9as4eTJkwQFBdGnTx/S0u5fzM/d3Z2YmJicn4iIPEYLRMXgVhUaDoF+H8HEzTDlmroIvP8MdRqPezVQjKA7DUdnw8pn4Lvm8GU9ODLbol2zsdXSeURdBk1uhqOLHXFRqfz16VEuHdZZdLslKfT4DQ6sDEVRoGFnP4a93goXjyKmH/6nGxfg4npAo06fLAUMOh1phw5j0OWx/+r0gcp1ICs536yJLh4ONOmqFt08uj7cLHWLMtMMhByNBdSRimGvt8TF0wzvP8D+b9XRL1sndR1RPqOt+b4vvaeqa8Gu7FKLuj5A057VqVzNhcw0AwdXhxW7+5aSdDOd5Z8dI/ZqMg7Otjz8agvzjGylxN7N7td6vHox4D7uezwKIYSwKNvCPmHgwIEMHDgwz9+FhIRw6NAhzp49S+PGjQGYOXMmvr6+/Pnnn0yaNCnfdjUaDb4lVaBRlC229lC9jfrT8Xb65qRr6nSeO9PuYk5D2g3Y8LZaZ6VOb4t2qUZTb0a9146t885xPSSRbfPPo7XRlIsMdbVb+VCzeSzVG3jRtEc1800Ju1MLp+EQ8GlgnjaLIXH5cmI+mKqOnmi1+E2fhueIf5y0arXq2qINb8HhmWqq7jyyJLbsH8jZPdHoriRx7WICAQ2LN6Lj4uFAv4mNMWQZqdm8COnO8xN5SJ3GBfDQF+DTMM+H3fd98aoJ7Z5VM0lueQ9q9VRHe/NhY6Ol2+j6rPryBJcO6Wg3uKb5AjwzcvZwwMnNDq2NhsEvNcezqnPxGzUZ1Qs2aTfApzEM+Oy+D3/g8SiEEMKizLoYIitLrQD/z6lvWq0WBwcH9u3bd9/npqamEhQUREBAAEOHDuXcuXMP3FZycnKuH1GBeFRXa6oMmAHP7IApUdBqHKCoGZ5SYi3eBddKDgx9vSVtB9XAt5Z70er1lBI3IpLJNqh1mLRaDQOfb0qzntXNFxDdugJnl6u3u71lnjaLwaDT3T0BBTCZiPlg6r1X6JuPBgcPtf8hW/Jsy8XDgUZd1VGFo39fLfRokcmkLuwPO3Ej577qDbzMGxCl31ILhipGaDZKXUuUhwK9L93eAqdKcPMinFz4wE371/Gky2N1GfVe21IXEN3ZV3b2Njz0YjNGvNvGPAERqBcBru5Wk8k8tgDs8k+SUeDjUQghhMWYNShq0KABgYGBTJkyhYSEBPR6PZ9//jnXrl0jJib/NK7169dn3rx5rFmzht9//x2TyUSnTp24du1avs+ZMWMGHh4eOT8BAQHmfCmirLFzUtdH+DSGtJvqFVqT5YutarUa2g2pxSNvtsopWmk0mgg5FmuWqVQl4fy+66z4v+PmTff8b/u+BcUEdfqq2besTB8ecfcE9A6TCX1EZO77HFyh9Tj19uGZ+bbXql8QWlsNMaFJRF9OLHA/0pP1rPs+mGMbwtmx8AIZKfoCP7fAFAVWvwDJ0ep0wEFfqWny81Cg98WpEnR/V72989N811v9U/PeAVTyLfnEKPkxGU3s+fMSR9dfzbnPxcMBR1czFVIN3w+7PlVvD/oaqtS778MLfDwKIYSwGLMGRXZ2dqxcuZLLly/j5eWFs7MzO3fuZODAgWjvU5yzY8eOjBs3jhYtWtC9e3dWrlxJlSpV+OWXX/J9zpQpU0hKSsr5iYqKMudLEWWR3e11EnbO6hXafV+X2Ka1NneP7yNrr7Blzjk2/3qWrPTSu7jcePvEcOfvFzEZFQxZRkxGCwRySdFqanUoFaNEAPY1gu6dCqfVYh8UeO+D2z0LGq26jib2fJ7tuVZyoHFnf+ydbElNKFja8uuhifz1yRGuXUzA1l5L9yfq4+RmX8hXUgAHf1KTlNg4qJ8PB7d8H1rg96XNRHWaatpNNeAthBsRyaQlZRXqOeakz8jm759Pc2Z3NEc3hHMr5v7rXQstLQ5WTFQvAjR/AlqMfuBTCnU8CiGEsAiz5xJu3bo1wcHBJCYmEhMTw6ZNm4iPj6dWrVoFbsPOzo6WLVsSGhqa72McHBxwd3fP9SMEVerBQ7czPe38VC0UWsKc3R3Q2mgIO3mTpR8fRXclqcT78CAZKXrWfRecU4Ol/cO16P9Mk5zRLrM68AOYDBDUBQI7mL/9IrDz9cVv+rS7J6K313DY5bWu0TMQGtwutHl4Vr5tthtSi3GfdKRBB7/7bltRFE5siWD11ydJS9JTydeZx/7TlnrtLLCm8tpx2DZVvT1gxgPTaBf4fbG1v1tr5+CP6hq/AgjeFsmyz46xf3n+f9stKTkugxVfHCfy3C1s7bQMeLYJXn5mHMEymWDV85ASA9711LVbBVCo41EIIYRFFDrRQkF5eHgAavKFY8eO8dFHHxX4uUajkTNnzvDQQw9ZqnuiPGvxBFzdA6eXqAUTn98HzmZIZ1xAzXsH4Fvbgy1zzpIcl8mqL0/QfmgtWvYNLH56XzOIu5bChp/PkHIrEztHG/o+3ci861f+KfUmHF+g3u72pmW2UUSeI0bg0qUL+ohI7IMC738C2uFFuLAWTi9VM7C5VL7nIQWZemUymtj061munooDoF67qnR/oj72jhb4U5yRCMvHgylbzdrYZkKBnlbg96XBYAjsBJEH1AQOj+QfMN7hX9cTUOs7efm7ENS4MpWrueQaabUU3ZUkNsw8TUaKAWcPewa92AyfIDNfTDv4A4RuBVvH26NyrgV+aqGORyGEEGZX6G/i1NTUXCM4V69eJTg4GC8vLwIDA1m2bBlVqlQhMDCQM2fO8OqrrzJs2DD69euX85xx48ZRrVo1ZsyYAcD06dPp0KEDderUITExkS+++IKIiIj7ZqsTIl8ajbpuIvoYxIeq6ylGL8l3HYUlVK3hzsj/tWPX4ouEHrvBwVVhRF9KoPf4Rji7W2CKVAEZDSb+/uk0qQlZeFRx4qEXmuHlb8G1Hod+huwM8G+lZiorZex8fQt28hnYQV0LFXMKjs+/7zRARVGIunALJ1d7qgTmnqqmtdHiVtkRra2GriPr0birv/nXb6mdgLUvQWIkVKoBD39fqOO/QO+LRgP9P4bZveDUn2qmPv8W932KT5A7TbtV48zuaA6vucLhNVewtddStaY7zXoGWCxZScixWLYvuIAx24R3gCuDXmyGayUz18KLOgLbb4+eDfwcqjYudBMFPh6FEEKYXaEvzx07doyWLVvSsmVLAN544w1atmzJBx98AEBMTAxjx46lQYMGvPLKK4wdO5Y//8xd4yMyMjJX4oWEhASeeeYZGjZsyEMPPURycjIHDhygUaNGxXltoiJzcIUR89V1FJc3qSfnJd0FJ1v6TWxMzzENsLXTcj0sCX1Gdon3459s7LT0HNuAoCaVGfGfNpYNiDIS4egc9Xa3t0o0KDU7jUYdLQL1NRnzXyt2YnME674/xYGV6sUjRVHXa93RaXgdRk5pS5NuZkx3/m9H58CFdaC1Uz8Hjh6W2U611tD0MfV2AQq6AnQeUZdOw+sQ2LgyDs62ZOtNRF9KJCv97mcj7loqOxZe4Pz+69yKSUMxFW+tm9FgwphtokYzbx55s5X5A6KMBDW7nykbmjwKrZ4yb/tCCCEsTqOUlRRZD5CcnIyHhwdJSUmyvkjcdWS2WmdGawcTt0C1VlbpRvz1VJJvZuSapqYoiuVOiv+xjZT4TDJSDFSt6Z7rfktvm91fwM6PwacRPL8/zxo/ZUp2FnzTRK078+jcfAtxJsdnsPj9Q5hMCkNeac6lwzpS4jMZ9nrLEpkmxvVgmNsXjHq1Nk6HFyy7vcRI+KENGLPUEdn6edexy4tiUkjQpaO7kkRgY6+cYOXU9ij2LQvJeZyDsy2+tTzUn9oeVK3pjp29TaG6GXE2noBGXmjNPYVVUWDpGLUwcaWa8NwecJTvICGEsLbCxgYSFInyTVHgr3HqepBKNW6fsFjoqnkhRF9K4Mj6q/R5uhFuXua5aq27koTuShLJcZkkx2eQHJdJSnwG2XoTDs625q3B8iBZqfBtU8i4dd8AoszZ9bmaarlaG3hme74P27noAuf3x4AGUECj1TD0tRZUq1fJsv3LTIZfu6t1leoPgscXl8wI3dapsP9bqFwXXjwINsVLbX0jIpmwkzfRhSVxIzyZbEPudNWPvNkS/7rqe5lyKxNFUXDzcswJ9DNS9Oz9K4Quj9W1/HTVQ7Ng07tgYw8Ttz5wCqEQQoiSUdjYwGKJFoQoFTQaePgH9ep5Qjise1WdTmTFqVyKSWH3n5dI0KWz9JMj9B7X8L6JDrINRlLiM0mOzyQlLiNX0PPwKy1yFviHHI3l9M48soBp1JTR/5zCZXHH56sBkVctaPxIyW3X0tpMgL1fquvVoo5CQNs8H9Z6YA0uHtRhMik4e9jTf1KTnCQDFqMosP41NSDyCIChP5bccd71DTi5COJD1MQa7Z4pVnM+Qe45SRCMRhPx11KJCVOD/hvhyVT5R4KE4K2RnN55DRcPe3xre+AT5M65vdEkx2WSlZ7NkJctWBcr+oQ6bRCg3ycSEAkhRBkmQZEo/5w8YcQ8mD8Azq2Cmt2hzdNW645Gq2HQ5GZsmXOOGxEpbJh5hmY9q1OrRRWS4zOo3conJxvZodVhHN8UkW9byfEZOUGRb20P0pP1uHs74lbZCXdvR9wrO+Hm5YiNXQlOXTNkqmm4Abq8DtrCTXMq1VyrqGtogher69QC5uf5MHdvJ3qObcCN8GTaDKpZMsk1TvwGZ1eA1lY93ksw4yKOHtBjijpVddcMaDbSbCOyNjbanCCpea97i3TrM7LRajWkJekJO3GTsBM3AXD3dqTLY3XM0oc8ZSbB8qfVdPMNBhc7EBRCCGFdMn1OVBz7v4OtH6jpcp/ZUaTsUOZkzDZxcHUYp7blLjz82JQ2OVfJg7dFsn95KLYONrhXdsTd+26w4+7tiH9dTxycizdVyeyOzoG/3wT36vDKSbWmTXkScxp+6QoaG3jtDHhUs3aPIPacmgUuO1OtH9T51ZLvg9EAP3dUR4s6vwZ9p5XYpg16Izcjkm+PJiXj5GZHx0dq4+RqoWNPUdSA6Nwq8AiE5/eAk4WnRgohhCgUWVMkQVGpZdDp0IdHYF8jyCJpZx/YvskEf4xU64h414Nnd4G9BbOvFVD4mTgOrAjFZFRw93ak4yN1clI5Z6UbMBkVHF3tLJ8YwRyMBvi+FSRFwsD/g/bPWbtHljF/EETsU0fC+nxo3b5kpcLsnhB3Ger0hSf+sl5Si4sbYMloNevjy8fUwrfl0bF5sP51dVRuwmao3sbaPRJCCPEvhY0Nyng6KFFWJC5fTmiv3kSOH09or94kLl9e8u1rtWqBSTc/9QRywztm7UNR1WjqzRMfdmDMRx15+NWWuWrbODjb4eRmXzYCIoAzy9SAyKUKtBpn7d5Yzp2MbscXgD7dql1hw9vq8ezmB4/8Yt0sf/UHQo2uaia6OzV7yhvdWdj4H/V2nw8lIBJCiHJCgiJhcQadjpgPpqojNQAmEzEfTMWg05V8+y7eMHw2aLQQ/Duc/sssfRCAyQh7v1Zvd5wMdk7W7Y8l1R8InkFqfZrTS63Xj+A/4NQf6vH86FxwqWy9voCa2KHfx+rtM8vg2nHr9sfcslJg2Xg16KvbHzpMtnaPhBBCmIkERcLi9OERdwOWO0wm9BGR1mm/ZlfodnuUaP3rEBdqln5UeBfWqutJHD2gzURr98aytDZ3pwYenlWgoqVmd/OSunYLoMd/oUbnku9DXvxbQLPH1dsFLOhaJsSHwdz+6jHu5g/DZpb92ltCCCFyyF90YXH2NYLuPXnQarEPMs96gyK13/0ddZqPPhWWj1czpomiUxTY85V6u/3zFaN4ZcsxYO8KNy/ClZ0lu+3MZHXEwpAOtXqoKbFLk97vqwlNIg+oRU3Lukub4NeecOMcuPjA479bf1ROCCGEWUlQJCzOztcXv+nT7gYuWi1+06eZLdlCkdrX2qjT6Jwrg+4MbH3fLH2psEK2QOwZNUho/7y1e1MyHD2gxZPq7UMzS267lzerWd5unFdP0IfPLn1pzz2qQ8eX1NtbP4BsvXX7U1QmE+z8FP4cBVlJUL2dWgC6Wmtr90wIIYSZSfY5UWIMOh36iEjsgwItl32usO2HbIXFI9Tbo36HhkPM3q9yT1Fgbj+4dgQ6vQL9PrJ2j0pOfBj80BpQ4KXj4G3BujipN2HTu2otIlDXNI2YD9VL6Ql6Vgp83xLSbsKAz6FDGQuW02/BymfVbJUAbZ+B/p+WvxTzQghRTkn2OVFq2fn64tK+nUUCoiK3X7eveiIPsGYyJORfKFXkI3yvGhDZONwdHagoKteGegPU24dnWWYbiqImVPiprRoQabTqMfviodIbEAE4uEHP/6q3d3+mJqUoK2JOw6891IDI1lHN6jfoSwmIhBCiHJOgSIjeH0C1NmqF+hUT1Vo7ouD2fKn+22ocuFW1bl+s4c4ISPAfkJFo3rZvXYVFw2D1C2pQ4dtULTzc7yOwdzbvtiyh5Tio0kDt+53jpLQL/hPm9oXECHU0buJWaP64tXslhBDCwiQoEsLGDkbMAwcPuHYUdnxs7R6VHcF/wNXdahHLzq9auzfWUbM7+DQCQxqcXGSeNo3ZsP97de3QlV3qaEWfafDMTvBvaZ5tlAQbW+h7ezrlkV/VIK+0ytar2fxWPw/ZmWoh3Gd3gV8za/dMCCFECZCgSAiASkEw9Af19v5vIWSbVbtT6pmMsHWqOoIB0HYSeAZYt0/WotHcTS5x+Fc1oCmOmFMwp5ea/CM7Q82S+MIB6PKaGsCXNXX7qhnyjHrYPs3avclb8nVYMAiOzlH/3/1deOIvcPaybr+EEEKUGAmKhLij0VD15B5g1XOQHGPd/pRWWSmw5Ek1eATo+ib0n2HVLllds5Hg5AVJkXBpQ9HaMGSogeavPdXAyNEDHv4Rnlqnrl0qq3IKumrg3CqIOmLtHuUWvh9+6a6ui3PwgNFL1bVQUoNICCEqFPmrL8Q/9fsEqjaF9DhY+Yw6IiLuunUV5vSFyxvVxArD56hrsir6CaSdE7SZoN4uSnruq3tgZic10FSM0GgYTD4KrcaqQUVZ59v0bvryzf8rHQVdFQUO/gy/DYG0G+DTGJ7dCfUHWLtnQgghrKCCn8kI8S92jvDYfLBzUbOqlZXF4SUhfB/M7gU3L4CrLzy9EZo9Zu1elR5tJ6lrqyIPwPXggj0nIwHWvKSemN+6Am7+8PgfMPK38pe0otd7YOesjsicX23dvujT1KQqm6eoQWjTx2DS1rI9IieEEKJYJCgS4t+868Lgr9Xbuz9Tg4GK7th8WDgUMm6pC/2f3Vm600Fbg7sfNH5Evf2g9NyKAudWw4/t7iZnaDsJJh+GBoMs2k2rcfe7m/5+24eQnWWdfsSHwZw+anpzra1aQ2n4bLB3sU5/hBBClAoSFAmRl+aPQ/MnQDHBikmQFmftHlmHMRs2vAPrXwNTNjQeDuM3gLu/tXtWOrW/nXjizHJIic37MUnRsOQJWPaUOm3Lux48vQkGfQWOBS88bdDpSDt0GINOZ4aOl5BOL4NrVUgIh0WPwP7vIPpEyU1TvbRRrT9047zaj6fWqynVCzFFsUy+70IIIR5IoyilYXJ38RW2aq0QD5SVCrN7QtxlqNtPXYBdkdbOZCTAsqfhyk71/z3fg25vlY81LpY0p686Raz7f6DnlLv3m0xwfB5s/RD0KaC1g65vqIkqbB0KtYnE5cuJ+WCq2qZWi9/0aXiOGGHe12Epp5ep6/X4x1ePgzsEdYIaXdRse75NQWtjvm2ajLBrBuz5Qv1/QIfbUxQLV0i6TL/vQghRwRQ2NpCgSIj70Z1V19EYs9QMWp1etnaPSkZcCPz5OMSHqutAHvkFGj1s7V6VDWdXwvKnwaUKvHZWXad28xKsfQWiDqmPqd4WhnwPVRsVunmDTkdor97qifkdWi11dmzHzrdwJ/lWc+MChO2Aq3sh4gBkJeX+vaMHBHW+GyRVbVL0CxLpt9TR3rDt6v/bPad+lm3tC9VMuXjfhRCiAilsbGBbAn0SouzybQIDZsDfb6jrIDyDyn9wELpdHSHKSgL36jD6TylgWRgNh4B7NUiOhlN/QtpNdYTCqAd7V+g9FdpOLPJIiD48IveJOYDJhD4isuycnPs0VH86TlZHcXSn1bV7d4KkzCQ1tfmd9OaOnrcDpNtBkk+jggVJMadg6RhIjARbJxjyHTQfVaQul4v3XQghRL5kpEiIB1EUdbrPmWWABgZ+Du2fs3avzE9R1AQBm/+rrqUKaA+jfgdXH2v3rOzZ940aRP9T3X4w6OtiF7kt9yMWxmzQnbobJEUeBH1q7sc4eUGNzmqAVKMLVGl4b5AU/Aesfx2yM6FSDfVY9m1a5G6V+/ddCCHKGZk+J0GRsARjNmx8G47NU//f6WXoM738rDHK1sOGN+HEQvX/LZ6Ewd8Ueq2LuC39FnzdCLIzwNlbDaSbPGq29VgVam2LMRtigtUU+eH7IOIgGNJyP8a5sjrdrmY3COyofk6PzVV/V7cfDP8VnCoVuysV6n0XQogyToIiCYqEpSiKOgKwfZr6/8bDYdhMdc1IWZYWD3+NhYj9oNFC3+nQ8SVJqFBclzbB9ZPqqKKzl9mbN+h06CMisQ8KrFgjFUaDWgcqfI8aJEUeAkN6Hg/UQI//QLd3zHrxosK+70IIUcZIUCRBkbC0U0thzWQwGdSr048vNstVaKuIPacmVEiMVDOAPToX6vWzdq+EKLhsvRp85gRJh8HBFYb+BPX6W7t3QgghrESCIgmKREm4sguWjoWsZPCuD2OWg2egtXtVOBc3qGul9KlQqSaMXgI+DazdKyGKx2hQi7LKSKcQQlRohY0NysmCCCFKWK0e8PRGcPOHuEswp4+a6aosUBTY+7VaQFSfqi5Wf2aHBESifLCxk4BICCFEoUlQJERR+TaBSdvU9MCpsTD/IQjdZu1e3Z8hE1Y+e3tdlAJtJsLYVRZZ8yKEEEIIUVZIUCREcXhUgwmb1NEWfSosHgknf7d2r/KWooMFg+DMX6CxgYe+hMFfq1fWhRBCCCEqMAmKhCguRw8YsxKajgTFqCZh2PW5Ok2ttLh+En7tCdHH1EKYY1dBu2es3SshhBBCiFJBgiIhzMHWXq2F0uUN9f+7PoW1L6uLvq3JkAFHZsO8gZByHbzrqeuHanW3br+EEEIIIUoRW2t3QIhyQ6OBPlPVKXUb3oaTiyAlBh77TU0RXJKSr6vB0PEFkHFLva9OXxgxVx3ZEkIIIYQQOSQoEsLc2k5Ss9Itn6AmXljwEDyxDNyqWn7b147DoZ/h/GowZQNgsA1AX+1h7HtNxs4CAZFBp0MfHoF9jSApZikKxJLHjByPQgghikLqFAlhKdeOwx8jIT0OPALVWkZV6pt/O0YDXFgLh2bCtaN37w/qTGJqa2JmrgSTCbRa/KZPw3PECLNtOnH5cmI+mGqx9kX5Y8ljRo5HIYQQd0jxVgmKRGkSHwaLR8CtK2qCg9F/QlAn87SdfgtO/KZOk0uOVu+zsYcmI6DD8xg0VQnt1Vs9QbxDq6XOju1muYJu0Oks2r4ofyx5zMjxKIQQ4p+keKsQpUnl2jBxK1RvC5mJsHAYnFtVvDZvXIR1r8HXjWDbh2pA5FIFuv8HXjsLj8wEv+bowyNynyACmEzoIyKLt/3bLN2+KH8seczI8SiEEKI4ZE2REJbm4g3j1sKKSXDpb1j2tJoIoePkgrdhMkHYdnWKXNj2u/f7NoUOL0KTR8HWIddT7GsEgVZ7z5Vz+6DAYr6gkmlflD+WPGbkeBRCCFEcMlIkREmwd4ZRi9QkDCiw+b+wacq9V7b/TZ8GR+fAT+3UaXhh2wENNBgM4zfAc3uhxRP3BEQAdr6++E2fpp4oQs4aC3NNJbJ0+6L8seQxI8ejEEKI4pA1RUKUJEWB/d/Btqnq/xs+rNY3snPK/bjEKDjyq7pmKDNJvc/BHVqOVYuuetUs8CYNOh36iEjsgwItcoJo6fZF+WPJY0aORyGEECCJFiQoEmXDmeWw6nkwGSCgg5qAwakSRB1WU2pfWA+KUX1spZrQ4QV1RMjBzbr9FkIIIYQoAwobG8iaIiGsoekIcPWBJWMg6hDM7asGPNdP3n1Mze7qeqG6/e5OCRJCCCGEEGYnQZEQ1lKzG0zYBIsfg/hQ9T4bB2g2Uh0ZqtrYuv0TQgghhKggJCgSwpqqNoJJW2H7R1C5FrR+Ws1WJ4QQQgghSowERUJYm7u/WltICCGEEEJYhSxUEEIIIYQQQlRoEhQJIYQQQgghKjQJioQoAINOR9qhwxh0ujLZvih5sk+FEEKIskOCIiEeIHH5ckJ79SZy/HhCe/UmcfnyMtW+KHmyT4UQQoiyRYq3CnEfBp2O0F69wWS6e6dWS50d27Hz9S317YuSJ/tUCCGEsL7CxgYyUiTEfejDI3Kf3AKYTOgjIstE+6LkyT4VQgghyh4JioS4D/saQaD918dEq8U+KLBMtC9KnuxTIYQQouyRoEiI+7Dz9cVv+rS7J7laLX7Tp5ltGpSl2xclT/apEEIIUfbImiIhCsCg06GPiMQ+KNAiJ7eWbl+UPNmnQgghhPUUNjawLYE+CVHm2fn6WvTE1tLti5In+1QIIYQoO2T6nBBCCCGEEKJCk6BICCGEEEIIUaFJUCSEEEIIIYSo0CQoEkIIIYQQQlRoEhQJIYQQQgghKjQJioQQQgghhBAVWqGDoj179jBkyBD8/f3RaDSsXr061+9jY2MZP348/v7+ODs7M2DAAEJCQh7Y7rJly2jQoAGOjo40bdqUDRs2FLZrQgghhBBCCFFohQ6K0tLSaN68OT/99NM9v1MUhWHDhnHlyhXWrFnDyZMnCQoKok+fPqSlpeXb5oEDBxg9ejQTJ07k5MmTDBs2jGHDhnH27NnCdk8IIYQQQgghCkWjKIpS5CdrNKxatYphw4YBcPnyZerXr8/Zs2dp3LgxACaTCV9fXz799FMmTZqUZzujRo0iLS2N9evX59zXoUMHWrRowaxZswrUl8JWrRVCCCGEEEKUT4WNDcy6pigrKwsAR0fHuxvQanFwcGDfvn35Pu/gwYP06dMn1339+/fn4MGD991WcnJyrh8hhBBCCCGEKCyzBkUNGjQgMDCQKVOmkJCQgF6v5/PPP+fatWvExMTk+zydTkfVqlVz3Ve1alV0Ol2+z5kxYwYeHh45PwEBAWZ7HUIIIYQQQoiKw6xBkZ2dHStXruTy5ct4eXnh7OzMzp07GThwIFqteRPdTZkyhaSkpJyfqKgos7YvhBBCCCGEqBhszd1g69atCQ4OJikpCb1eT5UqVWjfvj1t2rTJ9zm+vr7Exsbmui82NhZfX998n+Pg4ICDg0PO/+8sjZJpdEIIIYQQQlRsd2KCgqZPMHtQdIeHhwcAISEhHDt2jI8++ijfx3bs2JHt27fz2muv5dy3detWOnbsWODtpaSkAMg0OiGEEEIIIQSgxgh34pL7KXRQlJqaSmhoaM7/r169SnBwMF5eXgQGBrJs2TKqVKlCYGAgZ86c4dVXX2XYsGH069cv5znjxo2jWrVqzJgxA4BXX32V7t2789VXXzFo0CCWLFnCsWPH+PXXXwvcL39/f6KionBzc0Oj0RT2ZZUZycnJBAQEEBUVJVn2yhHZr+WP7NPySfZr+SP7tPyRfVo+FXa/KopCSkoK/v7+BWq/0EHRsWPH6NmzZ87/33jjDQCeeuopFixYQExMDG+88QaxsbH4+fkxbtw43n///VxtREZG5lpj1KlTJ/744w/ee+89/vvf/1K3bl1Wr15NkyZNCtwvrVZL9erVC/tyyix3d3f5oJdDsl/LH9mn5ZPs1/JH9mn5I/u0fCrMfi3ICNEdxapTJEqe1GMqn2S/lj+yT8sn2a/lj+zT8kf2aflk6f1q3pRwQgghhBBCCFHGSFBUxjg4ODB16tRcmfdE2Sf7tfyRfVo+yX4tf2Sflj+yT8snS+9XmT4nhBBCCCGEqNBkpEgIIYQQQghRoUlQJIQQQgghhKjQJCgSQgghhBBCVGgSFAkhhBBCCCEqNAmKSoEZM2bQtm1b3Nzc8PHxYdiwYVy6dOmexx08eJBevXrh4uKCu7s73bp1IyMjI+f3t27d4sknn8Td3R1PT08mTpxIampqSb4U8Q/m2q81atRAo9Hk+vnss89K8qWI2x60T8PDw+/ZV3d+li1blvO4yMhIBg0ahLOzMz4+Prz99ttkZ2db4yVVeObap3n9fsmSJdZ4SYKC/f3V6XSMHTsWX19fXFxcaNWqFStWrMj1GPleLT3MtU/lO7V0Kch+DQsL45FHHqFKlSq4u7szcuRIYmNjcz3GHJ9VCYpKgd27dzN58mQOHTrE1q1bMRgM9OvXj7S0tJzHHDx4kAEDBtCvXz+OHDnC0aNHeemll9Bq7+7CJ598knPnzrF161bWr1/Pnj17ePbZZ63xkgTm268A06dPJyYmJufn5ZdfLumXI3jwPg0ICMi1n2JiYpg2bRqurq4MHDgQAKPRyKBBg9Dr9Rw4cIDffvuNBQsW8MEHH1jzpVVY5tind8yfPz/X44YNG2aFVySgYH9/x40bx6VLl1i7di1nzpxh+PDhjBw5kpMnT+Y8Rr5XSw9z7VOQ79TS5EH7NS0tjX79+qHRaNixYwf79+9Hr9czZMgQTCZTTjtm+awqotS5ceOGAii7d+/Oua99+/bKe++9l+9zzp8/rwDK0aNHc+7buHGjotFolOjoaIv2VxRMUfaroihKUFCQ8s0331i4d6Io8tqn/9aiRQtlwoQJOf/fsGGDotVqFZ1Ol3PfzJkzFXd3dyUrK8ui/RUPVpR9qiiKAiirVq2ycO9EUeW1X11cXJSFCxfmepyXl5cye/ZsRVHke7W0K8o+VRT5Ti3t/r1fN2/erGi1WiUpKSnnMYmJiYpGo1G2bt2qKIr5PqsyUlQKJSUlAeDl5QXAjRs3OHz4MD4+PnTq1ImqVavSvXt39u3bl/OcgwcP4unpSZs2bXLu69OnD1qtlsOHD5fsCxB5Ksp+veOzzz6jcuXKtGzZki+++EKmWpUS/96n/3b8+HGCg4OZOHFizn0HDx6kadOmVK1aNee+/v37k5yczLlz5yzbYfFARdmnd0yePBlvb2/atWvHvHnzUKQMYKmR137t1KkTS5cu5datW5hMJpYsWUJmZiY9evQA5Hu1tCvKPr1DvlNLr3/v16ysLDQaTa6CrY6Ojmi12pzzJXN9Vm3N8QKE+ZhMJl577TU6d+5MkyZNALhy5QoAH374IV9++SUtWrRg4cKF9O7dm7Nnz1K3bl10Oh0+Pj652rK1tcXLywudTlfir0PkVtT9CvDKK6/QqlUrvLy8OHDgAFOmTCEmJoavv/7aaq9H5L1P/23u3Lk0bNiQTp065dyn0+lyBURAzv/ls2pdRd2noE7H6dWrF87OzmzZsoUXX3yR1NRUXnnllZLouriP/PbrX3/9xahRo6hcuTK2trY4OzuzatUq6tSpAyDfq6VYUfcpyHdqaZbXfu3QoQMuLi68++67fPrppyiKwn/+8x+MRiMxMTGA+T6rEhSVMpMnT+bs2bO5RgvuzJl87rnnePrppwFo2bIl27dvZ968ecyYMcMqfRUFV5z9+sYbb+Q8p1mzZtjb2/Pcc88xY8aMXFdORMnKa5/+U0ZGBn/88Qfvv/9+CfdMFFVx9uk/72vZsiVpaWl88cUXEhSVAvnt1/fff5/ExES2bduGt7c3q1evZuTIkezdu5emTZtaqbeiIIqzT+U7tfTKa79WqVKFZcuW8cILL/D999+j1WoZPXo0rVq1umf9dXFJUFSKvPTSSzmLw6pXr55zv5+fHwCNGjXK9fiGDRsSGRkJgK+vLzdu3Mj1++zsbG7duoWvr6+Fey7upzj7NS/t27cnOzub8PBw6tevb5lOi/vKb5/+0/Lly0lPT2fcuHG57vf19eXIkSO57ruTRUc+q9ZTnH2al/bt2/PRRx+RlZUlJ1pWlN9+DQsL48cff+Ts2bM0btwYgObNm7N3715++uknZs2aJd+rpVRx9mle5Du1dLjf3+B+/foRFhZGXFwctra2eHp64uvrS61atQDznQPLmqJSQFEUXnrpJVatWsWOHTuoWbNmrt/XqFEDf3//e1IUXr58maCgIAA6duxIYmIix48fz/n9jh07MJlMtG/f3vIvQtzDHPs1L8HBwWi12nuGioXlPWif/tPcuXN5+OGHqVKlSq77O3bsyJkzZ3L9Ad+6dSvu7u73BMjC8syxT/MSHBxMpUqVJCCykgft1/T0dIB7rjTb2NjkjOLL92rpYo59mhf5TrWuwvwN9vb2xtPTkx07dnDjxg0efvhhwIyf1eLliBDm8MILLygeHh7Krl27lJiYmJyf9PT0nMd88803iru7u7Js2TIlJCREee+99xRHR0clNDQ05zEDBgxQWrZsqRw+fFjZt2+fUrduXWX06NHWeElCMc9+PXDggPLNN98owcHBSlhYmPL7778rVapUUcaNG2etl1WhFWSfKoqihISEKBqNRtm4ceM9bWRnZytNmjRR+vXrpwQHByubNm1SqlSpokyZMqWkXob4B3Ps07Vr1yqzZ89Wzpw5o4SEhCg///yz4uzsrHzwwQcl9TLEvzxov+r1eqVOnTpK165dlcOHDyuhoaHKl19+qWg0GuXvv//OaUe+V0sPc+xT+U4tfQryN3jevHnKwYMHldDQUGXRokWKl5eX8sYbb+RqxxyfVQmKSgEgz5/58+fnetyMGTOU6tWrK87OzkrHjh2VvXv35vp9fHy8Mnr0aMXV1VVxd3dXnn76aSUlJaUEX4n4J3Ps1+PHjyvt27dXPDw8FEdHR6Vhw4bKp59+qmRmZpbwqxGKUvB9OmXKFCUgIEAxGo15thMeHq4MHDhQcXJyUry9vZU333xTMRgMJfAKxL+ZY59u3LhRadGiheLq6qq4uLgozZs3V2bNmpXv/heWV5D9evnyZWX48OGKj4+P4uzsrDRr1uyedM7yvVp6mGOfyndq6VOQ/fruu+8qVatWVezs7JS6desqX331lWIymXK1Y47PquZ2h4QQQgghhBCiQpI1RUIIIYQQQogKTYIiIYQQQgghRIUmQZEQQgghhBCiQpOgSAghhBBCCFGhSVAkhBBCCCGEqNAkKBJCCCGEEEJUaBIUCSGEEEIIISo0CYqEEEJYVI8ePXjttddKdJu//vorAQEBaLVavv322xLdthBCiLLH1todEEIIIcwpOTmZl156ia+//ppHH30UDw8Pa3dJCCFEKSdBkRBCiHIlMjISg8HAoEGD8PPzs1o/jEYjGo0GrVYmZQghRGknf6mFEEKYTVpaGuPGjcPV1RU/Pz+++uqrXL9ftGgRbdq0wc3NDV9fX5544glu3LgBgKIo1KlThy+//DLXc4KDg9FoNISGhgJq0DN06FBcXV1xd3dn5MiRxMbGArBgwQKaNm0KQK1atdBoNEyfPp3KlSuTlZWVq91hw4YxduzYnP+vWbOGVq1a4ejoSK1atZg2bRrZ2dk5v//6669p2rQpLi4uBAQE8OKLL5Kamprz+wULFuDp6cnatWtp1KgRDg4OREZGFvctFUIIUQIkKBJCCGE2b7/9Nrt372bNmjVs2bKFXbt2ceLEiZzfGwwGPvroI06dOsXq1asJDw9n/PjxAGg0GiZMmMD8+fNztTl//ny6detGnTp1MJlMDB06lFu3brF79262bt3KlStXGDVqFACjRo1i27ZtABw5coSYmBjefPNNjEYja9euzWnzxo0b/P3330yYMAGAvXv3Mm7cOF599VXOnz/PL7/8woIFC/jkk09ynqPVavn+++85d+4cv/32Gzt27OCdd97J1df09HQ+//xz5syZw7lz5/Dx8THfmyuEEMJyFCGEEMIMUlJSFHt7e+Wvv/7KuS8+Pl5xcnJSXn311Tyfc/ToUQVQUlJSFEVRlOjoaMXGxkY5fPiwoiiKotfrFW9vb2XBggWKoijKli1bFBsbGyUyMjKnjXPnzimAcuTIEUVRFOXkyZMKoFy9ejXnMS+88IIycODAnP9/9dVXSq1atRSTyaQoiqL07t1b+fTTT3P1bdGiRYqfn1++r3fZsmVK5cqVc/4/f/58BVCCg4PzfY4QQojSSUaKhBBCmEVYWBh6vZ727dvn3Ofl5UX9+vVz/n/8+HGGDBlCYGAgbm5udO/eHSBnmpm/vz+DBg1i3rx5AKxbt46srCwee+wxAC5cuEBAQAABAQE5bTZq1AhPT08uXLiQb9+eeeYZtmzZQnR0NKBOdRs/fjwajQaAU6dOMX36dFxdXXN+nnnmGWJiYkhPTwdg27Zt9O7dm2rVquHm5sbYsWOJj4/P+T2Avb09zZo1K/qbKIQQwiokKBJCCFEi0tLS6N+/P+7u7ixevJijR4+yatUqAPR6fc7jJk2axJIlS8jIyGD+/PmMGjUKZ2fnYm27ZcuWNG/enIULF3L8+HHOnTuXM20PIDU1lWnTphEcHJzzc+bMGUJCQnB0dCQ8PJzBgwfTrFkzVqxYwfHjx/npp5/u6buTk1NOoCWEEKLskOxzQgghzKJ27drY2dlx+PBhAgMDAUhISODy5ct0796dixcvEh8fz2effZYz0nPs2LF72nnooYdwcXFh5syZbNq0iT179uT8rmHDhkRFRREVFZXTxvnz50lMTKRRo0b37d+kSZP49ttviY6Opk+fPrlGm1q1asWlS5eoU6dOns89fvw4JpOJr776Kieb3F9//VWId0cIIURpJiNFQgghzMLV1ZWJEyfy9ttvs2PHDs6ePcv48eNzgojAwEDs7e354YcfuHLlCmvXruWjjz66px0bGxvGjx/PlClTqFu3Lh07dsz5XZ8+fWjatClPPvkkJ06c4MiRI4wbN47u3bvTpk2b+/bviSee4Nq1a8yePTsnwcIdH3zwAQsXLmTatGmcO3eOCxcusGTJEt577z0A6tSpg8FgyOn7okWLmDVrVnHfMiGEEKWEBEVCCCHM5osvvqBr164MGTKEPn360KVLF1q3bg1AlSpVWLBgAcuWLaNRo0Z89tln96TfvmPixIno9XqefvrpXPdrNBrWrFlDpUqV6NatG3369KFWrVosXbr0gX3z8PDg0UcfxdXVlWHDhuX6Xf/+/Vm/fj1btmyhbdu2dOjQgW+++YagoCAAmjdvztdff83nn39OkyZNWLx4MTNmzCjCOySEEKI00iiKoli7E0IIIcQ/7d27l969exMVFUXVqlXN1m7v3r1p3Lgx33//vdnaFEIIUfZJUCSEEKLUyMrK4ubNmzz11FP4+vqyePFis7SbkJDArl27GDFiBOfPn8+VEU8IIYSQRAtCCCFKjT///JOJEyfSokULFi5caLZ2W7ZsSUJCAp9//rkEREIIIe4hI0VCCCGEEEKICk0SLQghhBBCCCEqNAmKhBBCCCGEEBWaBEVCCCGEEEKICk2CIiGEEEIIIUSFJkGREEIIIYQQokKToEgIIYQQQghRoUlQJIQQQgghhKjQJCgSQgghhBBCVGgSFAkhhBBCCCEqtP8HstZTcdfJjvoAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "min_max_field = 'temperature C'\n", "gate_max = tol.groupby('dayofyear')[min_max_field].apply(np.max)\n", @@ -404,30 +261,9 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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m25ScXFxwIoDAADoLL9mdv7v//5PO3fulN1u99k/ePBg/f3vfw9IYQAAAIHgV9hpb29XW1vbKfsPHz6s2NjYThcFoHOCedfnL5ZkB61vAAgGv77GGj9+vB577DHvts1mU2NjoxYvXswjJAAAQFjxa2bnkUceUVZWltLT09XU1KSf/vSnOnDggPr3768XX3wx0DUCAAD4za+wM2jQIL3//vtav369PvjgAzU2Nio3N1czZ870WbAMAAAQan6FHUmKjIzULbfcEshaAAAAAs6vsLNu3brvPH7bbbf5VQwAAECg+RV25s6d67Pd2tqqEydOyG63KyYmhrADAADChl+/xvrqq698Xo2NjaqoqNA111zDAmUAABBW/H421rcNHTpUS5YsOWXWBwAAIJQCFnakrxctV1VVBbJLAACATvFrzc6f/vQnn23LslRdXa3f//73uvrqqwNSGAAAQCD4FXamTJnis22z2TRgwABdf/31euSRRwJRFwAAQED4/WwsAACA7iCga3YAAADCjV8zO/n5+efcdvny5f58BAAAQED4FXbKy8tVXl6u1tZWDRs2TJL0ySefqEePHrriiiu87Ww2W2CqBAAA8JNfYefGG29UbGys1q5dq759+0r6+kaDt99+u6699lrdc889AS0SAADAX36t2XnkkUdUUFDgDTqS1LdvXz300EP8GgsAAIQVv8KOx+PRkSNHTtl/5MgRNTQ0dLooAACAQPEr7Nx00026/fbbtWHDBh0+fFiHDx/WH//4R+Xm5mrq1KmBrhEAAMBvfq3ZWb16te6991799Kc/VWtr69cdRUYqNzdXDz/8cEALBAAA6Ay/ZnZiYmK0atUqHT161PvLrGPHjmnVqlXq3bv3OfdTUFCg733ve4qNjVVCQoKmTJmiiooKnzZNTU3Ky8tTv3791KdPH02bNk01NTU+bSorK5Wdna2YmBglJCTovvvu08mTJ/05NQAAYJhO3VSwurpa1dXVGjp0qHr37i3Lss7r/SUlJcrLy9Pbb7+tLVu2qLW1VePHj9fx48e9bebPn6/XX39dRUVFKikpUVVVlc9XZW1tbcrOzlZLS4t27typtWvXqrCwUIsWLerMqQEAAEPYrPNNKJKOHj2qH//4x9q2bZtsNpsOHDigiy66SD/72c/Ut29fv3+RdeTIESUkJKikpET/+Z//qfr6eg0YMEAvvPCCbr75ZknSxx9/rEsvvVSlpaUaO3asNm3apBtuuEFVVVVKTEyU9PXXbL/+9a915MgR2e32s36ux+OR0+lUfX29HA6HX7UjtAbf/0aoS7hgfLEkO9QlnLdgXR/dcSwAk5zr32+/Znbmz5+vqKgoVVZWKiYmxrt/+vTp2rx5sz9dSpLq6+slSfHx8ZKksrIytba2KjMz09tm+PDhSk1NVWlpqSSptLRUI0eO9AYdScrKypLH49H+/ftP+znNzc3yeDw+LwAAYCa/ws5f/vIXLV26VIMGDfLZP3ToUH355Zd+FdLe3q558+bp6quv1ogRIyRJbrdbdrtdcXFxPm0TExPldru9bb4ZdDqOdxw7nYKCAjmdTu8rJSXFr5oBAED48yvsHD9+3GdGp8OxY8cUHR3tVyF5eXnat2+f1q9f79f7z8eCBQtUX1/vfR06dCjonwkAAELDr7Bz7bXXat26dd5tm82m9vZ2LVu2TNddd9159zdnzhxt3LhR27Zt85ktSkpKUktLi+rq6nza19TUKCkpydvm27/O6tjuaPNt0dHRcjgcPi8AAGAmv8LOsmXL9PTTT2vixIlqaWnRr371K40YMUI7duzQ0qVLz7kfy7I0Z84cvfLKK9q6dauGDBniczwjI0NRUVEqLi727quoqFBlZaVcLpckyeVyae/evaqtrfW22bJlixwOh9LT0/05PQAAYBC/bio4YsQIffLJJ/r973+v2NhYNTY2aurUqcrLy9PAgQPPuZ+8vDy98MILeu211xQbG+tdY+N0OtWrVy85nU7l5uYqPz9f8fHxcjgcuvvuu+VyuTR27FhJ0vjx45Wenq5bb71Vy5Ytk9vt1sKFC5WXl+f3V2oAAMAc5x12WltbNWHCBK1evVr//d//3akPf/LJJyVJP/zhD332r1mzRrNmzZIkPfroo4qIiNC0adPU3NysrKwsrVq1ytu2R48e2rhxo2bPni2Xy6XevXsrJydHDzzwQKdqAwAAZjjvsBMVFaUPPvggIB9+Lrf46dmzp1auXKmVK1eesU1aWpr+/Oc/B6QmAABgFr/W7Nxyyy169tlnA10LAABAwPm1ZufkyZN67rnn9NZbbykjI+OU52EtX748IMUBCD/cjRhAd3NeYefzzz/X4MGDtW/fPl1xxRWSpE8++cSnjc1mC1x1AAAAnXReYWfo0KGqrq7Wtm3bJH39eIgVK1accgdjAACAcHFea3a+vaB406ZNPk8oBwAACDd+LVDu4McD0wEAALrUeYUdm812ypoc1ugAAIBwdl5rdizL0qxZs7x3Jm5qatJdd911yq+xNmzYELgKAQAAOuG8wk5OTo7P9i233BLQYgAAAALtvMLOmjVrglUHAABAUHRqgTIAAEC4I+wAAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADDaef30HBeGwfe/EbS+v1iSHbS+AQA4HWZ2AACA0Qg7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACMxk/P0aWC+bN2AABOh5kdAABgNMIOAAAwGmEHAAAYjbADAACMRtgBAABGI+wAAACjEXYAAIDRCDsAAMBo3FSwG+MGfQAAnB0zOwAAwGiEHQAAYDTCDgAAMBphBwAAGI2wAwAAjEbYAQAARiPsAAAAoxF2AACA0Qg7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACMRtgBAABGiwx1AQAgSYPvfyPUJQAwFDM7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACMRtgBAABGI+wAAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYDTCDgAAMBphBwAAGI2wAwAAjEbYAQAARgtp2NmxY4duvPFGJScny2az6dVXX/U5blmWFi1apIEDB6pXr17KzMzUgQMHfNocO3ZMM2fOlMPhUFxcnHJzc9XY2NiFZwEAAMJZSMPO8ePHNXr0aK1cufK0x5ctW6YVK1Zo9erV2rVrl3r37q2srCw1NTV528ycOVP79+/Xli1btHHjRu3YsUN33nlnV50CAAAIc5Gh/PCJEydq4sSJpz1mWZYee+wxLVy4UJMnT5YkrVu3TomJiXr11Vc1Y8YMffTRR9q8ebPeffddXXnllZKkJ554QpMmTdLvfvc7JScnd9m5AACA8BS2a3YOHjwot9utzMxM7z6n06kxY8aotLRUklRaWqq4uDhv0JGkzMxMRUREaNeuXV1eMwAACD8hndn5Lm63W5KUmJjosz8xMdF7zO12KyEhwed4ZGSk4uPjvW1Op7m5Wc3Nzd5tj8cTqLIBAECYCduZnWAqKCiQ0+n0vlJSUkJdEgAACJKwndlJSkqSJNXU1GjgwIHe/TU1Nbr88su9bWpra33ed/LkSR07dsz7/tNZsGCB8vPzvdsejydogWfw/W8EpV8AZgvW/zu+WJIdlH6BcBa2MztDhgxRUlKSiouLvfs8Ho927doll8slSXK5XKqrq1NZWZm3zdatW9Xe3q4xY8acse/o6Gg5HA6fFwAAMFNIZ3YaGxv16aefercPHjyo9957T/Hx8UpNTdW8efP00EMPaejQoRoyZIh+85vfKDk5WVOmTJEkXXrppZowYYLuuOMOrV69Wq2trZozZ45mzJjBL7EAAICkEIed3bt367rrrvNud3y1lJOTo8LCQv3qV7/S8ePHdeedd6qurk7XXHONNm/erJ49e3rf84c//EFz5szRuHHjFBERoWnTpmnFihVdfi4AACA82SzLskJdRKh5PB45nU7V19cH/Cst1uwA5grm+hfW7ABnd65/v8N2zQ4AAEAgEHYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABgtbB8XAQCAFNxbePBT/AsDMzsAAMBohB0AAGA0wg4AADAaa3YAwE88DgboHpjZAQAARiPsAAAAoxF2AACA0Qg7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACMRtgBAABGI+wAAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYDTCDgAAMBphBwAAGC0y1AUAAMww+P43Ql0CcFrM7AAAAKMRdgAAgNEIOwAAwGiEHQAAYDTCDgAAMBphBwAAGI2wAwAAjEbYAQAARiPsAAAAoxF2AACA0XhcBABcQHikAy5EzOwAAACjEXYAAIDR+BoLAIBuJJhfRX6xJDtofYcSMzsAAMBohB0AAGA0wg4AADAaYQcAABiNBcoAAEBS8BY/h3rhMzM7AADAaIQdAABgNL7GAgBcsEz92ga+mNkBAABGI+wAAACjEXYAAIDRCDsAAMBoLFAGACDAgvmwTpw/ZnYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNGMCTsrV67U4MGD1bNnT40ZM0bvvPNOqEsCAABhwIiw89JLLyk/P1+LFy/Wnj17NHr0aGVlZam2tjbUpQEAgBAzIuwsX75cd9xxh26//Xalp6dr9erViomJ0XPPPRfq0gAAQIh1+weBtrS0qKysTAsWLPDui4iIUGZmpkpLS0/7nubmZjU3N3u36+vrJUkejyfg9bU3nwh4nwAAdCfB+Pv6zX4ty/rOdt0+7PzjH/9QW1ubEhMTffYnJibq448/Pu17CgoK9Nvf/vaU/SkpKUGpEQCAC5nzseD239DQIKfTecbj3T7s+GPBggXKz8/3bre3t+vYsWPq16+fGhoalJKSokOHDsnhcISwyguLx+Nh3EOAcQ8Nxj00GPfQCOa4W5alhoYGJScnf2e7bh92+vfvrx49eqimpsZnf01NjZKSkk77nujoaEVHR/vsi4uLkyTZbDZJksPh4D+GEGDcQ4NxDw3GPTQY99AI1rh/14xOh26/QNlutysjI0PFxcXefe3t7SouLpbL5QphZQAAIBx0+5kdScrPz1dOTo6uvPJKXXXVVXrsscd0/Phx3X777aEuDQAAhJgRYWf69Ok6cuSIFi1aJLfbrcsvv1ybN28+ZdHyuYiOjtbixYtP+ZoLwcW4hwbjHhqMe2gw7qERDuNus872ey0AAIBurNuv2QEAAPguhB0AAGA0wg4AADAaYQcAABjN+LCzY8cO3XjjjUpOTpbNZtOrr77qc7ympkazZs1ScnKyYmJiNGHCBB04cOCs/RYVFWn48OHq2bOnRo4cqT//+c9BOoPuJxhjXlhYKJvN5vPq2bNnEM+i+ykoKND3vvc9xcbGKiEhQVOmTFFFRYVPm6amJuXl5alfv37q06ePpk2bdsoNOb/NsiwtWrRIAwcOVK9evZSZmXlO/41cKII17rNmzTrlmp8wYUIwT6VbOZdxf/rpp/XDH/5QDodDNptNdXV159T3ypUrNXjwYPXs2VNjxozRO++8E4Qz6J6CNe7/8z//c8r1Pnz48IDVbXzYOX78uEaPHq2VK1eecsyyLE2ZMkWff/65XnvtNZWXlystLU2ZmZk6fvz4GfvcuXOnfvKTnyg3N1fl5eWaMmWKpkyZon379gXzVLqNYIy59PXdN6urq72vL7/8Mlin0C2VlJQoLy9Pb7/9trZs2aLW1laNHz/eZ1znz5+v119/XUVFRSopKVFVVZWmTp36nf0uW7ZMK1as0OrVq7Vr1y717t1bWVlZampqCvYpdQvBGndJmjBhgs81/+KLLwbzVLqVcxn3EydOaMKECfqv//qvc+73pZdeUn5+vhYvXqw9e/Zo9OjRysrKUm1tbTBOo9sJ1rhL0mWXXeZzvf/1r38NXOHWBUSS9corr3i3KyoqLEnWvn37vPva2tqsAQMGWM8888wZ+/nxj39sZWdn++wbM2aM9fOf/zzgNXd3gRrzNWvWWE6nM4iVmqe2ttaSZJWUlFiWZVl1dXVWVFSUVVRU5G3z0UcfWZKs0tLS0/bR3t5uJSUlWQ8//LB3X11dnRUdHW29+OKLwT2BbioQ425ZlpWTk2NNnjw52OUa49vj/k3btm2zJFlfffXVWfu56qqrrLy8PO92W1ublZycbBUUFASyXGMEatwXL15sjR49OvAF/ovxMzvfpbm5WZJ8vg6JiIhQdHT0dybK0tJSZWZm+uzLyspSaWlpcAo1iL9jLkmNjY1KS0tTSkqKJk+erP379we11u6uvr5ekhQfHy9JKisrU2trq8+1O3z4cKWmpp7x2j148KDcbrfPe5xOp8aMGcP1fgaBGPcO27dvV0JCgoYNG6bZs2fr6NGjwSu8m/v2uPujpaVFZWVlPv+uIiIilJmZyfV+BoEY9w4HDhxQcnKyLrroIs2cOVOVlZWd7rPDBR12Ov6Hs2DBAn311VdqaWnR0qVLdfjwYVVXV5/xfW63+5S7MycmJsrtdge75G7P3zEfNmyYnnvuOb322mt6/vnn1d7eru9///s6fPhwF1bffbS3t2vevHm6+uqrNWLECElfX7d2u9370NsO33Xtduznej83gRp36euvsNatW6fi4mItXbpUJSUlmjhxotra2oJ5Ct3S6cbdH//4xz/U1tbG9X6OAjXukjRmzBgVFhZq8+bNevLJJ3Xw4EFde+21amhoCEitRjwuwl9RUVHasGGDcnNzFR8frx49eigzM1MTJ06UxY2lg8LfMXe5XD4Pdv3+97+vSy+9VE899ZQefPDBrii9W8nLy9O+ffsC+503ziqQ4z5jxgzvP48cOVKjRo3Sv//7v2v79u0aN25cp/s3Cdd7aARy3CdOnOj951GjRmnMmDFKS0vTyy+/rNzc3E73f0HP7EhSRkaG3nvvPdXV1am6ulqbN2/W0aNHddFFF53xPUlJSaf8kqKmpkZJSUnBLtcI/oz5t0VFRek//uM/9Omnnwax0u5pzpw52rhxo7Zt26ZBgwZ59yclJamlpeWUX0Z817XbsZ/r/ewCOe6nc9FFF6l///5c899ypnH3R//+/dWjRw+u93MQyHE/nbi4OF1yySUBu94v+LDTwel0asCAATpw4IB2796tyZMnn7Gty+VScXGxz74tW7b4zDzg7M5nzL+tra1Ne/fu1cCBA4NYYfdiWZbmzJmjV155RVu3btWQIUN8jmdkZCgqKsrn2q2oqFBlZeUZr90hQ4YoKSnJ5z0ej0e7du3iev+XYIz76Rw+fFhHjx7lmv+Xs427P+x2uzIyMnz+XbW3t6u4uJjr/V+CMe6n09jYqM8++yxw13vQlj6HiYaGBqu8vNwqLy+3JFnLly+3ysvLrS+//NKyLMt6+eWXrW3btlmfffaZ9eqrr1ppaWnW1KlTffq49dZbrfvvv9+7/be//c2KjIy0fve731kfffSRtXjxYisqKsrau3dvl55buArGmP/2t7+13nzzTeuzzz6zysrKrBkzZlg9e/a09u/f36XnFs5mz55tOZ1Oa/v27VZ1dbX3deLECW+bu+66y0pNTbW2bt1q7d6923K5XJbL5fLpZ9iwYdaGDRu820uWLLHi4uKs1157zfrggw+syZMnW0OGDLH++c9/dtm5hbNgjHtDQ4N17733WqWlpdbBgwett956y7riiiusoUOHWk1NTV16fuHqXMa9urraKi8vt5555hlLkrVjxw6rvLzcOnr0qLfN9ddfbz3xxBPe7fXr11vR0dFWYWGh9eGHH1p33nmnFRcXZ7nd7i49v3AVrHG/5557rO3bt1sHDx60/va3v1mZmZlW//79rdra2oDUbXzY6fjp27dfOTk5lmVZ1uOPP24NGjTIioqKslJTU62FCxdazc3NPn384Ac/8Lbv8PLLL1uXXHKJZbfbrcsuu8x64403uuiMwl8wxnzevHlWamqqZbfbrcTERGvSpEnWnj17uvCswt/pxlyStWbNGm+bf/7zn9YvfvELq2/fvlZMTIx10003WdXV1af08833tLe3W7/5zW+sxMREKzo62ho3bpxVUVHRRWcV/oIx7idOnLDGjx9vDRgwwIqKirLS0tKsO+64gz+433Au47548eKztklLS7MWL17s0/cTTzzh/f/NVVddZb399ttdc1LdQLDGffr06dbAgQMtu91u/du//Zs1ffp069NPPw1Y3bZ/FQ8AAGAk1uwAAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYLT/B1Qu8Ue5vqrOAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# histogram\n", "tol['temperature C'].plot.hist(bins=20)\n", @@ -447,43 +283,18 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ - "# fig, axs = plt.subplots(3)\n", - "# tol['temperature C'].plot(ax=axs[0])\n", - "# tol['salinity ppt'].plot(ax=axs[1])\n", - "# tol['fchl mg/L'].plot(ax=axs[2])\n", - "\n", - "# for n, ax in enumerate(axs):\n", - "# ax.set_title(f'Plot/ax {n}')\n", - "# ax.label_outer()\n", - "\n", - "fig, axs = plt.subplots(3, 2)\n", - "tol['temperature C'].plot(ax=axs[0][0])\n", - "tol['salinity ppt'].plot(ax=axs[1][0])\n", - "tol['fchl mg/L'].plot(ax=axs[2][0])\n", - "compare_col = 'nitrate mg/L'\n", - "tol.plot.scatter(x=compare_col, y='temperature C', ax=axs[0][1])\n", - "tol.plot.scatter(x=compare_col, y='salinity ppt', ax=axs[1][1])\n", - "tol.plot.scatter(x=compare_col, y='fchl mg/L', ax=axs[2][1])\n", - "\n", - "for row_num, ax_row in enumerate(axs):\n", - " for col_num, ax in enumerate(ax_row):\n", - " ax.set_title(f'Plot/ax {row_num}-{col_num}')\n", - " ax.label_outer()" + "fig, axs = plt.subplots(3)\n", + "tol['temperature C'].plot(ax=axs[0])\n", + "tol['salinity ppt'].plot(ax=axs[1])\n", + "tol['fchl mg/L'].plot(ax=axs[2])\n", + "\n", + "for n, ax in enumerate(axs):\n", + " ax.set_title(f'Plot/ax {n}')\n", + " ax.label_outer()" ] }, { @@ -504,10 +315,26 @@ "Go ahead and re-run the cell now and you should have three plots on the left and three empty boxes on the right side. \n", "* Add three more scatter plots with axis locations `[0][1]`, `[1][1]`, and `[2][1]`. Each should have `x='gage height ft'` and `y=...` matching either temperature, salinity, or fchl.\n", "\n", - "Wow, no correlation at all. Maybe there's something we can do to visually see which parameters might correliate... \n", + "Wow, no correlation at all. Maybe there's something we can do to visually see which parameters might correliate... \n", + " \n", + "Finally, let's resize the subplots a bit. We can pass arguments to the subplots command set the overall plot size with figsize, and use gridspec_kw to set the horizontal width ratios for the columns of subplots:\n", + "* `figsize=(8, 8), gridspec_kw={'width_ratios': [2, 1]}`\n", "\n", "#### *Exercise*:\n", - "If you want a fun little challenge, try making an nxn matrix of scatter plots with regression lines comparing n different parameters.\n" + "If you one more fun challenge, try making an n*n matrix of scatter plots with regression lines comparing n different parameters. This is vaguely templated below. Figure out how to put set appropriate axis labels, etc!\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "params = ['col1', 'col2', ...]\n", + "# ... generate subplots and whatnot\n", + "for c in range(len(params)):\n", + " for r in range(len(params)):\n", + " # do stuff with each axis" ] }, { @@ -525,7 +352,7 @@ ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "venv", "language": "python", "name": "python3" }, @@ -539,7 +366,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.3" } }, "nbformat": 4, From 67106da0652133a440f21fb865d5f6fa29c4948e Mon Sep 17 00:00:00 2001 From: Dan Norris Date: Wed, 23 Oct 2024 15:09:57 -0700 Subject: [PATCH 118/163] Update finished notebooks . --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 496c188..a55d279 100644 --- a/README.md +++ b/README.md @@ -45,11 +45,12 @@ We have a series of python notebooks ready to work through to learn from. They * C-Functions_and_Module_Imports.ipynb - Introducing functions and modules in Python. * D0-Pandas_Example.ipynb - An example of importing data and doing some anaylsis and graphing to get a feel for how pandas works. * D1-Pandas_Intro_and_Data_selection.ipynb - Some pandas basics including imoprting data, manipulating columns of data, learning ways to select rows and columns of data, and exporting data to file. +* D3-Pandas_Graphing.ipynb - Goes over a bunch of plot types multi-axis plots, and graphs with multiple plots using pd.plot (wrapper for matplotlib pyplot) * N-Numpy - Basics using numpy. Need to add some vectorization problems where we convert python code to numpy code... **In Development** * D2-Data_Cleaning.ipynb - Setting column data types, removing missing or invalid data, interpolation, etc tools for preparing data for analysis. -* D3-Pandas_Graphing.ipynb - Goes over a bunch of plot types multi-axis plots, and graphs with multiple plots. + * D4-Advanced_Pandas.ipynb - Pivot, stack, unstack, join, concatenate, etc. * D5-Machine_Learning.ipynb - Methods to use machine learning to model data using pandas and common ML libraries. Building on pandas skills with more advanced data manipulation and introduction to data visualization using pandas and matplotlib for generating graphs. * E-Writing_Scripts.ipynb - Installing python locally, environment, structure of a script, and argparse From b8556bbdc0d87c1b1bcfc1ac913b131048002d5e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 23 Oct 2024 16:36:51 -0700 Subject: [PATCH 119/163] removed clearscreen cmd from colab turtle example --- A-Getting_Started.ipynb | 1 - 1 file changed, 1 deletion(-) diff --git a/A-Getting_Started.ipynb b/A-Getting_Started.ipynb index d71377e..ebaf0bf 100644 --- a/A-Getting_Started.ipynb +++ b/A-Getting_Started.ipynb @@ -883,7 +883,6 @@ "initializeTurtle()\n", "home()\n", "pos()\n", - "clearscreen()\n", "color('red')\n", "forward(200)\n", "right(90)\n", From d04e629fb8fc621061b844695b5a348235072d7f Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 25 Oct 2024 11:32:18 -0700 Subject: [PATCH 120/163] Update README.md --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a55d279..09c8c02 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,16 @@ We have a bunch of coureswork ready to use, including: See the Notebooks list below for a more detailed list. ## Current Schedule: -As of October, we're continuing to meet each wednesday from 4-5PM. +We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. +* Wednesday Oct 23 4PM-5PM +* Wednesday Oct 30 4PM-5PM +* Thursday Nov 7 4:30PM to 5:30PM +* Thursday Nov 14 - NO MEETING? +* Thursday Nov 21 4:30PM to 5:30PM +* Thursday Nov 28 - NO MEETING Thanksgiving +* Thursday Dec 5 - 4:30PM to 5:30PM +* Thursday Dec 12 - 4:30PM to 5:30PM +* Thursday Dec 19 - NO MEETING? Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library". From 9b862da112ead29ec98e2e8697939b6661444145 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 25 Oct 2024 12:34:53 -0700 Subject: [PATCH 121/163] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 09c8c02..86774cc 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,12 @@ We were meeting on wednesdays during October, but due to a scheduling conflict, * Wednesday Oct 23 4PM-5PM * Wednesday Oct 30 4PM-5PM * Thursday Nov 7 4:30PM to 5:30PM -* Thursday Nov 14 - NO MEETING? +* Thursday Nov 14 - 4:30 to 5:30PM (in the quiet room) * Thursday Nov 21 4:30PM to 5:30PM * Thursday Nov 28 - NO MEETING Thanksgiving * Thursday Dec 5 - 4:30PM to 5:30PM * Thursday Dec 12 - 4:30PM to 5:30PM -* Thursday Dec 19 - NO MEETING? +* Thursday Dec 19 - 4:30P to 5:30PM (in the quiet room) Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library". From 644f2a3673077ef011d4c8d7b9eea4c7f1766b2d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 7 Nov 2024 14:59:02 -0800 Subject: [PATCH 122/163] add new problum --- P-Project-Sudoku_Solver.ipynb | 421 ++++++++++++++++++++++++++++++++++ 1 file changed, 421 insertions(+) create mode 100644 P-Project-Sudoku_Solver.ipynb diff --git a/P-Project-Sudoku_Solver.ipynb b/P-Project-Sudoku_Solver.ipynb new file mode 100644 index 0000000..60ce588 --- /dev/null +++ b/P-Project-Sudoku_Solver.ipynb @@ -0,0 +1,421 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Project: Sudoku Solver\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "Write a program to solve a suduku puzzle. It should accept a list of 81 values, with '.' representing unknown numbers, and return a completed puzzle. Print an error message of a solution cannot be found. \n", + "\n", + "## Sudoku Rules\n", + "The objective is to fill a 9x9 grid so that each cell contains a digit from 1 to 9, following these rules:\n", + "* Unique in Row: Each row must contain the digits 1 to 9 without any repetition.\n", + "* Unique in Column: Each column must also contain the digits 1 to 9 without repetition.\n", + "* Unique in 3x3 Sub-grid: The grid is divided into nine 3x3 sub-grids (also known as \"boxes\" or \"regions\"). Each sub-grid must contain the digits 1 to 9, with no repeats.\n", + "\n", + "In every Sudoku puzzle:\n", + "* Some cells are pre-filled with numbers to give clues and create a unique solution.\n", + "* The player can only place numbers in empty cells.\n", + "* The puzzle is solved when every cell is filled and all the rules are satisfied.\n", + "\n", + "Additional Points:\n", + "* A valid Sudoku puzzle will have only one solution.\n", + "* The puzzle’s difficulty depends on the number and placement of given numbers, which influences the logical techniques needed to solve it.\n", + "\n", + "## Strategy\n", + "This is a search problem, but we need to use optimizations to reduce the search space so it doesn't take too long to solve each problem!\n", + "\n", + "**Search** - starting at one corner and stepping through cell by cell, place a number, and then check that it is valid. E.g. if you place a 3, check that there are no threes in the same row, column, and square. If a conflict is found, try another number. If none of 1-9 are without conflicts, step back to the previous cell you placed a number in and increment it. This strategy can take a long time to complete as there are many combinations of numbers to try, but is a path to solving every possible puzzle. We may need to introduce optimizations to reduce time required to find a solution. \n", + "\n", + "**Checking cells with fewest number of possibilities first** - compute a list of possible values for all unknown cells and start checking values of cells with the fewest possible values first. \n", + "\n", + "**Look for naked singles and hidden singles** - A naked single is a cell that only has one possible solution based on the values of cells in it's row, column, and square. A hidden single is a cell that has multiple possibilities, but one of it's possibilities is not possible for any other cell in its row, column, or square, so it must belong to this cell.\n", + "\n", + "**Set theory optimizations** - E.g. the Phistomefel Ring can be used in addition to the rows, columns, squares checks to ruduce numbers of possibilities for cells. \n", + "\n", + "### Search Strategies\n", + "There are a number of strategies for searching potential solution space for a problem. \n", + "\n", + "* Uninformed Search - when we are searching blindly for the goal.\n", + " * Bredth First\n", + " * Depth First\n", + " * Uniform Cost Search\n", + "* Informed Search - when we have a heuristic to tell is how close a state/node is to the goal.\n", + " * Greedy/Best-First Search\n", + " * A* Search\n", + " * Graph Search\n", + "\n", + "**Bredth First** explores all nodes at the present depth before exploring deeper and is helpful when you're trying to find the shortest path to something, but can be memory intensive.\n", + "* A\n", + "* B\n", + "* C\n", + "* D\n", + "\n", + "For this sudoku problem, a bredth first search would be akin to making copies of the puzzle for each possibility for a cell, and then making copies of each of those copies for each possibility for the next cell. This would result in us having as many as 9^(81-17) copies of the puzzle in memory:\n", + "* 81 being the total number of cells\n", + "* 17 being the minimum number of cells required to create a valid sudoku puzzle\n", + "* 9 being the number of possibilities for each cell\n", + "\n", + "**Depth First** is helpful when we need depth to test/eliminate possibilities and minimizes memory use. It may not work if the search space is very deep. \n", + "* A\n", + " * AA\n", + " * AAA\n", + " * AAB\n", + "\n", + "A depth first approach would result in having a maximum of only 81-17 copies of the puzzle in memory and works better for sudoku.\n", + "\n", + "**Greedy Search** could be used to explore nodes that are the most constrained first in order to reduce the search space.\n", + "\n", + "**Heuristics for Informed Search**\n", + "* Minimum Remaining Values (MRV) Heuristic - solve cells that have the fewest possibilities first\n", + "* Degree Heuristic - work on cells that have the most impact on empty cells in the same row/column/sub-grid\n", + "* Least Constraining Value (LCV) Heuristic - try values for cells that impose the least restriction on other cells to avoid conflicts.\n", + "\n", + "**Constraint propagation** - whenever a cell is solved, it removes that number as a possibility from all cells in the same row, column, and sub-grid. Constraint propagation is often used in tandem with backtracking, as it can simplify the puzzle and reduce the search space\n", + "\n", + "\n", + "## Sample Problems\n", + "There's a big dataset of sample problems here: https://www.kaggle.com/datasets/radcliffe/3-million-sudoku-puzzles-with-ratings\n", + "\n", + "A sample problem is a list of numbers and '.', with '.' being any value that we need to find. For example:\n", + "\n", + " ...81.....2........1.9..7...7..25.934.2............5...975.....563.....4......68.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "...81.....2........1.9..7...7..25.934.2............5...975.....563.....4......68.\n", + "['.', '.', '.', '8', '1', '.', '.', '.', '.']\n", + "['.', '2', '.', '.', '.', '.', '.', '.', '.']\n", + "['.', '1', '.', '9', '.', '.', '7', '.', '.']\n", + "['.', '7', '.', '.', '2', '5', '.', '9', '3']\n", + "['4', '.', '2', '.', '.', '.', '.', '.', '.']\n", + "['.', '.', '.', '.', '.', '.', '5', '.', '.']\n", + "['.', '9', '7', '5', '.', '.', '.', '.', '.']\n", + "['5', '6', '3', '.', '.', '.', '.', '.', '4']\n", + "['.', '.', '.', '.', '.', '.', '6', '8', '.']\n", + "\n", + "1..5.37..6.3..8.9......98...1.......8761..........6...........7.8.9.76.47...6.312\n", + "['1', '.', '.', '5', '.', '3', '7', '.', '.']\n", + "['6', '.', '3', '.', '.', '8', '.', '9', '.']\n", + "['.', '.', '.', '.', '.', '9', '8', '.', '.']\n", + "['.', '1', '.', '.', '.', '.', '.', '.', '.']\n", + "['8', '7', '6', '1', '.', '.', '.', '.', '.']\n", + "['.', '.', '.', '.', '.', '6', '.', '.', '.']\n", + "['.', '.', '.', '.', '.', '.', '.', '.', '7']\n", + "['.', '8', '.', '9', '.', '7', '6', '.', '4']\n", + "['7', '.', '.', '.', '6', '.', '3', '1', '2']\n", + "\n", + "..5...74.3..6...19.....1..5...7...2.9....58..7..84......3.9...2.9.4.....8.....1.3\n", + "['.', '.', '5', '.', '.', '.', '7', '4', '.']\n", + "['3', '.', '.', '6', '.', '.', '.', '1', '9']\n", + "['.', '.', '.', '.', '.', '1', '.', '.', '5']\n", + "['.', '.', '.', '7', '.', '.', '.', '2', '.']\n", + "['9', '.', '.', '.', '.', '5', '8', '.', '.']\n", + "['7', '.', '.', '8', '4', '.', '.', '.', '.']\n", + "['.', '.', '3', '.', '9', '.', '.', '.', '2']\n", + "['.', '9', '.', '4', '.', '.', '.', '.', '.']\n", + "['8', '.', '.', '.', '.', '.', '1', '.', '3']\n", + "\n", + "........5.2...9....9..2...373..481.....36....58....4...1...358...42.......978...2\n", + "['.', '.', '.', '.', '.', '.', '.', '.', '5']\n", + "['.', '2', '.', '.', '.', '9', '.', '.', '.']\n", + "['.', '9', '.', '.', '2', '.', '.', '.', '3']\n", + "['7', '3', '.', '.', '4', '8', '1', '.', '.']\n", + "['.', '.', '.', '3', '6', '.', '.', '.', '.']\n", + "['5', '8', '.', '.', '.', '.', '4', '.', '.']\n", + "['.', '1', '.', '.', '.', '3', '5', '8', '.']\n", + "['.', '.', '4', '2', '.', '.', '.', '.', '.']\n", + "['.', '.', '9', '7', '8', '.', '.', '.', '2']\n", + "\n" + ] + } + ], + "source": [ + "samples = [\n", + " '...81.....2........1.9..7...7..25.934.2............5...975.....563.....4......68.',\n", + " '1..5.37..6.3..8.9......98...1.......8761..........6...........7.8.9.76.47...6.312',\n", + " '..5...74.3..6...19.....1..5...7...2.9....58..7..84......3.9...2.9.4.....8.....1.3',\n", + " '........5.2...9....9..2...373..481.....36....58....4...1...358...42.......978...2',\n", + "]\n", + "for sample in samples:\n", + " print(sample)\n", + " sample = list(sample)\n", + " # Convert it to a 2D list\n", + " puzzle = [sample[i:i+9] for i in range(0, 81, 9)]\n", + " for row in puzzle:\n", + " print(row)\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example code using plain python\n", + "Using plain python loops and lists, we can step through rows and columns using for loops pretty easily, but things quickly get complex when looking at columns and the squares:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cell 0 0 {'5', '.'} {'7', '5', '.'} {'2', '9', '.'}\n", + "cell 0 1 {'5', '.'} {'.', '9', '8', '1', '3', '2'} {'2', '9', '.'}\n", + "cell 0 2 {'5', '.'} {'9', '4', '.'} {'2', '9', '.'}\n", + "cell 0 3 {'5', '.'} {'7', '2', '.', '3'} {'9', '2', '.'}\n", + "cell 0 4 {'5', '.'} {'6', '.', '8', '4', '2'} {'9', '2', '.'}\n", + "cell 0 5 {'5', '.'} {'9', '.', '3', '8'} {'9', '2', '.'}\n", + "cell 0 6 {'5', '.'} {'1', '4', '.', '5'} {'5', '.', '3'}\n", + "cell 0 7 {'5', '.'} {'.', '8'} {'5', '.', '3'}\n", + "cell 1 0 {'2', '9', '.'} {'7', '5', '.'} {'2', '9', '.'}\n", + "cell 1 2 {'2', '9', '.'} {'9', '4', '.'} {'2', '9', '.'}\n", + "cell 1 3 {'2', '9', '.'} {'7', '2', '.', '3'} {'9', '2', '.'}\n", + "cell 1 4 {'2', '9', '.'} {'6', '.', '8', '4', '2'} {'9', '2', '.'}\n", + "cell 1 6 {'2', '9', '.'} {'1', '4', '.', '5'} {'5', '.', '3'}\n", + "cell 1 7 {'2', '9', '.'} {'.', '8'} {'5', '.', '3'}\n", + "cell 1 8 {'2', '9', '.'} {'2', '.', '5', '3'} {'5', '.', '3'}\n", + "cell 2 0 {'9', '2', '.', '3'} {'7', '5', '.'} {'2', '9', '.'}\n", + "cell 2 2 {'9', '2', '.', '3'} {'9', '4', '.'} {'2', '9', '.'}\n", + "cell 2 3 {'9', '2', '.', '3'} {'7', '2', '.', '3'} {'9', '2', '.'}\n", + "cell 2 5 {'9', '2', '.', '3'} {'9', '.', '3', '8'} {'9', '2', '.'}\n", + "cell 2 6 {'9', '2', '.', '3'} {'1', '4', '.', '5'} {'5', '.', '3'}\n", + "cell 2 7 {'9', '2', '.', '3'} {'.', '8'} {'5', '.', '3'}\n", + "cell 3 2 {'8', '1', '4', '3', '7', '.'} {'9', '4', '.'} {'.', '8', '3', '7', '5'}\n", + "cell 3 3 {'8', '1', '4', '3', '7', '.'} {'7', '2', '.', '3'} {'6', '8', '4', '3', '.'}\n", + "cell 3 7 {'8', '1', '4', '3', '7', '.'} {'.', '8'} {'1', '4', '.'}\n", + "cell 3 8 {'8', '1', '4', '3', '7', '.'} {'2', '.', '5', '3'} {'1', '4', '.'}\n", + "cell 4 0 {'6', '.', '3'} {'7', '5', '.'} {'.', '8', '3', '7', '5'}\n", + "cell 4 1 {'6', '.', '3'} {'.', '9', '8', '1', '3', '2'} {'.', '8', '3', '7', '5'}\n", + "cell 4 2 {'6', '.', '3'} {'9', '4', '.'} {'.', '8', '3', '7', '5'}\n", + "cell 4 5 {'6', '.', '3'} {'9', '.', '3', '8'} {'6', '8', '4', '3', '.'}\n", + "cell 4 6 {'6', '.', '3'} {'1', '4', '.', '5'} {'1', '4', '.'}\n", + "cell 4 7 {'6', '.', '3'} {'.', '8'} {'1', '4', '.'}\n", + "cell 4 8 {'6', '.', '3'} {'2', '.', '5', '3'} {'1', '4', '.'}\n", + "cell 5 2 {'4', '.', '5', '8'} {'9', '4', '.'} {'.', '8', '3', '7', '5'}\n", + "cell 5 3 {'4', '.', '5', '8'} {'7', '2', '.', '3'} {'6', '8', '4', '3', '.'}\n", + "cell 5 4 {'4', '.', '5', '8'} {'6', '.', '8', '4', '2'} {'6', '8', '4', '3', '.'}\n", + "cell 5 5 {'4', '.', '5', '8'} {'9', '.', '3', '8'} {'6', '8', '4', '3', '.'}\n", + "cell 5 7 {'4', '.', '5', '8'} {'.', '8'} {'1', '4', '.'}\n", + "cell 5 8 {'4', '.', '5', '8'} {'2', '.', '5', '3'} {'1', '4', '.'}\n", + "cell 6 0 {'.', '8', '1', '3', '5'} {'7', '5', '.'} {'1', '4', '.', '9'}\n", + "cell 6 2 {'.', '8', '1', '3', '5'} {'9', '4', '.'} {'1', '4', '.', '9'}\n", + "cell 6 3 {'.', '8', '1', '3', '5'} {'7', '2', '.', '3'} {'.', '8', '3', '7', '2'}\n", + "cell 6 4 {'.', '8', '1', '3', '5'} {'6', '.', '8', '4', '2'} {'.', '8', '3', '7', '2'}\n", + "cell 6 8 {'.', '8', '1', '3', '5'} {'2', '.', '5', '3'} {'2', '.', '5', '8'}\n", + "cell 7 0 {'2', '4', '.'} {'7', '5', '.'} {'1', '4', '.', '9'}\n", + "cell 7 1 {'2', '4', '.'} {'.', '9', '8', '1', '3', '2'} {'1', '4', '.', '9'}\n", + "cell 7 4 {'2', '4', '.'} {'6', '.', '8', '4', '2'} {'.', '8', '3', '7', '2'}\n", + "cell 7 5 {'2', '4', '.'} {'9', '.', '3', '8'} {'.', '8', '3', '7', '2'}\n", + "cell 7 6 {'2', '4', '.'} {'1', '4', '.', '5'} {'2', '.', '5', '8'}\n", + "cell 7 7 {'2', '4', '.'} {'.', '8'} {'2', '.', '5', '8'}\n", + "cell 7 8 {'2', '4', '.'} {'2', '.', '5', '3'} {'2', '.', '5', '8'}\n", + "cell 8 0 {'.', '9', '8', '7', '2'} {'7', '5', '.'} {'1', '4', '.', '9'}\n", + "cell 8 1 {'.', '9', '8', '7', '2'} {'.', '9', '8', '1', '3', '2'} {'1', '4', '.', '9'}\n", + "cell 8 5 {'.', '9', '8', '7', '2'} {'9', '.', '3', '8'} {'.', '8', '3', '7', '2'}\n", + "cell 8 6 {'.', '9', '8', '7', '2'} {'1', '4', '.', '5'} {'2', '.', '5', '8'}\n", + "cell 8 7 {'.', '9', '8', '7', '2'} {'.', '8'} {'2', '.', '5', '8'}\n" + ] + } + ], + "source": [ + "# Example in plain python using loops and lists\n", + "for row_num, row in enumerate(puzzle):\n", + " for col_num, cell in enumerate(row):\n", + " if cell != '.':\n", + " continue\n", + " row_set = set(row)\n", + " col_set = set([puzzle[i][col_num] for i in range(9)])\n", + " row_lower, row_upper = row_num//3*3, row_num//3*3+3\n", + " col_lower, col_upper = col_num//3*3, col_num//3*3+3\n", + " square_set = set([puzzle[i][j] for i in range(row_lower, row_upper) for j in range(col_lower, col_upper)])\n", + "\n", + " print('cell', row_num, col_num, row_set, col_set, square_set)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example code using Numpy\n", + "For problems like this, numpy has a lot of advantages over regular python. We can still use loops to step through cells in the puzzle if we want, but many opereations can be vectorized to reduce the need for loops, and numpy array slicing makes it easier to select a row, column, or a square from the array than using plain python lists. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cell 0 0 [0 5] [0 5 7] [0 2 9]\n", + "cell 0 1 [0 5] [0 1 2 3 8 9] [0 2 9]\n", + "cell 0 2 [0 5] [0 4 9] [0 2 9]\n", + "cell 0 3 [0 5] [0 2 3 7] [0 2 9]\n", + "cell 0 4 [0 5] [0 2 4 6 8] [0 2 9]\n", + "cell 0 5 [0 5] [0 3 8 9] [0 2 9]\n", + "cell 0 6 [0 5] [0 1 4 5] [0 3 5]\n", + "cell 0 7 [0 5] [0 8] [0 3 5]\n", + "cell 1 0 [0 2 9] [0 5 7] [0 2 9]\n", + "cell 1 2 [0 2 9] [0 4 9] [0 2 9]\n", + "cell 1 3 [0 2 9] [0 2 3 7] [0 2 9]\n", + "cell 1 4 [0 2 9] [0 2 4 6 8] [0 2 9]\n", + "cell 1 6 [0 2 9] [0 1 4 5] [0 3 5]\n", + "cell 1 7 [0 2 9] [0 8] [0 3 5]\n", + "cell 1 8 [0 2 9] [0 2 3 5] [0 3 5]\n", + "cell 2 0 [0 2 3 9] [0 5 7] [0 2 9]\n", + "cell 2 2 [0 2 3 9] [0 4 9] [0 2 9]\n", + "cell 2 3 [0 2 3 9] [0 2 3 7] [0 2 9]\n", + "cell 2 5 [0 2 3 9] [0 3 8 9] [0 2 9]\n", + "cell 2 6 [0 2 3 9] [0 1 4 5] [0 3 5]\n", + "cell 2 7 [0 2 3 9] [0 8] [0 3 5]\n", + "cell 3 2 [0 1 3 4 7 8] [0 4 9] [0 3 5 7 8]\n", + "cell 3 3 [0 1 3 4 7 8] [0 2 3 7] [0 3 4 6 8]\n", + "cell 3 7 [0 1 3 4 7 8] [0 8] [0 1 4]\n", + "cell 3 8 [0 1 3 4 7 8] [0 2 3 5] [0 1 4]\n", + "cell 4 0 [0 3 6] [0 5 7] [0 3 5 7 8]\n", + "cell 4 1 [0 3 6] [0 1 2 3 8 9] [0 3 5 7 8]\n", + "cell 4 2 [0 3 6] [0 4 9] [0 3 5 7 8]\n", + "cell 4 5 [0 3 6] [0 3 8 9] [0 3 4 6 8]\n", + "cell 4 6 [0 3 6] [0 1 4 5] [0 1 4]\n", + "cell 4 7 [0 3 6] [0 8] [0 1 4]\n", + "cell 4 8 [0 3 6] [0 2 3 5] [0 1 4]\n", + "cell 5 2 [0 4 5 8] [0 4 9] [0 3 5 7 8]\n", + "cell 5 3 [0 4 5 8] [0 2 3 7] [0 3 4 6 8]\n", + "cell 5 4 [0 4 5 8] [0 2 4 6 8] [0 3 4 6 8]\n", + "cell 5 5 [0 4 5 8] [0 3 8 9] [0 3 4 6 8]\n", + "cell 5 7 [0 4 5 8] [0 8] [0 1 4]\n", + "cell 5 8 [0 4 5 8] [0 2 3 5] [0 1 4]\n", + "cell 6 0 [0 1 3 5 8] [0 5 7] [0 1 4 9]\n", + "cell 6 2 [0 1 3 5 8] [0 4 9] [0 1 4 9]\n", + "cell 6 3 [0 1 3 5 8] [0 2 3 7] [0 2 3 7 8]\n", + "cell 6 4 [0 1 3 5 8] [0 2 4 6 8] [0 2 3 7 8]\n", + "cell 6 8 [0 1 3 5 8] [0 2 3 5] [0 2 5 8]\n", + "cell 7 0 [0 2 4] [0 5 7] [0 1 4 9]\n", + "cell 7 1 [0 2 4] [0 1 2 3 8 9] [0 1 4 9]\n", + "cell 7 4 [0 2 4] [0 2 4 6 8] [0 2 3 7 8]\n", + "cell 7 5 [0 2 4] [0 3 8 9] [0 2 3 7 8]\n", + "cell 7 6 [0 2 4] [0 1 4 5] [0 2 5 8]\n", + "cell 7 7 [0 2 4] [0 8] [0 2 5 8]\n", + "cell 7 8 [0 2 4] [0 2 3 5] [0 2 5 8]\n", + "cell 8 0 [0 2 7 8 9] [0 5 7] [0 1 4 9]\n", + "cell 8 1 [0 2 7 8 9] [0 1 2 3 8 9] [0 1 4 9]\n", + "cell 8 5 [0 2 7 8 9] [0 3 8 9] [0 2 3 7 8]\n", + "cell 8 6 [0 2 7 8 9] [0 1 4 5] [0 2 5 8]\n", + "cell 8 7 [0 2 7 8 9] [0 8] [0 2 5 8]\n" + ] + } + ], + "source": [ + "# Example in numpy using numpy arrays and broadcasting/vectorization\n", + "import numpy as np\n", + "puzzle = '........5.2...9....9..2...373..481.....36....58....4...1...358...42.......978...2'\n", + "puzzle = puzzle.replace('.', '0')\n", + "puzzle = np.array(list(puzzle)).astype(np.int8).reshape(9, 9)\n", + "\n", + "for row_num in range(9):\n", + " for col_num in range(9):\n", + " cell = puzzle[row_num, col_num]\n", + " if cell != 0:\n", + " continue\n", + " row_set = np.unique(puzzle[row_num])\n", + " col_set = np.unique(puzzle[:, col_num])\n", + " row_lower, row_upper = row_num//3*3, row_num//3*3+3\n", + " col_lower, col_upper = col_num//3*3, col_num//3*3+3\n", + " square_set = np.unique(puzzle[row_lower:row_upper, col_lower:col_upper])\n", + "\n", + " print('cell', row_num, col_num, row_set, col_set, square_set)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# And if we wanted to get a little more weird with numpy, we could make a 3d array\n", + "# having boolean values for possible values of each cell, and a shape of (9, 9, 9):\n", + "import numpy as np\n", + "puzzle = '........5.2...9....9..2...373..481.....36....58....4...1...358...42.......978...2'\n", + "puzzle = puzzle.replace('.', '0')\n", + "puzzle = np.array(list(puzzle)).astype(np.int8).reshape(9, 9)\n", + "possible_values = np.ones((9, 9, 9), dtype=bool)\n", + "\n", + "for row_num in range(9):\n", + " pass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Recursion\n", + "A side effect of using search, or optimized search, to solve a sudoku puzzle is that we require\n", + "recursion to evaluate a changing board while tracking our progress and what has been tried so far. \n", + "\n", + "### Stack based approach \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Recursive function approach" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 7a0b38a5085f6fb461469a14d0ab1681a3de2f90 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 7 Nov 2024 15:01:33 -0800 Subject: [PATCH 123/163] update schedule --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 86774cc..428befa 100644 --- a/README.md +++ b/README.md @@ -12,15 +12,13 @@ See the Notebooks list below for a more detailed list. ## Current Schedule: We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. -* Wednesday Oct 23 4PM-5PM -* Wednesday Oct 30 4PM-5PM -* Thursday Nov 7 4:30PM to 5:30PM -* Thursday Nov 14 - 4:30 to 5:30PM (in the quiet room) -* Thursday Nov 21 4:30PM to 5:30PM +* Thursday Nov 07 - 4:30PM to 5:30PM +* Thursday Nov 14 - 4:30PM to 5:30PM (in the quiet room) +* Thursday Nov 21 - 4:30PM to 5:30PM * Thursday Nov 28 - NO MEETING Thanksgiving -* Thursday Dec 5 - 4:30PM to 5:30PM -* Thursday Dec 12 - 4:30PM to 5:30PM -* Thursday Dec 19 - 4:30P to 5:30PM (in the quiet room) +* Thursday Dec 05 - 4:30PM to 5:30PM +* Thursday Dec 12 - 4:30PM to 5:30PM +* Thursday Dec 19 - NO MEETING Library Winter Wonderland Event Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library". From 86e00c5fbd4e48a0369ef39e64afe44095a6b9a6 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 7 Nov 2024 21:04:53 -0800 Subject: [PATCH 124/163] add a problem --- B-Dictionaries_and_Loops.ipynb | 45 +++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/B-Dictionaries_and_Loops.ipynb b/B-Dictionaries_and_Loops.ipynb index fee1141..5014190 100644 --- a/B-Dictionaries_and_Loops.ipynb +++ b/B-Dictionaries_and_Loops.ipynb @@ -116,6 +116,49 @@ "print('Colors now:', colors.items())" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "In the first cell below, we initialize an empty dictionary. In the cell afterward:\n", + "* Let's prompt the user for a color and for a thing.\n", + "* Then put the color and thing into the dictionary as a key value pair.\n", + "* Finally print out the dictionary. \n", + "\n", + "Each time you run the cell, it should add another thing into the dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing an empty dictionary:\n", + "things_by_color = {}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Your code here:\n", + "# Prompt the user for a color:\n", + "color = input('Enter the color of a thing: ')\n", + "\n", + "# Prompt the user for a thing:\n", + "thing = input...\n", + "\n", + "# Store the thing in the dictionary using the color as the key:\n", + "...\n", + "\n", + "# Print the dictionary:\n", + "..." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -176,7 +219,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let's play with all of this!\n", + "#### *Exercise*:\n", "\n" ] }, From aedfbbf4c7db0aed25752a0e333eb811a9f24556 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 7 Nov 2024 21:05:13 -0800 Subject: [PATCH 125/163] add project sollution --- P-Project_Solutions/P-Sudoku_Solver.ipynb | 262 ++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 P-Project_Solutions/P-Sudoku_Solver.ipynb diff --git a/P-Project_Solutions/P-Sudoku_Solver.ipynb b/P-Project_Solutions/P-Sudoku_Solver.ipynb new file mode 100644 index 0000000..b4c9aab --- /dev/null +++ b/P-Project_Solutions/P-Sudoku_Solver.ipynb @@ -0,0 +1,262 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import copy\n", + "\n", + "SAMPLES = [\n", + " '...81.....2........1.9..7...7..25.934.2............5...975.....563.....4......68.',\n", + " '1..5.37..6.3..8.9......98...1.......8761..........6...........7.8.9.76.47...6.312',\n", + " '..5...74.3..6...19.....1..5...7...2.9....58..7..84......3.9...2.9.4.....8.....1.3',\n", + " '........5.2...9....9..2...373..481.....36....58....4...1...358...42.......978...2',\n", + "]\n", + "NUMBERS = '123456789'" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "def checkIfValid(puzzle):\n", + " '''Check rows for duplicates,\n", + " Check cols for duplicates,\n", + " Check boxes for duplicates'''\n", + " # Check rows\n", + " for n in range(9):\n", + " row = puzzle[n]\n", + " if len(row) != len(set(row)):\n", + " return False\n", + " # Check cols\n", + " for n in range(9):\n", + " col = [puzzle[i][n] for i in range(9)]\n", + " if len(col) != len(set(col)):\n", + " return False\n", + " # Check boxes\n", + " for i in range(0, 9, 3):\n", + " for j in range(0, 9, 3):\n", + " box = [puzzle[i + x][j + y] for x in range(3) for y in range(3)]\n", + " if len(box) != len(set(box)):\n", + " return False\n", + " return True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def mostBasicDepthSearch(parent_puzzle, depth=0):\n", + " '''Solve the puzzle'''\n", + " # Make a unique copy of the puzzle so we don't modify paren't version\n", + " puzzle = copy.deepcopy(parent_puzzle)\n", + "\n", + " # Find the first cell that is empty\n", + " for row_num, row in enumerate(parent_puzzle):\n", + " for col_num, cell in enumerate(row):\n", + " # Skip known cells\n", + " if cell != 0:\n", + " continue\n", + " \n", + " row_set = set(row)\n", + " col_set = set([puzzle[i][col_num] for i in range(9)])\n", + " row_lower, row_upper = row_num//3*3, row_num//3*3+3\n", + " col_lower, col_upper = col_num//3*3, col_num//3*3+3\n", + " square_set = set([puzzle[i][j] for i in range(row_lower, row_upper) for j in range(col_lower, col_upper)])\n", + "\n", + " # Check for missing numbers\n", + " combined_set = row_set.union(col_set).union(square_set)\n", + " missing_set = set(NUMBERS).difference(combined_set)\n", + "\n", + " # Try each valid number\n", + " for number in missing_set:\n", + " puzzle[row_num][col_num] = number\n", + " child_puzzle = mostBasicDepthSearch(puzzle, depth+1)\n", + " if child_puzzle:\n", + " return child_puzzle\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def doTheThing(parent_puzzle, depth=0):\n", + " '''Solve the puzzle'''\n", + " # Make a unique copy of the puzzle so we don't modify paren't version\n", + " puzzle = copy.deepcopy(parent_puzzle)\n", + "\n", + " # Compute the set of all possible numbers for each cell\n", + " possible_numbers = [[set() for _ in range(9)] for _ in range(9)]\n", + " for row_num, row in enumerate(parent_puzzle):\n", + " for col_num, cell in enumerate(row):\n", + " # Skip known cells\n", + " if cell != 0:\n", + " continue\n", + " \n", + " row_set = set(row)\n", + " col_set = set([puzzle[i][col_num] for i in range(9)])\n", + " row_lower, row_upper = row_num//3*3, row_num//3*3+3\n", + " col_lower, col_upper = col_num//3*3, col_num//3*3+3\n", + " square_set = set([puzzle[i][j] for i in range(row_lower, row_upper) \n", + " for j in range(col_lower, col_upper)])\n", + "\n", + " # Check for missing numbers\n", + " combined_set = row_set.union(col_set).union(square_set)\n", + " missing_set = set(NUMBERS).difference(combined_set)\n", + " possible_numbers[row_num][col_num] = missing_set\n", + " \n", + " # Check for naked singles\n", + " for row_num, row in enumerate(possible_numbers):\n", + " for col_num, possible in enumerate(row):\n", + " if len(possible) == 1:\n", + " # We found a naked single\n", + " puzzle[row_num][col_num] = possible.pop()\n", + "\n", + " # Check for hidden singles\n", + " for row_num, row in enumerate(possible_numbers):\n", + " for col_num, possible in enumerate(row):\n", + " # Check each number to see if it is not possible for each of...\n", + " for number in possible:\n", + " # Check the row\n", + " row_set = set.union(*[possible_numbers[row_num][i] \n", + " for i in range(9) if i != col_num])\n", + " if number not in row_set:\n", + " puzzle[row_num][col_num] = number\n", + " break\n", + " # Check the col\n", + " col_set = set.union(*[possible_numbers[i][col_num] \n", + " for i in range(9) if i != row_num])\n", + " if number not in col_set:\n", + " puzzle[row_num][col_num] = number\n", + " break\n", + " # Check the square\n", + " row_lower, row_upper = row_num//3*3, row_num//3*3+3\n", + " col_lower, col_upper = col_num//3*3, col_num//3*3+3\n", + " square_set = set.union(*[possible_numbers[i][j] \n", + " for i in range(row_lower, row_upper) \n", + " for j in range(col_lower, col_upper) \n", + " if i != row_num and j != col_num])\n", + " if number not in square_set:\n", + " puzzle[row_num][col_num] = number\n", + " break\n", + "\n", + " # Make a guess for a cell with the fewest possible numbers\n", + " min_possible = 10\n", + " min_loc = None\n", + " for row_num, row in enumerate(possible_numbers):\n", + " for col_num, possible in enumerate(row):\n", + " if len(possible) == 0:\n", + " continue\n", + " if len(possible) < min_possible:\n", + " min_possible = len(possible)\n", + " min_loc = (row_num, col_num)\n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "...81.....2........1.9..7...7..25.934.2............5...975.....563.....4......68.\n", + "[0, 0, 0, 8, 1, 0, 0, 0, 0]\n", + "[0, 2, 0, 0, 0, 0, 0, 0, 0]\n", + "[0, 1, 0, 9, 0, 0, 7, 0, 0]\n", + "[0, 7, 0, 0, 2, 5, 0, 9, 3]\n", + "[4, 0, 2, 0, 0, 0, 0, 0, 0]\n", + "[0, 0, 0, 0, 0, 0, 5, 0, 0]\n", + "[0, 9, 7, 5, 0, 0, 0, 0, 0]\n", + "[5, 6, 3, 0, 0, 0, 0, 0, 4]\n", + "[0, 0, 0, 0, 0, 0, 6, 8, 0]\n", + "\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 10\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(row)\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28mprint\u001b[39m()\n\u001b[0;32m---> 10\u001b[0m solution \u001b[38;5;241m=\u001b[39m \u001b[43mmostBasicDepthSearch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpuzzle\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m row \u001b[38;5;129;01min\u001b[39;00m solution:\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28mprint\u001b[39m(row)\n", + "Cell \u001b[0;32mIn[14], line 26\u001b[0m, in \u001b[0;36mmostBasicDepthSearch\u001b[0;34m(parent_puzzle, depth)\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m number \u001b[38;5;129;01min\u001b[39;00m missing_set:\n\u001b[1;32m 25\u001b[0m puzzle[row_num][col_num] \u001b[38;5;241m=\u001b[39m number\n\u001b[0;32m---> 26\u001b[0m child_puzzle \u001b[38;5;241m=\u001b[39m \u001b[43mmostBasicDepthSearch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpuzzle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m child_puzzle:\n\u001b[1;32m 28\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m child_puzzle\n", + "Cell \u001b[0;32mIn[14], line 26\u001b[0m, in \u001b[0;36mmostBasicDepthSearch\u001b[0;34m(parent_puzzle, depth)\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m number \u001b[38;5;129;01min\u001b[39;00m missing_set:\n\u001b[1;32m 25\u001b[0m puzzle[row_num][col_num] \u001b[38;5;241m=\u001b[39m number\n\u001b[0;32m---> 26\u001b[0m child_puzzle \u001b[38;5;241m=\u001b[39m \u001b[43mmostBasicDepthSearch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpuzzle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m child_puzzle:\n\u001b[1;32m 28\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m child_puzzle\n", + " \u001b[0;31m[... skipping similar frames: mostBasicDepthSearch at line 26 (48 times)]\u001b[0m\n", + "Cell \u001b[0;32mIn[14], line 26\u001b[0m, in \u001b[0;36mmostBasicDepthSearch\u001b[0;34m(parent_puzzle, depth)\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m number \u001b[38;5;129;01min\u001b[39;00m missing_set:\n\u001b[1;32m 25\u001b[0m puzzle[row_num][col_num] \u001b[38;5;241m=\u001b[39m number\n\u001b[0;32m---> 26\u001b[0m child_puzzle \u001b[38;5;241m=\u001b[39m \u001b[43mmostBasicDepthSearch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpuzzle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepth\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m child_puzzle:\n\u001b[1;32m 28\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m child_puzzle\n", + "Cell \u001b[0;32mIn[14], line 4\u001b[0m, in \u001b[0;36mmostBasicDepthSearch\u001b[0;34m(parent_puzzle, depth)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m'''Solve the puzzle'''\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# Make a unique copy of the puzzle so we don't modify paren't version\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m puzzle \u001b[38;5;241m=\u001b[39m \u001b[43mcopy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mparent_puzzle\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# Find the first cell that is empty\u001b[39;00m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m row_num, row \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(parent_puzzle):\n", + "File \u001b[0;32m/usr/lib/python3.12/copy.py:136\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 134\u001b[0m copier \u001b[38;5;241m=\u001b[39m _deepcopy_dispatch\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 136\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28missubclass\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mtype\u001b[39m):\n", + "File \u001b[0;32m/usr/lib/python3.12/copy.py:196\u001b[0m, in \u001b[0;36m_deepcopy_list\u001b[0;34m(x, memo, deepcopy)\u001b[0m\n\u001b[1;32m 194\u001b[0m append \u001b[38;5;241m=\u001b[39m y\u001b[38;5;241m.\u001b[39mappend\n\u001b[1;32m 195\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m x:\n\u001b[0;32m--> 196\u001b[0m append(\u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 197\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\n", + "File \u001b[0;32m/usr/lib/python3.12/copy.py:136\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 134\u001b[0m copier \u001b[38;5;241m=\u001b[39m _deepcopy_dispatch\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 136\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28missubclass\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mtype\u001b[39m):\n", + "File \u001b[0;32m/usr/lib/python3.12/copy.py:196\u001b[0m, in \u001b[0;36m_deepcopy_list\u001b[0;34m(x, memo, deepcopy)\u001b[0m\n\u001b[1;32m 194\u001b[0m append \u001b[38;5;241m=\u001b[39m y\u001b[38;5;241m.\u001b[39mappend\n\u001b[1;32m 195\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m x:\n\u001b[0;32m--> 196\u001b[0m \u001b[43mappend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "# test_function = mostBasicDepthSearch\n", + "test_function = doTheThing\n", + "\n", + "for sample in SAMPLES:\n", + " print(sample)\n", + " sample = list(sample)\n", + " sample = [int(n) if n in NUMBERS else 0 for n in sample]\n", + " # Convert it to a 2D list\n", + " puzzle = [sample[i:i+9] for i in range(0, 81, 9)]\n", + " for row in puzzle:\n", + " print(row)\n", + " print()\n", + " solution = test_function(puzzle)\n", + " for row in solution:\n", + " print(row)\n", + " is_valid = checkIfValid(solution)\n", + " print('Valid:', is_valid)\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From bb79b518993633b1c0b66b9743e5f24d0013b166 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 17 Nov 2024 12:20:27 -0800 Subject: [PATCH 126/163] new content! --- ... => A-Getting_Started_and_Data_Types.ipynb | 21 +- A1-Built_in_Operations.ipynb | 219 ++++++++++++++++ D6-Plotly_Express_and_Dash.ipynb | 233 ++++++++++++++++++ P-Project-Sudoku_Solver.ipynb | 2 +- P-Project_Solutions/P-Sudoku_Solver.ipynb | 2 +- 5 files changed, 473 insertions(+), 4 deletions(-) rename A-Getting_Started.ipynb => A-Getting_Started_and_Data_Types.ipynb (98%) create mode 100644 A1-Built_in_Operations.ipynb create mode 100644 D6-Plotly_Express_and_Dash.ipynb diff --git a/A-Getting_Started.ipynb b/A-Getting_Started_and_Data_Types.ipynb similarity index 98% rename from A-Getting_Started.ipynb rename to A-Getting_Started_and_Data_Types.ipynb index ebaf0bf..2f9a09d 100644 --- a/A-Getting_Started.ipynb +++ b/A-Getting_Started_and_Data_Types.ipynb @@ -710,7 +710,7 @@ "metadata": {}, "source": [ "# Tuples\n", - "Tuples are another type of collection, like lists, but cannot be changed once defined - they are immutable. When you see a tuple, it implies finality. Tuple objects only have a couple of built in functions:\n", + "Tuples are another type of collection, like lists, but cannot be changed once defined - they are **immutable**. When you see a tuple, it implies finality. Tuple objects only have a couple of built in functions:\n", "\n", " >>> all_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')\n", " >>> all_colors.\n", @@ -743,6 +743,23 @@ "all_colors = ('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Where did the word *tuple* come from? Tuples are sequences of numbers (although in python the can contain any objects). \n", + "\n", + "1-tuple, 2-tuple, 3-tuple, n-tuple:\n", + "* single\n", + "* double\n", + "* tripple\n", + "* quadruple\n", + "* pentuple\n", + "* ...\n", + "* n-tuple!\n", + "https://en.wikipedia.org/wiki/Tuple" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -864,7 +881,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Week 1 Turtle Challenge!\n", + "# First Turtle Challenge!\n", "Turtle is a simple python graphics library. You tell the turtle which directon to walk, how far to walk, and what color to draw, and the turtle draws lines for you!\n", "\n", "This week, we'll get turtle working, and make some simple patterns. \n", diff --git a/A1-Built_in_Operations.ipynb b/A1-Built_in_Operations.ipynb new file mode 100644 index 0000000..ff74a6b --- /dev/null +++ b/A1-Built_in_Operations.ipynb @@ -0,0 +1,219 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section A1 - Built-in Operations\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "**Topics**: Python built-in functions for:\n", + "* Collections\n", + "* Math\n", + "* ...\n", + "\n", + "There's a list of built-in functions here: https://docs.python.org/3/library/functions.html. It's just an alphabetical list, and there's a lot there, so we'll try to break things into some useful categories here!\n", + "\n", + "## Collection Interaction Functions\n", + "These groups are for creating and working with collections of things, including lists, sets, dictionaries, tuples, etc!\n", + "\n", + "### Collection Creation and Conversion\n", + "We looked at the top few of these in the datatypes sections in the last notebook. The bottom ones are more obscure...\n", + "\n", + "* `list()`: Creates or converts an iterable to a list.\n", + "* `tuple()`: Creates or converts an iterable to a tuple.\n", + "* `set()`: Creates or converts an iterable to a set.\n", + "* `dict()`: Creates a dictionary.\n", + "* `frozenset()`: Converts an iterable to an immutable set.\n", + "* `bytes()`: Converts to bytes, often from a collection of integers.\n", + "* `bytearray()`: Creates a mutable byte array from a collection.\n", + "\n", + "### Element Access and Inspection\n", + "Most of these do exactly what you'd expect. Max, min, and sum require your iterator to contain numeric types. Sorted and reverse sort and reverse the order of your collection. Enumerate and zip are a little more complicated. There are examples for them below the following exercise.\n", + "\n", + "* `len()`: Returns the number of items in a collection.\n", + "* `max()` and `min()`: Return the maximum and minimum values in a collection.\n", + "* `sum()`: Adds all items in a collection of numbers.\n", + "* `sorted()`: Returns a sorted list from the items in a collection.\n", + "* `reversed()`: Returns a reversed iterator for a collection. Fwiw, reversed(x) is equivelant to x[::-1] in many cases.\n", + "\n", + "#### *Exercise*:\n", + "* Try each of len, max, min, sum, sorted, reversed on the following 'some_numbers' list. \n", + "* Compute the average of some_numbers using len and sum:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "some_numbers = [1, 5, 9, 2, 4, 8]\n", + "print('some_numbers:', some_numbers)\n", + "print('len of some_numbers:', ...)\n", + "...\n", + "print('average of some_numbers:', ...)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These two are a little more complicated, but reasonably fall into the same category with sorted() and reversed(). \n", + "\n", + "* `enumerate()`: Adds an index to each item in a collection, useful for loops.\n", + "* `zip()`: Aggregates elements from multiple collections into tuples.\n", + "\n", + "**Enumerate** pairs each item in a a collection with a number indicating it's position in the collection and is very useful for for loops where you need to know the position of items that you iterate over. \n", + "\n", + "**Zip** takes two collections and pairs their elements into a new collection and is useful for, among other things, creating dictionaries. \n", + "\n", + "An Example using both of these:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Enumerate:\n", + "some_stuff = ['apple', 'berry', 'car', 'cat']\n", + "print('some_stuff:', some_stuff)\n", + "print('some_stuff enumerated:', list(enumerate(some_stuff)))\n", + "for n, thing in enumerate(some_stuff):\n", + " print(f'The position of {thing} in some_stuff is: {n}')\n", + "\n", + "# Zip:\n", + "colors = ['red', 'green', 'blue', 'black']\n", + "print('stuff zipped with colors:', list(zip(some_stuff, colors)))\n", + "stuff_colors = dict(zip(some_stuff, colors))\n", + "print('and as a dictoinary:', stuff_colors)\n", + "print('The color of the cat is:', stuff_colors['cat'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Filtering and Transformation\n", + "These are \n", + "\n", + "filter(): Filters items in a collection based on a function.\n", + "map(): Applies a function to each item in a collection, returning an iterator." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "Iteration and Access Control:\n", + "\n", + "all(): Checks if all elements in a collection are True.\n", + "any(): Checks if any element in a collection is True.\n", + "iter(): Returns an iterator for a collection.\n", + "next(): Retrieves the next item from an iterator.\n", + "range(): Generates a sequence of numbers, useful for collection indices.\n", + "slice(): Defines a slice, often used to access parts of collections.\n", + "\n", + "\n", + "\n", + "## Iterator and Collection Operations\n", + "Functions to create and work with iterators and iterable objects.\n", + "\n", + "iter(): Returns an iterator object.\n", + "next(): Retrieves the next item from an iterator.\n", + "enumerate(): Adds a counter to an iterable.\n", + "zip(): Aggregates elements from multiple iterables.\n", + "filter(): Filters elements in an iterable based on a function.\n", + "map(): Applies a function to all items in an iterable.\n", + "aiter() and anext(): Used for asynchronous iteration (for async generators).\n", + "\n", + "\n", + "## Mathematical Operations\n", + "* `pow()`: Returns a number raised to a power.\n", + "* `round()`: Rounds a number to a specified precision.\n", + "* `sum()`: Adds all items in an iterable.\n", + "* `min()` and `max()`: Return the minimum and maximum values in an iterable.\n", + "* `divmod()`: Returns the quotient and remainder of a division.\n", + "\n", + "There is no built in square root, but recall from math class that sqrt(x) is the same as pow(x, 0.5), x to the 1/2 power.\n", + "A few examples:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# \n", + "some_numbers = [2, 5, 13, 4, 7, 22]\n", + "sum_of_some_numbers = ...\n", + "average_of_some_numbers = ...\n", + "\n", + "# Calculate the length of the hypotenuse of a right triangle:\n", + "side_a_len = 3\n", + "side_b_len = 4\n", + "hypotenuse_len = ..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What else?" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/D6-Plotly_Express_and_Dash.ipynb b/D6-Plotly_Express_and_Dash.ipynb new file mode 100644 index 0000000..4136d8c --- /dev/null +++ b/D6-Plotly_Express_and_Dash.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section D6 - Plotly Express and Dash\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "Plotly is a graphing library, and Plotly Express is a wrapper for it that provides a consistent experience for making a wide variety of plots. It's the recommended starting point for plotly. If you run into a configuration that is'nt supported in express, then you can try using plotly directly..\n", + "\n", + "And Dash is a framework for making interactive visualizations using Plotly (Express). It can pop up an interactive window, a browser tab, or inline graph inside your notebook with interactive elements. Dash is also designed to build elements of larger web pages/dashboards for business/whatever. \n", + "\n", + "**Our Plan**:\n", + "* We'll dive into Plotly Express to learn about how to make and customize plots\n", + "* We'll look at a simple Dash app\n", + "* And we'll make a more complex Dash app\n", + "\n", + "**References**: \n", + "* [Dash in Jupyter](https://dash.plotly.com/dash-in-jupyter)\n", + "* [Plotly Tutorial](https://dash.plotly.com/tutorial)\n", + "* [Python Decorators](https://peps.python.org/pep-0318/)\n", + "* [Plotly Express](https://plotly.com/python/plotly-express/)\n", + "\n", + "## Anatomy of a simple Dash App:\n", + "Let's go through tke example code from the https://dash.plotly.com/minimal-app. The code is in the next cell. Here's a sumarry:\n", + "\n", + "* import statements\n", + "* read in a file as a pandas dataframe\n", + "* initialize the app\n", + "* define the **layout** - this is a list of elements to be shown - The **id** of these is used further down\n", + " * A heading\n", + " * A droptown menue with unique countries from our dataframe, including a default selection\n", + " * The graph we want to show\n", + "* The **update_graph** function\n", + " * The **@callback** stuff above it is a *decorator* that lets us specify the inputs and outputs our function has. \n", + " * These need to use the **id** from each item in our layout. \n", + " * Each **Input** each generate an argument to be passed to our update_graph function. \n", + " * The sequence of the arguments to update_graph matches the seqence that Inputs are listed in the decorator\n", + " * The code inside of the **update_graph** function handles any inputs (like drop down menus) and generates a graph.\n", + "* app.run starts the app. It calls update_graph once automaticaly, and ensures that update_graph gets called again when any of our inputs are interacted with. E.g. if we change the country drop down selction, it gets called. The if __name__ line is a convention in scripts, but behaves the same in a notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px\n", + "import pandas as pd\n", + "\n", + "df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')\n", + "\n", + "app = Dash()\n", + "\n", + "app.layout = [\n", + " html.H1(children='Title of Dash App', style={'textAlign':'center'}),\n", + " dcc.Dropdown(df.country.unique(), 'Canada', id='dropdown-selection'),\n", + " dcc.Graph(id='graph-content')\n", + "]\n", + "\n", + "@callback(\n", + " Output('graph-content', 'figure'),\n", + " Input('dropdown-selection', 'value')\n", + ")\n", + "def update_graph(value):\n", + " dff = df[df.country==value]\n", + " return px.line(dff, x='year', y='pop')\n", + "\n", + "if __name__ == '__main__':\n", + " app.run(debug=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotly Express" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# %pip install dash\n", + "\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "app = Dash(__name__)\n", + "import plotly.express as px\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can set the display mode for the plots to one of:\n", + "* \"external\" to pop up a window with the plot\n", + "* \"tab\" to open a separate browser tab\n", + "* \"jupyterlab\" to open the plot in line below the cell in the notebook" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "app.run(jupyter_mode=\"jupyterlab\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's import the same data we used n the Pandas_Graphing notebook to play with here:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " gage height ft temperature C \\\n", + "datetime \n", + "2024-09-15 20:00:00 5.37 20.4 \n", + "2024-09-15 20:15:00 5.58 20.4 \n", + "2024-09-15 20:30:00 5.75 20.3 \n", + "2024-09-15 20:45:00 5.99 20.3 \n", + "2024-09-15 21:00:00 6.21 20.3 \n", + "\n", + " specific conductance uS/cm dissolved oxygen mg/L pH \\\n", + "datetime \n", + "2024-09-15 20:00:00 159.0 8.6 7.8 \n", + "2024-09-15 20:15:00 165.0 8.6 7.8 \n", + "2024-09-15 20:30:00 165.0 8.6 7.8 \n", + "2024-09-15 20:45:00 166.0 8.6 7.8 \n", + "2024-09-15 21:00:00 166.0 8.6 7.9 \n", + "\n", + " dom ug/L salinity ppt fchl mg/L nitrate mg/L \n", + "datetime \n", + "2024-09-15 20:00:00 14.7 0.1 NaN NaN \n", + "2024-09-15 20:15:00 16.6 0.1 NaN NaN \n", + "2024-09-15 20:30:00 16.5 0.1 NaN NaN \n", + "2024-09-15 20:45:00 16.7 0.1 NaN NaN \n", + "2024-09-15 21:00:00 16.7 0.1 NaN NaN \n" + ] + } + ], + "source": [ + "data_url = 'https://waterservices.usgs.gov/nwis/iv/?sites=11455485&startDT=2024-09-15T20:55:29.967-07:00&endDT=2024-10-15T20:55:29.967-07:00&format=rdb'\n", + "tol_all= pd.read_csv(data_url, sep='\\t', comment='#', header=0)\n", + "tol_all = tol_all.drop(tol_all.index[0])\n", + "\n", + "cols = {'datetime': 'datetime',\n", + " '288768_00065': 'gage height ft',\n", + " '288432_00010': 'temperature C',\n", + " '288434_00095': 'specific conductance uS/cm',\n", + " '291459_00300': 'dissolved oxygen mg/L',\n", + " '291463_00400': 'pH',\n", + " '304254_32295': 'dom ug/L',\n", + " '305297_90860': 'salinity ppt',\n", + " '291460_32316': 'fchl mg/L', # chlorophyll\n", + " '313341_99133': 'nitrate mg/L'\n", + " } \n", + "tol = tol_all[cols.keys()].rename(columns=cols)\n", + "tol['datetime'] = pd.to_datetime(tol['datetime'])\n", + "tol = tol.set_index('datetime')\n", + "tol = tol.apply(pd.to_numeric, errors='coerce')\n", + "print(tol.head())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/P-Project-Sudoku_Solver.ipynb b/P-Project-Sudoku_Solver.ipynb index 60ce588..417f00b 100644 --- a/P-Project-Sudoku_Solver.ipynb +++ b/P-Project-Sudoku_Solver.ipynb @@ -413,7 +413,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/P-Project_Solutions/P-Sudoku_Solver.ipynb b/P-Project_Solutions/P-Sudoku_Solver.ipynb index b4c9aab..3434e3a 100644 --- a/P-Project_Solutions/P-Sudoku_Solver.ipynb +++ b/P-Project_Solutions/P-Sudoku_Solver.ipynb @@ -254,7 +254,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From 0c26cfe091744b212dba1c8bed80735c02f3a835 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Tue, 19 Nov 2024 17:32:56 -0800 Subject: [PATCH 127/163] updates --- A1-Built_in_Operations.ipynb | 157 +++++++++++++--------- D3-Pandas_Graphing.ipynb | 2 +- D6-Plotly_Express_and_Dash.ipynb | 9 +- P-Project_Solutions/P-Sudoku_Solver.ipynb | 4 - 4 files changed, 100 insertions(+), 72 deletions(-) diff --git a/A1-Built_in_Operations.ipynb b/A1-Built_in_Operations.ipynb index ff74a6b..ff44bd4 100644 --- a/A1-Built_in_Operations.ipynb +++ b/A1-Built_in_Operations.ipynb @@ -9,18 +9,60 @@ "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", "**Topics**: Python built-in functions for:\n", - "* Collections\n", - "* Math\n", - "* ...\n", + "* Mathematical Operations\n", + "* Collection Functions\n", + " * Creation and manipulation\n", + " * \n", "\n", "There's a list of built-in functions here: https://docs.python.org/3/library/functions.html. It's just an alphabetical list, and there's a lot there, so we'll try to break things into some useful categories here!\n", "\n", + "## Mathematical Operations\n", + "These are the basic mathematical functoins that are included in python without importing any libraries.\n", + "\n", + "* `pow()`: Returns a number raised to a power.\n", + "* `round()`: Rounds a number to a specified precision.\n", + "* `sum()`: Adds all items in an iterable.\n", + "* `min()` and `max()`: Return the minimum and maximum values in an iterable.\n", + "* `divmod()`: Returns the quotient and remainder of a division.\n", + "\n", + "There is no built in square root, but recall from math class that `sqrt(x)` is the same as `pow(x, 0.5)`, x to the 1/2 power.\n", + "\n", + "#### *Exercise*:\n", + "Replace the ... in the following code cell using the above functions to perform the needed calculations. Recall that the formula to calculate the hypotenuse length of a right triangle is the square root of (a squared plus b squared)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# \n", + "some_numbers = [2, 5, 13, 4, 7, 22]\n", + "sum_of_some_numbers = ...\n", + "average_of_some_numbers = ...\n", + "print(f'The sum and average of {some_numbers} are {sum_of_some_numbers} and {average_of_some_numbers}, respectively.')\n", + "smallest_number = ...\n", + "print(f'And the smallest number in the list is {smallest_number}.')\n", + "\n", + "# Calculate the length of the hypotenuse of a right triangle:\n", + "side_a_len = 3\n", + "side_b_len = 4\n", + "hypotenuse_len = ...\n", + "print(f'The hypotenuse of a right triangle with side lengths of {side_a_len} and {side_b_len} is {hypotenuse_len}.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Collection Interaction Functions\n", "These groups are for creating and working with collections of things, including lists, sets, dictionaries, tuples, etc!\n", "\n", "### Collection Creation and Conversion\n", - "We looked at the top few of these in the datatypes sections in the last notebook. The bottom ones are more obscure...\n", + "We've seen many of these already. Aside from range(), everythong on this list can initialize a collection of some type and/or type-cast an object to the given type:\n", "\n", + "* `range()`: Generates a range of numbers. \n", "* `list()`: Creates or converts an iterable to a list.\n", "* `tuple()`: Creates or converts an iterable to a tuple.\n", "* `set()`: Creates or converts an iterable to a set.\n", @@ -29,14 +71,23 @@ "* `bytes()`: Converts to bytes, often from a collection of integers.\n", "* `bytearray()`: Creates a mutable byte array from a collection.\n", "\n", - "### Element Access and Inspection\n", - "Most of these do exactly what you'd expect. Max, min, and sum require your iterator to contain numeric types. Sorted and reverse sort and reverse the order of your collection. Enumerate and zip are a little more complicated. There are examples for them below the following exercise.\n", + "### Inspection and Ordering\n", + "Some of these do exactly what you'd expect:\n", + "* Max, min, and sum require your iterator to contain numeric types. \n", + "* Sorted and reverse sort and reverse the order of your collection. \n", + "* Any and all are especially interested when combined with list comprehinsions. Examples below. \n", + "* Enumerate and zip have examples below as well.\n", "\n", + "And the functions:\n", "* `len()`: Returns the number of items in a collection.\n", "* `max()` and `min()`: Return the maximum and minimum values in a collection.\n", "* `sum()`: Adds all items in a collection of numbers.\n", + "* `all()`: Checks if all elements in a collection are True.\n", + "* `any()`: Checks if any element in a collection is True.\n", "* `sorted()`: Returns a sorted list from the items in a collection.\n", "* `reversed()`: Returns a reversed iterator for a collection. Fwiw, reversed(x) is equivelant to x[::-1] in many cases.\n", + "* `enumerate()`: Adds an index to each item in a collection, useful for loops.\n", + "* `zip()`: Aggregates elements from multiple collections into tuples, useful for creating dictoinaries.\n", "\n", "#### *Exercise*:\n", "* Try each of len, max, min, sum, sorted, reversed on the following 'some_numbers' list. \n", @@ -56,20 +107,35 @@ "print('average of some_numbers:', ...)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Example with any and all**:\n", + "These both evaluate truthiness of items in the given collection, which can be useful for checking if any/all items in a collection are empty, zero, etc. They can be even more useful when combined with list comprehensions to perform a specific evaluation on each element of a collection. See below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, "source": [ "These two are a little more complicated, but reasonably fall into the same category with sorted() and reversed(). \n", "\n", - "* `enumerate()`: Adds an index to each item in a collection, useful for loops.\n", - "* `zip()`: Aggregates elements from multiple collections into tuples.\n", "\n", "**Enumerate** pairs each item in a a collection with a number indicating it's position in the collection and is very useful for for loops where you need to know the position of items that you iterate over. \n", "\n", "**Zip** takes two collections and pairs their elements into a new collection and is useful for, among other things, creating dictionaries. \n", "\n", - "An Example using both of these:" + "An Example using both of these with some print statements to show the results of enumerate and zip, as well as how they're often used. \n", + "\n", + "*Note that when we print the output of stuff like zip and enumerate, we wrap them in list() because they return a lazy-evaluating-iterator thing that doesn't print well otherwise. It's a python performance optimization thing. Try removing the list() and see what you get.*" ] }, { @@ -97,51 +163,35 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Filtering and Transformation\n", - "These are \n", + "## Iteration and Access Control:\n", "\n", - "filter(): Filters items in a collection based on a function.\n", - "map(): Applies a function to each item in a collection, returning an iterator." + "iter(): Returns an iterator for a collection.\n", + "next(): Retrieves the next item from an iterator.\n", + "slice(): Defines a slice, often used to access parts of collections.\n", + "aiter() and anext(): Used for asynchronous iteration (for async generators)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "## Filtering and Transformation (Functional stuff)\n", + "These functions are pretty special ...\n", "\n", + "* `filter()`: Filters items in a collection based on a function.\n", + "* `map()`: Applies a function to each item in a collection, returning an iterator.\n", + "* `lambda`: " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", - "Iteration and Access Control:\n", - "\n", - "all(): Checks if all elements in a collection are True.\n", - "any(): Checks if any element in a collection is True.\n", - "iter(): Returns an iterator for a collection.\n", - "next(): Retrieves the next item from an iterator.\n", - "range(): Generates a sequence of numbers, useful for collection indices.\n", - "slice(): Defines a slice, often used to access parts of collections.\n", - "\n", - "\n", - "\n", - "## Iterator and Collection Operations\n", - "Functions to create and work with iterators and iterable objects.\n", "\n", - "iter(): Returns an iterator object.\n", - "next(): Retrieves the next item from an iterator.\n", - "enumerate(): Adds a counter to an iterable.\n", - "zip(): Aggregates elements from multiple iterables.\n", - "filter(): Filters elements in an iterable based on a function.\n", - "map(): Applies a function to all items in an iterable.\n", - "aiter() and anext(): Used for asynchronous iteration (for async generators).\n", "\n", "\n", - "## Mathematical Operations\n", - "* `pow()`: Returns a number raised to a power.\n", - "* `round()`: Rounds a number to a specified precision.\n", - "* `sum()`: Adds all items in an iterable.\n", - "* `min()` and `max()`: Return the minimum and maximum values in an iterable.\n", - "* `divmod()`: Returns the quotient and remainder of a division.\n", - "\n", - "There is no built in square root, but recall from math class that sqrt(x) is the same as pow(x, 0.5), x to the 1/2 power.\n", - "A few examples:" + "\n" ] }, { @@ -166,26 +216,7 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "#### *Exercise*:\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# \n", - "some_numbers = [2, 5, 13, 4, 7, 22]\n", - "sum_of_some_numbers = ...\n", - "average_of_some_numbers = ...\n", - "\n", - "# Calculate the length of the hypotenuse of a right triangle:\n", - "side_a_len = 3\n", - "side_b_len = 4\n", - "hypotenuse_len = ..." - ] + "source": [] }, { "cell_type": "markdown", @@ -211,7 +242,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/D3-Pandas_Graphing.ipynb b/D3-Pandas_Graphing.ipynb index b227198..5ef586b 100644 --- a/D3-Pandas_Graphing.ipynb +++ b/D3-Pandas_Graphing.ipynb @@ -366,7 +366,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/D6-Plotly_Express_and_Dash.ipynb b/D6-Plotly_Express_and_Dash.ipynb index 4136d8c..2340178 100644 --- a/D6-Plotly_Express_and_Dash.ipynb +++ b/D6-Plotly_Express_and_Dash.ipynb @@ -8,9 +8,9 @@ "\n", "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", - "Plotly is a graphing library, and Plotly Express is a wrapper for it that provides a consistent experience for making a wide variety of plots. It's the recommended starting point for plotly. If you run into a configuration that is'nt supported in express, then you can try using plotly directly..\n", + "Plotly is a graphing library, and Plotly Express is a wrapper for it that provides a consistent experience for making a wide variety of plots. It's the recommended starting point for plotly. If you run into a configuration that is'nt supported in express, then you can try using plotly directly.\n", "\n", - "And Dash is a framework for making interactive visualizations using Plotly (Express). It can pop up an interactive window, a browser tab, or inline graph inside your notebook with interactive elements. Dash is also designed to build elements of larger web pages/dashboards for business/whatever. \n", + "And Dash is a framework for making interactive visualizations using Plotly (Express). It can pop up an interactive window, a browser tab, or inline graph inside your notebook with interactive elements. Dash is also designed to build elements of larger web pages/dashboards for business/whatever.\n", "\n", "**Our Plan**:\n", "* We'll dive into Plotly Express to learn about how to make and customize plots\n", @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -62,7 +62,7 @@ " " ], "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -81,6 +81,7 @@ "app.layout = [\n", " html.H1(children='Title of Dash App', style={'textAlign':'center'}),\n", " dcc.Dropdown(df.country.unique(), 'Canada', id='dropdown-selection'),\n", + " \n", " dcc.Graph(id='graph-content')\n", "]\n", "\n", diff --git a/P-Project_Solutions/P-Sudoku_Solver.ipynb b/P-Project_Solutions/P-Sudoku_Solver.ipynb index 3434e3a..d9ece76 100644 --- a/P-Project_Solutions/P-Sudoku_Solver.ipynb +++ b/P-Project_Solutions/P-Sudoku_Solver.ipynb @@ -158,10 +158,6 @@ " if len(possible) < min_possible:\n", " min_possible = len(possible)\n", " min_loc = (row_num, col_num)\n", - " \n", - "\n", - " \n", - " \n", "\n", " \n" ] From 641d148013c954300a355de3556d8a2d6d8936f2 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 21 Nov 2024 17:12:52 -0800 Subject: [PATCH 128/163] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 428befa..1bcb3ed 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,6 @@ See the Notebooks list below for a more detailed list. ## Current Schedule: We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. -* Thursday Nov 07 - 4:30PM to 5:30PM -* Thursday Nov 14 - 4:30PM to 5:30PM (in the quiet room) * Thursday Nov 21 - 4:30PM to 5:30PM * Thursday Nov 28 - NO MEETING Thanksgiving * Thursday Dec 05 - 4:30PM to 5:30PM From 096c591d82515815f1a510d2c3b329aac274c162 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 5 Dec 2024 16:26:03 -0800 Subject: [PATCH 129/163] updates --- A1-Built_in_Operations.ipynb | 66 +++++++++++++++++++++++++++++++--- B-Dictionaries_and_Loops.ipynb | 4 +-- 2 files changed, 63 insertions(+), 7 deletions(-) diff --git a/A1-Built_in_Operations.ipynb b/A1-Built_in_Operations.ipynb index ff44bd4..503d3cf 100644 --- a/A1-Built_in_Operations.ipynb +++ b/A1-Built_in_Operations.ipynb @@ -82,8 +82,8 @@ "* `len()`: Returns the number of items in a collection.\n", "* `max()` and `min()`: Return the maximum and minimum values in a collection.\n", "* `sum()`: Adds all items in a collection of numbers.\n", - "* `all()`: Checks if all elements in a collection are True.\n", - "* `any()`: Checks if any element in a collection is True.\n", + "* `all()`: Checks if all elements in a collection evaluate as True.\n", + "* `any()`: Checks if any element in a collection is evaluate as True.\n", "* `sorted()`: Returns a sorted list from the items in a collection.\n", "* `reversed()`: Returns a reversed iterator for a collection. Fwiw, reversed(x) is equivelant to x[::-1] in many cases.\n", "* `enumerate()`: Adds an index to each item in a collection, useful for loops.\n", @@ -112,7 +112,54 @@ "metadata": {}, "source": [ "**Example with any and all**:\n", - "These both evaluate truthiness of items in the given collection, which can be useful for checking if any/all items in a collection are empty, zero, etc. They can be even more useful when combined with list comprehensions to perform a specific evaluation on each element of a collection. See below:" + "These both evaluate truthiness of items in the given collection, which can be useful for checking if any/all items in a collection are empty, zero, etc. They can be even more useful when combined with generator expressions (like list comprehensions) to perform a specific evaluation on each element of a collection. See below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "all nonzero? False True\n", + "any even? True False\n", + "all odd? False True\n" + ] + } + ], + "source": [ + "numbers = [0, 2, 3, 4, 5]\n", + "numbers2 = [1, 3, 5, 7]\n", + "\n", + "# Check if all numbers are non-zero\n", + "all_nonzero = all(numbers)\n", + "all_nonzero2 = all(numbers2)\n", + "print('all nonzero?', all_nonzero, all_nonzero2)\n", + "\n", + "# Check if any numbers are even\n", + "any_even = any(x % 2 == 0 for x in numbers)\n", + "any_even2 = any(x % 2 == 0 for x in numbers2)\n", + "print('any even?', any_even, any_even2)\n", + "\n", + "# Check if all numbers are odd\n", + "all_odd = all(x % 2 == 1 for x in numbers)\n", + "all_odd2 = all(x % 2 == 1 for x in numbers2)\n", + "print('all odd?', all_odd, all_odd2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### *Exercise*:\n", + "We'll try a variation of the above using strings instead of numbers. Using the list provided below, check the following conditions:\n", + "* Are all items lower case? Any items?\n", + "* Are any items UPPER case?\n", + "* Do all items have two words?\n", + "* Are any items zero length? Are all items non-zero length? Try these with and without generator expressions.\n" ] }, { @@ -120,7 +167,16 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "fruit = ['red apple', 'green bananna', 'CHERRY', 'orange orange', '']\n", + "all_lower = ...\n", + "any_upper = ...\n", + "all_two_words = ...\n", + "any_zero_len = ...\n", + "...\n", + "\n", + "\n" + ] }, { "cell_type": "markdown", @@ -242,7 +298,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, diff --git a/B-Dictionaries_and_Loops.ipynb b/B-Dictionaries_and_Loops.ipynb index 5014190..a390719 100644 --- a/B-Dictionaries_and_Loops.ipynb +++ b/B-Dictionaries_and_Loops.ipynb @@ -220,7 +220,7 @@ "metadata": {}, "source": [ "#### *Exercise*:\n", - "\n" + "# TODO \n" ] }, { @@ -934,7 +934,7 @@ "\n", "Let's make a journaling tool that we can use to record things we've learned each day in class. We'll use two cells for this.\n", "\n", - "In the first cell, we can create new jornal entries. Use open(journam_file, 'w+') with a **w+** to append to the file so that if you are making multiple entries on the same date, you don't overwrite one. An entry is a single line of text from the input function.\n", + "In the first cell, we can create new jornal entries. Use `open(journam_file, 'a')` with an **a** to append to the file so that if you are making multiple entries on the same date, you don't overwrite one. An entry is a single line of text from the input function.\n", "\n", "In the second cell, get a list of journal files using os.listdir and open them one at a time to print out the journal entries. \n", "\n", From 661616216f04e3e22162898489a86fa6fcb5bb6e Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 12 Dec 2024 16:21:38 -0800 Subject: [PATCH 130/163] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1bcb3ed..0fb43d7 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,12 @@ See the Notebooks list below for a more detailed list. ## Current Schedule: We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. -* Thursday Nov 21 - 4:30PM to 5:30PM -* Thursday Nov 28 - NO MEETING Thanksgiving -* Thursday Dec 05 - 4:30PM to 5:30PM * Thursday Dec 12 - 4:30PM to 5:30PM * Thursday Dec 19 - NO MEETING Library Winter Wonderland Event +* Thursday Dec 26 - 4:30PM to 5:30PM +* Thursday Jan 02 - NO MEETING Vacation +* Thursday Jan 09 - 4:30PM to 5:30PM +* Thursdays ongoing. Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library". From 82ff7b5583cf7f349f375e1a27bc7f1da9564bbd Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 12 Dec 2024 16:22:57 -0800 Subject: [PATCH 131/163] updates --- A1-Built_in_Operations.ipynb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/A1-Built_in_Operations.ipynb b/A1-Built_in_Operations.ipynb index 503d3cf..583616f 100644 --- a/A1-Built_in_Operations.ipynb +++ b/A1-Built_in_Operations.ipynb @@ -173,8 +173,13 @@ "any_upper = ...\n", "all_two_words = ...\n", "any_zero_len = ...\n", - "...\n", - "\n", + "#...\n", + "print(\"The Fruit list values are:\")\n", + "for description, value in (('all_lower', all_lower), \n", + " ('any_upper', any_upper), \n", + " ('all_two_words', all_two_words), \n", + " ('any_zero_len', any_zero_len)):\n", + " print(f'{description}: {value}')\n", "\n" ] }, @@ -298,7 +303,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From 2a89497923b4eafe8419e1402cb90acc4308a45c Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sat, 18 Jan 2025 18:59:29 -0800 Subject: [PATCH 132/163] Updates! --- A1-Built_in_Operations.ipynb | 35 +++++++- F-Microcontrollers_and_Circuitpython.ipynb | 93 +++++++++++++++++++++- 2 files changed, 125 insertions(+), 3 deletions(-) diff --git a/A1-Built_in_Operations.ipynb b/A1-Built_in_Operations.ipynb index 583616f..7f4d0fd 100644 --- a/A1-Built_in_Operations.ipynb +++ b/A1-Built_in_Operations.ipynb @@ -196,7 +196,7 @@ "\n", "An Example using both of these with some print statements to show the results of enumerate and zip, as well as how they're often used. \n", "\n", - "*Note that when we print the output of stuff like zip and enumerate, we wrap them in list() because they return a lazy-evaluating-iterator thing that doesn't print well otherwise. It's a python performance optimization thing. Try removing the list() and see what you get.*" + "*Note that when we **print** the output of stuff like zip and enumerate, we wrap them in list() because they return a lazy-evaluating-iterator thing that doesn't print well otherwise. It's a python performance optimization thing. Try removing the list() and see what you get.*" ] }, { @@ -229,9 +229,18 @@ "iter(): Returns an iterator for a collection.\n", "next(): Retrieves the next item from an iterator.\n", "slice(): Defines a slice, often used to access parts of collections.\n", - "aiter() and anext(): Used for asynchronous iteration (for async generators)\n" + "aiter() and anext(): Used for asynchronous iteration (for async generators)\n", + "\n", + "These are probably out of scope for us... a good example will be added here some day." ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -244,6 +253,28 @@ "* `lambda`: " ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + ">>> rands = [random.random() for x in range(5)]\n", + ">>> sorted(rands)\n", + "[0.09589797654338261, 0.26042754570361837, 0.5768146165592276, 0.683793382265455, 0.9427230358114427]\n", + ">>> sorted(rands,)\n", + "\n", + ">>> sorted(rands, key=lambda x: str(x)[3])\n", + "[0.9427230358114427, 0.26042754570361837, 0.5768146165592276, 0.683793382265455, 0.09589797654338261]\n", + ">>> def third(x):\n", + "... return str(x)[3]\n", + "... \n", + ">>> sorted(rands, key=third)\n", + "[0.9427230358114427, 0.26042754570361837, 0.5768146165592276, 0.683793382265455, 0.09589797654338261]\n", + ">>> \n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index 54e99cb..d24d51c 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -8,7 +8,60 @@ "\n", "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", - "**Topics:** Programming microcontrollers with CircuitPython" + "**Topics:** Programming microcontrollers with CircuitPython\n", + "\n", + "We'll look at circuitpython here - circuitpython is a version of micropython customized by Adafruit. They have a ton of guides, libraries, etc available and circuitpython is the best place to start. \n", + "\n", + "## Circuitpython vs. Micropython vs. Standard Python\n", + "Regular/standard pything runs as software on windows, mac, linux, etc. It interprets code and runs it, and includes libraries like sys, os, fsutil to interact with the operating system of the computer it's running on. \n", + "\n", + "Circuitpython and Micropython are firmware (the os) that you can load onto a microcontroller like a Pi Pico or a number of newer Arduino and other boards. These microcontroller boards have a small amount of storage for .py files and compiled libraries.\n", + "\n", + "Micropython offers some advanced features like multi-threading and has better/earlier hardware support for wifi, bluetooth, etc than Circuitpython, but it doesn't usually present a storage drive to drop code into directly. \n", + "\n", + "Circuitpython has more user friendly documentation and libraries, always presents the micocontroller as a storage device, has better usb hid (keyboard, mouse, gamepad) support, and is generally easier to start with. \n", + "\n", + "Both micropython and circuitpython present a serial console when you plug them into a computer that can be used to interact with the python prompt and see the text output from running code.\n", + "\n", + "Micropython runs \"main.py\" when it starts, and circuitpython runs \"code.py\" when it starts.\n", + "\n", + "## Hardware test setup\n", + "We'll practice on a pi pico microcontroller with a button, display, and accelerometer. The pi pico has a built in LED we can blink.\n", + "* Pi Pico: \n", + "* SSD1306 OLED Display:\n", + "* ADXL345 Accelerometer:\n", + "\n", + "## Getting Started\n", + "Download and install the \"Mu\" editor. There are other options, but mu just works - it knows where to look for code on the circuitpython microcontroller and has a button to open a serial terminal. https://codewith.mu/\n", + "\n", + "Flash micropython onto your microcontroller board. If you have a new board, it will present a storage device called UF2 something when you plug it into the computer. If it doesn't, then hold the boot button on the board while you plug it into the computer and it should go into uf2 flash mode.\n", + "\n", + "**Download a uf2 file from circuitpython for your board**\n", + "https://circuitpython.org/board/raspberry_pi_pico/\n", + "https://circuitpython.org/board/raspberry_pi_pico_w/\n", + "And **drag the file to the UF2 storage device presented by the board**. It'll automatically flash and reboot when you drop the file on it and present a CIRCUITPY storage device where you can modify the code.py.\n", + "\n", + "**Open Mu, click the Load button, and find code.py on the CIRCUITPY drive**. Now you can modify it and each time you save a change, the board will reboot and run the code. \n", + "\n", + "**Click the Serial button to see the serial console** for any print output, error messages, and for an interactive python prompt\n", + "* You can always press + in the serial terminal to quit the running code and get an interactive prompt \">>>\"\n", + "* You can press + at the prompt to reboot teh board and run code.py.\n", + "\n", + "## Basics\n", + "\n", + "### Built in modules\n", + "https://docs.circuitpython.org/en/latest/shared-bindings/index.html\n", + "\n", + "There are a lot of built in modules... here are a few that \n", + "* alarm\n", + "* analogio\n", + "* board - Analog and Digital Pins, Stemma I2C\n", + "* busio - I2C, SPI, UART (serial)\n", + "* digitalio\n", + "* gc - Garbage Collection & memory management. gc.collect(), gc.mem_free, ...\n", + "* time\n", + "\n", + "###" ] }, { @@ -17,6 +70,44 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## I2C Devices\n", + "https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c\n", + "\n", + "\n", + "The first thing we want to do is initialize i2c and scan for devices to ensure that our hadware is connected to and communicating on the bus:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import board\n", + "import busio\n", + "\n", + "i2c = busio.I2C(board.GP27, board.GP26)\n", + "i2c.try_lock()\n", + "print(i2c.scan())\n", + "print([hex(addr) for addr in i2c.scan()])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should see something like this: \n", + " [60, 83]\n", + " ['0x3c', '0x53']\n", + "* 60 is the display - this is hex value 0x3c\n", + "* 83 is the adxl345 - this is hex value 0x53\n", + "\n" + ] } ], "metadata": { From b3185f63412054d81e1339cab691b6837074cf2d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Sun, 19 Jan 2025 08:11:25 -0800 Subject: [PATCH 133/163] content --- F-Microcontrollers_and_Circuitpython.ipynb | 56 ++++++++++++++++++++-- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index d24d51c..a4f9a7a 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -15,7 +15,7 @@ "## Circuitpython vs. Micropython vs. Standard Python\n", "Regular/standard pything runs as software on windows, mac, linux, etc. It interprets code and runs it, and includes libraries like sys, os, fsutil to interact with the operating system of the computer it's running on. \n", "\n", - "Circuitpython and Micropython are firmware (the os) that you can load onto a microcontroller like a Pi Pico or a number of newer Arduino and other boards. These microcontroller boards have a small amount of storage for .py files and compiled libraries.\n", + "Circuitpython and Micropython are firmware (the os) that you can load onto a microcontroller like a Pi Pico or a number of newer Arduino, Esp32, and other boards. These microcontroller boards have a small amount of storage for .py files and compiled libraries.\n", "\n", "Micropython offers some advanced features like multi-threading and has better/earlier hardware support for wifi, bluetooth, etc than Circuitpython, but it doesn't usually present a storage drive to drop code into directly. \n", "\n", @@ -44,10 +44,10 @@ "**Open Mu, click the Load button, and find code.py on the CIRCUITPY drive**. Now you can modify it and each time you save a change, the board will reboot and run the code. \n", "\n", "**Click the Serial button to see the serial console** for any print output, error messages, and for an interactive python prompt\n", - "* You can always press + in the serial terminal to quit the running code and get an interactive prompt \">>>\"\n", - "* You can press + at the prompt to reboot teh board and run code.py.\n", + "* You can always press ` + ` in the serial terminal to quit the running code and get an interactive prompt \">>>\"\n", + "* You can press ` + ` at the prompt to reboot teh board and run code.py.\n", "\n", - "## Basics\n", + "## Modules and Libraries\n", "\n", "### Built in modules\n", "https://docs.circuitpython.org/en/latest/shared-bindings/index.html\n", @@ -60,8 +60,54 @@ "* digitalio\n", "* gc - Garbage Collection & memory management. gc.collect(), gc.mem_free, ...\n", "* time\n", + "* math - sin, ..., log, pow, ... https://docs.circuitpython.org/en/latest/shared-bindings/math/index.html\n", + "* ... many more... audio, camera, etc. \n", + "\n", + "Just **import** these to use them. \n", + "\n", + "### Installing Libraries\n", + "There is no pip install for circuitpython libraries. But many libraries are provided as .mpy files (micropython bytecode) in a bundle you can download here: https://circuitpython.org/libraries\n", + "\n", + "You can check the version of circuitpython on your device by restarting the board and checking output ` + `, ` + `, ` + `, or looking at the boot_out.txt on the CIRCUITPY drive. \n", + "\n", + "We're interested in the ssd1306 and adxl345 libraries - you'll find them in the library bundle inside the lib directory:\n", + "* adafruit_adxl34x.mpy\n", + "* adafruit_ssd1306.mpy\n", + "\n", + "Copy them into your CIRCUITPY/lib directory. When you import and start using them, they may complain about additional libraries you need to copy from the bundle.\n", + "\n", + "## Basics\n", + "\n", + "For most things here, we'll use the board library to refer to the GPIO pins and LED on our board. E.g:\n", + "\n", + " >>> import board\n", + " >>> dir(board)\n", + " ['__class__', '__name__', 'A0', 'A1', 'A2', 'A3', 'GP0', 'GP1', 'GP10', 'GP11', 'GP12', 'GP13', 'GP14', 'GP15', 'GP16', 'GP17', 'GP18', 'GP19', 'GP2', 'GP20', 'GP21', 'GP22', 'GP26', 'GP26_A0', 'GP27', 'GP27_A1', 'GP28', 'GP28_A2', 'GP3', 'GP4', 'GP5', 'GP6', 'GP7', 'GP8', 'GP9', 'LED', 'SMPS_MODE', 'STEMMA_I2C', 'VBUS_SENSE', 'VOLTAGE_MONITOR', '__dict__', 'board_id']\n", + "\n", + "It's also helpful to use the time library to measure elapsed time or to \"sleep\", or wait for some period of time. We can use:\n", + "* time.monotonic() to get the number of seconds since the board was powered up\n", + "* time.monotonic_ns() to get the number of nanoseconds since the board was powered up\n", + "* time.sleep(seconds) to sleep for some number of seconds. \n", + "\n", + " >>> import time\n", + " >>> time.sleep(2)\n", + " >>> time.monotonic()\n", + " 47255.3\n", + " >>> time.monotonic_ns()\n", + " 47260617889414\n", + "\n", + "### Digital pins\n", + "Digital pins can either be inputs or outputs. An LED would be an output, or if you needed to drive a pin low/high on another device, you would use an output to do that. An input could be a button.\n", + "\n", + " import board\n", + " import digitalio\n", + "\n", "\n", - "###" + "#### *Exercise:*\n", + "* Make the LED blink once every second.\n", + "* Check the button and print a message when it's pressed. \n", + "* Check the button and print a message whenever its states changes between pressed and unpressed. \n", + "* Check the button and turn the LED on if the button is pressed, and turn it off when the button is released. Print a message when changing the states of the LED." ] }, { From c4d7d37d259a04e8f26d15340c04167a8ddfd478 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 20 Jan 2025 19:27:59 -0800 Subject: [PATCH 134/163] content --- F-Microcontrollers_and_Circuitpython.ipynb | 5 +++++ images/picow_ssd1306_adxl345.jpg | Bin 0 -> 116299 bytes 2 files changed, 5 insertions(+) create mode 100644 images/picow_ssd1306_adxl345.jpg diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index a4f9a7a..7b43f4e 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -47,6 +47,11 @@ "* You can always press ` + ` in the serial terminal to quit the running code and get an interactive prompt \">>>\"\n", "* You can press ` + ` at the prompt to reboot teh board and run code.py.\n", "\n", + "#### *Exercise:*\n", + "* Per above, ensure you have circuitpython flashed to your board and the CIRCUITPY drive shows up when you plug it into the computer.\n", + "* Open Mu and click the Serial button at the top to open the serial terminal. \n", + "* A pretty fool-proof way to Press ` + ` and then ` + ` to\n", + "\n", "## Modules and Libraries\n", "\n", "### Built in modules\n", diff --git a/images/picow_ssd1306_adxl345.jpg b/images/picow_ssd1306_adxl345.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c28374146f089fb0c331a80ff6e90f5d4827795c GIT binary patch literal 116299 zcmcG#1ymft(l0(MxVw`D7I$~|;I2uq#oY-KAh-ngKyV4}5-hlT(BL6~00|@nNg%vU z?)|=d@BjSYdFP$;z237kzp1XOuCD3ssp{FiU%lS}@EgdSM+zV z1prl5HUJ#}05HG{0t0AB#Dx4hL_`0u0bI!MpQ7yMX6KCf!v!Rx0Z=4`hmVg3k_-lj zky!l?3$pO>@Cl0X@QU&A!g%<_`1r+mM1lKLKt$W#&D+h(-pw7x&&30X$f;^T|ENHg zznJka#9yLGSW5z$phuw?*(cX>A@{owBYSUecQI~mS1&G08#gNim$jP7$1^*htbF32N|YxXUB#9aNrrBJ`eW>RUf`vKF1|wxVs>{En)sH&aPf!{*v^6m5U+qA2K&R>@SPAlO(;dhBi#z%@Y9=^`q?djm|?cnAL`=im)%FV}Hk{;ReUz6nBkOB^_2+#jkj`V=t-+S=a1@3FI^g4{%3F((59;+5c;qFAjjn&_}>Fu3I>DyYmy*bku$>&IR)%>WiT{}5QO zCAaFo8Pxg9{roWTTomWOxc)b1d>iDHK(0;-$oc>)WaCKOkHo}Q`nvK+yaWK~*fuUU zHUNOJgQUmU{pG>5|HEVVZ#>REE)D>I8T5zlg0S>L;$$R-TRFLVBXP?gy5~P+$Nu7f zll4YeBlTgvN7Augku0AWBJkO35dhkzEK510Ut0c*e>Z~;64KOhJQ1EPR< zAQ{L2a)DPsDNqH}0Zl+V&<(r=Mu16R4tNJ_06V||a15LQm%uL&2!sa00TF>HKo3BS zAa)QRNCYGWQUs}kbU`K{3y>Yi732d70zC)CgHl1cpdwHes1ei&dJ7r{&4boJyPzY` zH_%To1dI(P2Gf9&tPg$!wgY>BpMoR6FTmO0VsH((4g3~734RCO0Uv{Z zKmZ69gcL#t;e?1l0$S7nHvI9AR+(1#GL{J!%6Dkf> zff_)qp&rl>XaY1BS_y4~4nY^8yU;V}ZxkF9Y7}-9F%(r4V-!0SKa?nxOq6nzR+M3s zcPIxam#Cw9qWkywRf2 za?onf`p_284$!XAvCto&^PwxDo1(j-hofhrzeevxUqJta{tE*igAqdvLkq(OBLE`_ zqZFeHV;188;}<3YCNriaraq=4W*BBRW*z1*=6lTVSXfx}SfW@uSPodBSlL(&SYueb zSU1>&*lgJH*yh+i*e|dvu=}ysu)pKr;4tCH;F#igO9%%E_lY1x3`Fuo)O!t(isLA&fpK=8t@=^HGG{B zgHeRho-vDYl<|s*naPMLnyH=XkeQrWmH8=iHS>EG92RL750+w0Z2AdfRoDbEHkA@4)paNaK7Z+vWg)_i$fyG3urgv7kXn#8_} zbBa5OzZO4~V3t5gluGPN(o0%O7D?_%!K5st3Z-_W>7*^Ci>3Eu7-Vc@%4I&uvdTKj z*2sR5DD>^0D*do+o%u zET1%6pja4LytcTt)UqtL{9&bP_0sChTHZR#`q)OsCf();A&E#ue6p3aO|?C=le9~- zJF=Iy&$K^rkax&+ICoTWeC2rMq~%oMbnk5BTPRXspeVk1@e02)!|Kye85cku=qs!?D|Ui=J{Ux8TvK*6ZpIOPX(|A#0GqN zs`Ruh5E^J5I1oe^6c)4_EE`-D0t>8F0oSNS&i3k5O-b+2e%#lQMl=uo&?q+HZi%v79Nf?DER z^0CygbhJ#Qtg4){Jih#{!nIlUy?X2CteW$~uW4`lY=RlWuSL++D zHx=D<-FZDEJxRToy%D|leNX#-^t<<;ytR9~Kk#H=W6*eTX-H>iW>{@_Y(!~fa8!1* zZ%lHmdt7Y1b3$aIeNt$$ZAx&eby{$`bw+5WZB}@;V@`CgYhGf$cR_mL?V`fs$dc;P zXhL0-A*OfOSH={p|et!DpcZ+tLeaCv& z^;_-t`+JxB`+ti~xR7B9>|b$-0>akP$Jrb9Ct#6xb4EtsFg;{ag@AFw{sb}q2q6B) zj{k~Nta1RLJrV%O*Z)OBHlzKIrv4GP{l)(lU;c*~;D52@I<&GyK3lw@I$5s$o{+9IQ&h?99;iIZ~t=Bf3*BR zaPcoY{}nTPBm9wZCDKke_W(}^J9}@Ks;f7`)7A2iMV8Kg?~dmm8@=2-y&Zg9IADA{ z$ov}cvgPOdYZ3@s0U73P-`{^nX7Fg~0C1OdfB&oK{{9Z>3&;il^!wcJ0mzJ23DD30 z*pM>l0HguQibPNzULKwX(BI7dkH^6c|JVzFA@M)7Ly!nmi-J7WiBk*IBR)mallLg;u(z#`UUGH?$JDZY+vE~>a3 z=l^IZi4Mn?g@)tdD@8cX{4n+P%i9TGw^-jRw|SZK#97ZEJ>l0nVUV6);SX}Hi#*-J zAI6p~8k{9R$eUaqCX#ZT;xeqaxNyGkm5ioRq$Ks!gT#NYY;hRPZaO*fAcegn47YoN zTQr>e;)5Hm6-ew`%`eRvQNg}>Y3#=hl|B9yQoXJ40N$rUpKi=lXu1x z*FWs#noo7iwl#aFXP(R3izk!&?#SIH?E}NG^(TFoatFPR__38*`+))6^f6>s1kTe2 zeb?rR>&k_$9WfN*ae^&P4lyNgAcfT0Of25SqgJl0DVBLUilOfrJLW=76u~5xiYbJ| zHF%`Atf8VT0KaD;0GSCz*)Q%FJOUj~^WYwr0r28vOafhU-Ih?vNM2-y1r}-nO0+=) z4zXw+D&)x|?DXtUWeBrrO;K?G|6C}Uq+%#s4=|`4zW_9W{%~^-nq5^b_K7VQloe&l^T`S5W?`1Rrkgw)4| z4vO%B~4V7lwjyeJ@=)l!_eCDy$8xrOjlaIcXi$aB3%kTf`-E5 zucXwN|k|C+=78W78KSeh7v1fD{5uYg#BA zVx!_rfrpB%5Hv}^AM2@}9JKY1apS`3+p(r4{f61S*lCHp3a$oxMHrN6Oi|+U1Z7rJ zJ}pzTev5(ch@V>rqYJ@)CM_3{*}q&7@btYoQArsb>4Z!@XW5Z#6MY&eAx5MUr7D%s z7vf7lnV4v9?uQd%_-2*r)^WAVoE$MJm_O1VF(}6&nKZR*!lmJn1&tC%t+-a|mCGR1 zr8}nri~nLjBY}^0AYwP|lZa_gr7?4@w*>D2ZF-5?BP}nS5$W|8#{_(e6hdP*)U8u8 zyGPf{37)Ovc^sXk4tMFUb^gV^WLCvj*N=<08DG0OkhNTjs+P*$at(e`|7sDkG`Y3o z>NIw2IThrlU8g}bsq)oja#eDKQlzu;&C|Au-GTZ#Ji#=kqqc|Z%`8iaxJDrD*0O3P zfumKGlE&A&l!zR=PAo|6V{76qK%C0n1Z8Wu320UB?K(Z6A; z%SN)(&?3rVq1p`d(hTZ$3BDJFAV(G16;lhsB_LY>T}Z}X8>CkTL8X&1R&qp-0&k@Q z4v7F!SD{RkHb}=FmBla=g)odZof4JFG>rC3y-XN33uHu7A9U;_gGQtW2=wq^9?gW} zrs_5}59agIGKCVCgLOFpuw*5^-*SY4mL$M5p@nImOe%5ML}$~-rEiRD<;Ve=R=0bu z9YL(k!wNVp$b@=4GqnlFVMRYD#

U&IV}H(c1$zmE?IN{&7$mn{w=LwMRJUX|94< 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 kU{I#?_Z0PG!4%FA6}*_@@`~A4Ps=f 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 literal 0 HcmV?d00001 From a662e48aab0b5783ddd085f2785b3529703de874 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 20 Jan 2025 19:45:54 -0800 Subject: [PATCH 135/163] content! --- F-Microcontrollers_and_Circuitpython.ipynb | 34 ++++++++++++++------- images/circuitpython_logo.png | Bin 0 -> 103853 bytes images/pico_pin_reference.jpg | Bin 0 -> 705236 bytes pico_proto_bracket_rev0.stl | Bin 0 -> 589384 bytes 4 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 images/circuitpython_logo.png create mode 100644 images/pico_pin_reference.jpg create mode 100644 pico_proto_bracket_rev0.stl diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index 7b43f4e..26a977c 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -12,6 +12,8 @@ "\n", "We'll look at circuitpython here - circuitpython is a version of micropython customized by Adafruit. They have a ton of guides, libraries, etc available and circuitpython is the best place to start. \n", "\n", + "\n", + "\n", "## Circuitpython vs. Micropython vs. Standard Python\n", "Regular/standard pything runs as software on windows, mac, linux, etc. It interprets code and runs it, and includes libraries like sys, os, fsutil to interact with the operating system of the computer it's running on. \n", "\n", @@ -27,9 +29,18 @@ "\n", "## Hardware test setup\n", "We'll practice on a pi pico microcontroller with a button, display, and accelerometer. The pi pico has a built in LED we can blink.\n", - "* Pi Pico: \n", - "* SSD1306 OLED Display:\n", - "* ADXL345 Accelerometer:\n", + "* Pi Pico: https://www.adafruit.com/product/4864\n", + "* SSD1306 OLED Display: https://www.amazon.com/dp/B0837DLWVH\n", + "* ADXL345 Accelerometer: https://www.amazon.com/dp/B08HLP1MPY\n", + "* Pin Reference: https://www.adafruit.com/product/4901\n", + "* 3D printed jig: https://raw.githubusercontent.com/a8ksh4/python_workshop/refs/heads/main/images/pico_proto_bracket_rev0.stl\n", + "\n", + "Adafruit has an option for USPS shipping at around $5 usually, so it's a much better place to by raspberry pi boards than amazon, but they have high pricese on a lot of other components. \n", + "\n", + "The SSD1306 and ADXL345 can be found cheaper on Ali Express if you don't mind waiting a couple of weeks for shipping. \n", + "\n", + "\n", + "\n", "\n", "## Getting Started\n", "Download and install the \"Mu\" editor. There are other options, but mu just works - it knows where to look for code on the circuitpython microcontroller and has a button to open a serial terminal. https://codewith.mu/\n", @@ -50,27 +61,28 @@ "#### *Exercise:*\n", "* Per above, ensure you have circuitpython flashed to your board and the CIRCUITPY drive shows up when you plug it into the computer.\n", "* Open Mu and click the Serial button at the top to open the serial terminal. \n", - "* A pretty fool-proof way to Press ` + ` and then ` + ` to\n", - "\n", - "## Modules and Libraries\n", + "* Access the python terminal and run the following by typing/pasting it in. A pretty fool-proof way reach the interactive terminal is to Press ` + `, then ` + `, and then ` + ` one more time. \n", + " * `print('hi world!')`\n", + " * `import board`\n", + " * `dir(board)`\n", + "* Now use Mu to open code.py on the CIRCUITPY drive. Add a print statement that you'll recognize at the top of the file, below the import statements, and and save your change. Now press ` + ` in the serial terminal to switch from the interactive prompt to running code.py and ensure that you see the result of your print statement in the output.\n", "\n", - "### Built in modules\n", + "## Built-in Modules\n", "https://docs.circuitpython.org/en/latest/shared-bindings/index.html\n", "\n", - "There are a lot of built in modules... here are a few that \n", + "There are a lot of built-in modules that you can import immediately on a new board wthout copying in any additional files. Here are a few that you're likely to use at some point:\n", "* alarm\n", "* analogio\n", "* board - Analog and Digital Pins, Stemma I2C\n", "* busio - I2C, SPI, UART (serial)\n", "* digitalio\n", - "* gc - Garbage Collection & memory management. gc.collect(), gc.mem_free, ...\n", "* time\n", "* math - sin, ..., log, pow, ... https://docs.circuitpython.org/en/latest/shared-bindings/math/index.html\n", - "* ... many more... audio, camera, etc. \n", + "* ... many more... audio, camera, gc, etc...\n", "\n", "Just **import** these to use them. \n", "\n", - "### Installing Libraries\n", + "## Installing Libraries\n", "There is no pip install for circuitpython libraries. But many libraries are provided as .mpy files (micropython bytecode) in a bundle you can download here: https://circuitpython.org/libraries\n", "\n", "You can check the version of circuitpython on your device by restarting the board and checking output ` + `, ` + `, ` + `, or looking at the boot_out.txt on the CIRCUITPY drive. \n", diff --git a/images/circuitpython_logo.png b/images/circuitpython_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce287922ab515c71c97f704b80a6626d64d042a GIT binary patch literal 103853 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 z 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%0Axz0L%NlDj4HG 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�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

Lha0h{yIgcA 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 LpP%Tr|F`^q^j_C| literal 0 HcmV?d00001 diff --git a/pico_proto_bracket_rev0.stl b/pico_proto_bracket_rev0.stl new file mode 100644 index 0000000000000000000000000000000000000000..68a54fe9c5f60e5344a9543bbeb90ca163332ef3 GIT binary patch literal 589384 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 ooV)YAumPdx)lQ763G{Jdg$EDL6 Date: Mon, 20 Jan 2025 21:16:34 -0800 Subject: [PATCH 136/163] content --- F-Microcontrollers_and_Circuitpython.ipynb | 122 +++++++++++++++--- .../pico_proto_bracket_rev0.stl | Bin 2 files changed, 105 insertions(+), 17 deletions(-) rename pico_proto_bracket_rev0.stl => images/pico_proto_bracket_rev0.stl (100%) diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index 26a977c..db55f3f 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -12,7 +12,7 @@ "\n", "We'll look at circuitpython here - circuitpython is a version of micropython customized by Adafruit. They have a ton of guides, libraries, etc available and circuitpython is the best place to start. \n", "\n", - "\n", + "\n", "\n", "## Circuitpython vs. Micropython vs. Standard Python\n", "Regular/standard pything runs as software on windows, mac, linux, etc. It interprets code and runs it, and includes libraries like sys, os, fsutil to interact with the operating system of the computer it's running on. \n", @@ -35,9 +35,11 @@ "* Pin Reference: https://www.adafruit.com/product/4901\n", "* 3D printed jig: https://raw.githubusercontent.com/a8ksh4/python_workshop/refs/heads/main/images/pico_proto_bracket_rev0.stl\n", "\n", - "Adafruit has an option for USPS shipping at around $5 usually, so it's a much better place to by raspberry pi boards than amazon, but they have high pricese on a lot of other components. \n", + "Total cost for this setup is about $8 each if you're making five of them at a time.\n", "\n", - "The SSD1306 and ADXL345 can be found cheaper on Ali Express if you don't mind waiting a couple of weeks for shipping. \n", + "Adafruit has an option for USPS shipping at around $5 usually, so it's a much better place to by raspberry pi boards than amazon, but they have high pricese on some other components. \n", + "\n", + "The SSD1306 and ADXL345 can be found cheaper on Ali Express than amazon if you don't mind waiting a couple of weeks for shipping. \n", "\n", "\n", "\n", @@ -87,12 +89,18 @@ "\n", "You can check the version of circuitpython on your device by restarting the board and checking output ` + `, ` + `, ` + `, or looking at the boot_out.txt on the CIRCUITPY drive. \n", "\n", - "We're interested in the ssd1306 and adxl345 libraries - you'll find them in the library bundle inside the lib directory:\n", + "We're interested in the ssd1306 and adxl345 libraries - you'll find them in the library bundle inside the lib directory. The framebuf lib is a depency of ssd1306.\n", "* adafruit_adxl34x.mpy\n", "* adafruit_ssd1306.mpy\n", + "* adafruit_framebuf.mpy\n", "\n", - "Copy them into your CIRCUITPY/lib directory. When you import and start using them, they may complain about additional libraries you need to copy from the bundle.\n", - "\n", + "Copy them into your CIRCUITPY/lib directory. When you import and start using them, they may complain about additional libraries you need to copy from the bundle." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Basics\n", "\n", "For most things here, we'll use the board library to refer to the GPIO pins and LED on our board. E.g:\n", @@ -102,9 +110,12 @@ " ['__class__', '__name__', 'A0', 'A1', 'A2', 'A3', 'GP0', 'GP1', 'GP10', 'GP11', 'GP12', 'GP13', 'GP14', 'GP15', 'GP16', 'GP17', 'GP18', 'GP19', 'GP2', 'GP20', 'GP21', 'GP22', 'GP26', 'GP26_A0', 'GP27', 'GP27_A1', 'GP28', 'GP28_A2', 'GP3', 'GP4', 'GP5', 'GP6', 'GP7', 'GP8', 'GP9', 'LED', 'SMPS_MODE', 'STEMMA_I2C', 'VBUS_SENSE', 'VOLTAGE_MONITOR', '__dict__', 'board_id']\n", "\n", "It's also helpful to use the time library to measure elapsed time or to \"sleep\", or wait for some period of time. We can use:\n", + "\n", "* time.monotonic() to get the number of seconds since the board was powered up\n", "* time.monotonic_ns() to get the number of nanoseconds since the board was powered up\n", - "* time.sleep(seconds) to sleep for some number of seconds. \n", + "* time.sleep(seconds) to sleep for some number of seconds. \n", + "\n", + "Example:\n", "\n", " >>> import time\n", " >>> time.sleep(2)\n", @@ -113,27 +124,41 @@ " >>> time.monotonic_ns()\n", " 47260617889414\n", "\n", + "\n", "### Digital pins\n", "Digital pins can either be inputs or outputs. An LED would be an output, or if you needed to drive a pin low/high on another device, you would use an output to do that. An input could be a button.\n", "\n", " import board\n", " import digitalio\n", "\n", + " led = digitalio.DigitalInOut(board.LED)\n", + " led.direction = digitalio.Direction.OUTPUT\n", + "\n", + " button = digitalio.DigitalInOut(board.GP20)\n", + " button.direction = digitalio.Direction.INPUT\n", + " button.pull = digitalio.Pull.UP\n", + "\n", + "\"led\" in this example is the LED built into the Pico board. We can turn it on and off with:\n", + "\n", + " led.value = True # on\n", + " time.sleep(2)\n", + " led.value = False # off\n", + "\n", + "The button in this example has one leg wired to ground and the other leg wired to pin GP20. We set GP20 to pull UP, so the board internally connects the pin to 3.3v through a resistor. Whe the button is not pressed, we measure 3.3v on the pin and button.value is True. Whe the button is pressed, it shorts the pin to ground so the voltage measured is zero (0) so button.value is False:\n", + "\n", + " if not button.value: # voltage is zero\n", + " print(\"button is pressed\")\n", + " else:\n", + " #print(\"button is not pressed\")\n", + " pass\n", "\n", "#### *Exercise:*\n", - "* Make the LED blink once every second.\n", + "* Use a while loop to make the LED blink once every second.\n", "* Check the button and print a message when it's pressed. \n", "* Check the button and print a message whenever its states changes between pressed and unpressed. \n", "* Check the button and turn the LED on if the button is pressed, and turn it off when the button is released. Print a message when changing the states of the LED." ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -141,7 +166,7 @@ "## I2C Devices\n", "https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c\n", "\n", - "\n", + "### Scanning for Devices\n", "The first thing we want to do is initialize i2c and scan for devices to ensure that our hadware is connected to and communicating on the bus:" ] }, @@ -164,13 +189,76 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You should see something like this: \n", + "You should see something like this:\n", + "\n", " [60, 83]\n", " ['0x3c', '0x53']\n", + "\n", "* 60 is the display - this is hex value 0x3c\n", "* 83 is the adxl345 - this is hex value 0x53\n", "\n" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The SSD1306 Display\n", + "\n", + "I don't have this working just yet... it should be simple. :D\n", + "\n", + "Example code to start with below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import adafruit_ssd1306\n", + "i2c = busio.I2C(board.GP27, board.GP26)\n", + "\n", + "display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c) #, addr=0x3c) #, addr=83)\n", + "\n", + "# Blank the display\n", + "display.fill(0)\n", + "display.show()\n", + "\n", + "# Set a pixel in the origin 0,0 position.\n", + "display.pixel(0, 0, 1)\n", + "# Set a pixel in the middle 64, 16 position.\n", + "display.pixel(64, 16, 1)\n", + "# Set a pixel in the opposite 127, 31 position.\n", + "display.pixel(127, 31, 1)\n", + "display.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The ADXL345 Accelerometer\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import adafruit_adxl34x\n", + "import time\n", + "i2c = busio.I2C(board.GP27, board.GP26)\n", + "accelerometer = adafruit_adxl34x.ADXL345(i2c)\n", + "print(dir(accelerometer))\n", + "accelerometer.data_rate = 20\n", + "print(accelerometer.data_rate)\n", + "for _ in range(5):\n", + " print(accelerometer.raw_x,accelerometer.raw_y, accelerometer.raw_z)\n", + " print(accelerometer.acceleration)\n", + " time.sleep(2)" + ] } ], "metadata": { diff --git a/pico_proto_bracket_rev0.stl b/images/pico_proto_bracket_rev0.stl similarity index 100% rename from pico_proto_bracket_rev0.stl rename to images/pico_proto_bracket_rev0.stl From 7799212f60f3c8c9afd8fa2cf851a4fd71eacdee Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 22 Jan 2025 19:27:50 -0800 Subject: [PATCH 137/163] circuitpython notebook ready to go --- F-Microcontrollers_and_Circuitpython.ipynb | 110 ++++++++++++++++++--- circuitpy/font5x8.bin | Bin 0 -> 1282 bytes 2 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 circuitpy/font5x8.bin diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/F-Microcontrollers_and_Circuitpython.ipynb index db55f3f..f6281b3 100644 --- a/F-Microcontrollers_and_Circuitpython.ipynb +++ b/F-Microcontrollers_and_Circuitpython.ipynb @@ -166,6 +166,10 @@ "## I2C Devices\n", "https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c\n", "\n", + "I2C is a bus protocol enabling communication and control of multiple devices with a single pair of wires (in addition to power and groud). Each I2C device has an address on the bus that it will reply with when we scan the bus and which is used when sending a command to the device. \n", + "\n", + "Many devices have resistors that can be moved/changed to tell them to use a different address if you want to have multiple on teh same bus. And some microcontroller boards, like the Pi Pico, have multile I2C buses that can be used if there are address conflicts or perhaps if you need more bandwidth for devices than one bus can provide.\n", + "\n", "### Scanning for Devices\n", "The first thing we want to do is initialize i2c and scan for devices to ensure that our hadware is connected to and communicating on the bus:" ] @@ -196,7 +200,8 @@ "\n", "* 60 is the display - this is hex value 0x3c\n", "* 83 is the adxl345 - this is hex value 0x53\n", - "\n" + "\n", + "NOTE - **comment out this i2c try_lock and scan code when done**. It will break other i2c stuff in your code." ] }, { @@ -204,10 +209,17 @@ "metadata": {}, "source": [ "### The SSD1306 Display\n", + "These little displays are very common on custom keyboards and are cheap and easy to work with. They typically use i2c address 0x3c, and this can be changed by fiddling with the surface mount resistors on the board if you wanted more than one on your project. \n", + "\n", + "Ensure you have a couple of libraries in you lib folder:\n", + "* adafruit_ssd1306.mpy\n", + "* adafruit_framebuf.mpy\n", "\n", - "I don't have this working just yet... it should be simple. :D\n", + "And copy this font file to the main CIRCUITPY folder:\n", + "* https://raw.githubusercontent.com/a8ksh4/python_workshop/refs/heads/main/circuitpy/font5x8.bin\n", + "* You can also google for adafruit font5x8.bin to find it online. \n", "\n", - "Example code to start with below:" + "Example code to start with:" ] }, { @@ -219,26 +231,62 @@ "import adafruit_ssd1306\n", "i2c = busio.I2C(board.GP27, board.GP26)\n", "\n", - "display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c) #, addr=0x3c) #, addr=83)\n", + "display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)\n", "\n", "# Blank the display\n", "display.fill(0)\n", "display.show()\n", "\n", - "# Set a pixel in the origin 0,0 position.\n", - "display.pixel(0, 0, 1)\n", - "# Set a pixel in the middle 64, 16 position.\n", - "display.pixel(64, 16, 1)\n", - "# Set a pixel in the opposite 127, 31 position.\n", - "display.pixel(127, 31, 1)\n", - "display.show()\n" + "# Draw three pixeles on a diagonal line:\n", + "display.pixel(0, 31, 1)\n", + "display.pixel(64, 47, 1)\n", + "display.pixel(127, 63, 1)\n", + "# And draw some text in the corner:\n", + "display.text('Hello', 0, 0, 1)\n", + "display.text('World', 0, 10, 1)\n", + "display.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We Start by initializing the i2c bus and using that to initialize the display. \n", + "* You can optionally pas a specific i2c address here.\n", + "* And you can specify 128x32 if you're using the smaller version of this display.\n", + "\n", + "Any time we call fill, pixel, or text, we can use '0' or '1' for the color. \n", + "* display.fill takes (color)\n", + "* display.pixel takes (xloc, yloc, color)\n", + "* display.text takes (text, xloc, yloc, color)\n", + "\n", + "And if you're updating the display with new content, be sure to call .fill first to wipe previous content. \n", + "\n", + "There are a few other control and draw functoins for shapes, etc:\n", + "\n", + "`['__class__', '__init__', '__module__', '__qualname__', 'format', '__dict__', 'blit', 'buffer', 'fill', 'height', 'i2c_device', 'invert', 'rotation', 'show', 'width', 'pixel', 'text', 'addr', 'external_vcc', 'page_addressing', 'reset_pin', 'pages', '_power', 'pagebuffer', 'page_column_start', 'poweron', 'init_display', 'power', 'write_cmd', 'poweroff', 'contrast', 'rotate', 'write_framebuf', 'temp', 'stride', 'buf', 'rect', 'fill_rect', '_font', '_rotation', 'hline', 'vline', 'circle', 'line', 'scroll', 'image']`\n", + "\n", + "#### *Exercise*:\n", + "* use print(dir(display)) in your code to see all of it's built in functions. \n", + "* Test a few of the draw functions to make a square, circle, and line. \n", + "* Rotate the display 90 degrees and write some text to it. \n", + "* Basically just draw some fun stuff on the display! \n", + "* Draw a box and put your name in the middle of it. \n", + "* Store a paragraph of text in a string. Figure out how many characters you can put on the display at one time and write one \"page\" at a time, changing to the next page each time the button is pressed!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### The ADXL345 Accelerometer\n" + "### The ADXL345 Accelerometer\n", + "The ADXL345 is a cheap and easy to use I2C accelerometer. The library provides raw values for force in the x, y, z directions as well as helpers for motoin, freefall, and tap detection. I've only used the raw values so far YMMV on the other stuff!\n", + "\n", + "Ensure you have the adafruit_adxl34x.mpy library in your lib folder. \n", + "\n", + "Ensure that you set the accelerometer.data_rate or you'll see very slow changes. You might want a higher rate than 20!\n", + "\n", + "Example code to start with:" ] }, { @@ -251,7 +299,7 @@ "import time\n", "i2c = busio.I2C(board.GP27, board.GP26)\n", "accelerometer = adafruit_adxl34x.ADXL345(i2c)\n", - "print(dir(accelerometer))\n", + "\n", "accelerometer.data_rate = 20\n", "print(accelerometer.data_rate)\n", "for _ in range(5):\n", @@ -259,6 +307,42 @@ " print(accelerometer.acceleration)\n", " time.sleep(2)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the built-in functions in the library we're using. You've seen raw_x, raw_y, raw_z so far.\n", + "\n", + "`['__class__', '__init__', '__module__', '__qualname__', 'range', '__dict__', 'events', 'offset', 'data_rate', 'raw_x', 'raw_y', 'raw_z', 'acceleration', '_i2c', '_buffer', '_write_register_byte', '_enabled_interrupts', '_event_status', '_read_register', '_read_clear_interrupt_source', 'enable_motion_detection', '_read_register_unpacked', 'disable_motion_detection', 'enable_freefall_detection', 'disable_freefall_detection', 'enable_tap_detection', 'disable_tap_detection']`\n", + "\n", + "#### *Exercise*:\n", + "* Write a functoin that uses the pythagorean theorem to convert raw_x, raw_y, raw_z into a single value showing the magnitude of acceleration at any time. \n", + "* Write a function that converts raw_x, raw_y, raw_z to an angular value indicating which direction is down. Gravity is always pulling on the sensor, so as you rotate it, the x, y, z values will change to point down. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Putting it all together:\n", + "We should be able to do some fun things with a button, display, and accelerometer. A few project ideas to work on might be:\n", + "\n", + "* Make a game where you have to balance the device to keep a ball/pixel centered on the display. Add walls to the display and make the player tilt the device to roll the ball through a course. \n", + "\n", + "* Make a pedometer that tracks cadence by recording periodic acceleration and counting the bumps. Press the button to reset the counter. \n", + "\n", + "* You could really get crazy with the pixel graphics and do something like make a pinball game or something where you tap the device on one side or the other to activate a flipper. \n", + "\n", + "* Make a computer mouse by using the following libraries to make a usb mouse device. You should be able to plug the device into the computer, set it on the desk to zero the accelerometer, and then tilt it to move the cursor. Click the button to left click the mouse. https://learn.adafruit.com/circuitpython-essentials/circuitpython-hid-keyboard-and-mouse\n", + " * usb_hid\n", + " * adafruit_hid.mouse\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { diff --git a/circuitpy/font5x8.bin b/circuitpy/font5x8.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a0563ba2dae1dc1d0b1b7ecb2e54e5113f3f540 GIT binary patch literal 1282 zcmXw3F>l*e5I$10{Ai>OqY^L;uo9&xs-z5NTtlD*ih5KiLlo?$F36^GP|Jyf4E0jD zLuHrZ%h+xn(jh<#Btfzi{RKsb0$utax^(lZ!Ki^k0DC8(cjWQCyLaDxJf5_~fW&+B z;F0H@JUH=8FY!#nObZw6zn4 zjUs@K#rYN*rdNEO1Pkd*mPTsc^S>BBnV1y6d{|k5ZDVrxgKR8=zjT7sOycL8lr6GBq8Oxc(z-zxK-+Mhj)*4rXS~& ziIRIf3is{<)s(5DfD56>lB^Iqhuks)D~cvu)Pulrf*`1)sS78HA_G{e%EsHbKTZTw zlnDe=j{JBBgjNr*o!F)XYfKV~Qm!*Ms#SyTIr-QCQL2j44XQ5ZR$?MQ)8#gIgE}JY zUR+!x!P96r0M^3K1K;57w-^vT*{$8Kxy9G79~at~dya(SQ8|v!{0h?Tm1E>=Me!NG zQT+6@upP(oXdA1Iw&N)J9H5{0Aor&|kopOq;s=<{>UZk1B#Qg=zDbmK zdviD#*lpi0pSOG5n!r!5UQIi_Ua!-^E_K{$R;>=w@cy&A8}p63ncDcr`u)39%^}no zG7qM{Js1o(9nLG~aK5r~I(={b-n7R#eXjlxWKa*xLD)u7-ocauKs%Vu#rfD;6hTA#%t}%>Prt4SAT-VpMl7?3aqa{k4 zVLqUXoV3*lk5&uG7F(QN1fXMU0CVMvP}T_ViUQXNMRL7Zt?B>6U*QUAP+Ey<&~IRl z27O3ULqd9nM;1YJW+XEbeBx1r&Tf+6&^W<-I2>-JvYgM$De7??`o|b>6`oo}i=6Vy zcbD&8n$56j?w(4gyY_Hz&$b7Xf&JT)gPo3tpAk|?lF}wg5R8L>?+*jcgW*2MVp8t! r=UA7qlM~h|w5qNAP4y=Jc^C##(KN7mCP`3|q#~?;uvP#Ug;>IW4$UpB literal 0 HcmV?d00001 From b1331ae9bdb4d1fad1c5b457c3785b375b2b1064 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Wed, 22 Jan 2025 19:28:56 -0800 Subject: [PATCH 138/163] cleanup --- ...cuitpython.ipynb => M-Microcontrollers_and_Circuitpython.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename F-Microcontrollers_and_Circuitpython.ipynb => M-Microcontrollers_and_Circuitpython.ipynb (100%) diff --git a/F-Microcontrollers_and_Circuitpython.ipynb b/M-Microcontrollers_and_Circuitpython.ipynb similarity index 100% rename from F-Microcontrollers_and_Circuitpython.ipynb rename to M-Microcontrollers_and_Circuitpython.ipynb From a004dc7edf5d2e7f83cb9b1dc490cdf30cbd754f Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 30 Jan 2025 16:34:17 -0800 Subject: [PATCH 139/163] add llm stutt --- L-LLM.ipynb | 948 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 948 insertions(+) create mode 100644 L-LLM.ipynb diff --git a/L-LLM.ipynb b/L-LLM.ipynb new file mode 100644 index 0000000..e31f950 --- /dev/null +++ b/L-LLM.ipynb @@ -0,0 +1,948 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Let's build a Language Model like Chat GPT!\n", + "We'll follow along with this youtube video:\n", + "https://www.youtube.com/watch?v=l-CjXFmcVzY&t=2197s\n", + "\n", + "## Starting out with inputs and weights\n", + "Is the light on or off? x# represent the switches on the wall and w# represent training data. We can cross the inputs with training data to find if the light is on:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "off\n" + ] + } + ], + "source": [ + "x1 = 0\n", + "x2 = 1\n", + "x3 = 0\n", + "\n", + "w1 = 1\n", + "w2 = 0\n", + "w3 = 1\n", + "\n", + "y = (x1 * w1) + (x2 * w2) + (x3 * w3)\n", + "if y > 0:\n", + " light = 'on'\n", + "else:\n", + " light = 'off'\n", + "print(light)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use numpy arrays instead of having loads of variables for inputs and weights:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "on\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "xs = np.asarray([0, 1, 0, 1, 0])\n", + "ws = np.asarray([1, 0, 1, 0, -1])\n", + "y = np.dot(xs, ws) # y = xs @ ws\n", + "\n", + "if y > 0:\n", + " light = 'on'\n", + "else:\n", + " light = 'off'\n", + "print(light)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to automatically adjust the weights if we want our model to learn, so let's add additional events to xs and some known outputs ys. Our weights are unknown/hidden. \n", + "\n", + "We'll start with a random guess at the weights and track our error over 5k tries at guessing propper weights. Do we even find a solution over 5k tries?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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AQOwYsUKhISEyFdqIiIi8lqSg4/Bgwc7bY4zmUyYMWMGZsyY4VHBSJ+MMgsnkdFxRFVSkua9XYiIyL7MvEuabXvr8TzNtq1HGw6d07oIPoXBB0nG7rZEvo/5ptYemLdN6yL4FAYfJAkDDyIi8pTknA8ytrMFpThbwInliIjIfWz5ICIir1FdzedBvoDBBxEReY3J33LMDV/A4IOIiLzG8jT7k5SSd2HwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBREREqmLwQURERKpi8EFERESqYvBBRERkMP/o30rT7TP4ICIiMpjmDUM13T6DDyIiIlIVgw8iIiJSFYMPIiIiUhWDDyIiIoMxmUyabt8wwceF4jKti0BERKQLgiBoun3DBB/5lyu0LgIRERHBQMGHtg1MRERE+nE4t1jT7Rsn+ND4+RYREZFebD52QdPtGyb4ICIiohpa344bJvjQekcTERHphbbppkYKPhh9EBER6YJxgg+2fRAREemC7MHHK6+8ApPJZPXXsWNHuTcjGVs+iIiI9CFAiZV27twZq1evvrqRAEU2Q0RERG7Q+n5ckaggICAAcXFxSqyaiIiIPOSTCaeHDx9GfHw8WrdujbFjxyIzM1OJzUjCxy5ERET6IHvLR2JiIhYsWIAOHTrg7NmzePXVVzFw4ECkp6cjPDy8zvJlZWUoK7s670phYaHcRQLAQcaIiIj0QvbgY8SIEeb/79atGxITE9GiRQt8//33mDBhQp3lZ86ciVdffVXuYtTB0IOIiEgfFO9qGxUVhfbt2+PIkSN23582bRoKCgrMf1lZWUoXiYiIiDSkePBRXFyMo0ePokmTJnbfDw4ORkREhNWfEvjUhYiISB9kDz6eeuoppKSk4MSJE9i0aRPuvPNO+Pv7Y8yYMXJvShIOMkZERKQPsud8nDp1CmPGjMGFCxfQuHFjDBgwAFu2bEHjxo3l3pQkbPkgIiLSB9mDj0WLFsm9Slkw9iAiItIHw8ztwuiDiIiohtaXROMEH0RERKQLhgk+mHBKRERUwyeHV9cjJpwSERFdoXH0YZzgQ+sCEBER6YXGF0XDBB9aNzERERFRDcMEH9UCww8iIiI9MEzwwaYPIiIifTBM8FHN4IOIiEgXDBN8CGz6ICIi0gXDBB9s+SAiItIHwwQfTSJCtC4CERGRIkID/TEuqQV+eiQJia0aal0clwwTfPj5GWekj/uvbaF1EYhIQXPG9tK6CKQz7WPr49U7uqB3i4ZeMaimYYIPW9H1g7QugkciQhxPSOwNBx55j5l3ddW6CGSDj5GVd337xloXwW3eMJ2IYYOPa5pEaF0Ej7SLDde6CGQQ/oxmRWkbU1+1bTGBXnktGoXJur7I0EBZ11eHxXnqDaesYYMPLTWNClV0/VqOp5Z8Tax2G1dZBxcBYI+EKHUKojQvqMj04NXbO6u2LY6Z6H3G92+p7AYsDorhXeKU3ZYMGHxoQI6DsG1jx3dZWka9Q66J0W7jKnN19/l4cjuVSuLdJgxopXURZNGpSQTm/l2dXIxrmsjf8tmoXhB+mdxf9vVq7bMH+mhdBMwa3QO3dmui2vbGJrrO+9P6nsJQwcebd159dq3lnYMgAE8kt3f7808P64DgQMc/ndYHlVG4OoYa1w9WpyAKC/T37Iga2C7a4XtfT0jEi7dc49H69cJkAm7sqHzL35M3tUfbGOfBR4OwQHRvFilpvaFB/ujWLMqDkrnHX+HOAL2aRym6fjEiwwLRNiYcq6der9xGLO46/f1MuLa18x4vWjeeGSr4aFhPH0mmN3SM8eiuODjAj82uOuDqJ2gVXc8nkjVDAvw9+nyXpo4vgs0ahMLkDQ+oRTDBpEqr4129mzl9f+FDidjy/BAsnTzA5briI68OQdAqup7HZSPnYiLkuyEZl2TdumH5W9rKeH143Rc1voYYKvjQg7+eu9HjxDQ/HVfW9YId98JRU4iTliG5CC4iQD+TCWP6NVe8HEprH+dZE79+j1b5KfldP3+gDz64t4fLnLHr2kQj2I2AsfZwDgqwPneiwpRNlBQEwePhATxtnRMj5enBHq9DzlK+ekcXm387zjly53hQmsGCD+2bC+RINjWZnOd1BPpr97MGB/hhxZSBeHpYhzrvrXlSwSZHG3poGdJxjCjal//ohzZO8os8pbd95CqJ2CkTFG3FSe4Uizt6NFVs/X1aNgAARNn0ynhjpLytd2MTm6ORTSv0dW0amf/fnUTt+5wE+XJ1S27RyPOWIXvHR4+EKKyeOsij9Q5q3xgx4dYtH67qwFtUzEGxx2DBh779+57uuMdFkyrgOnqOjwrFmH4J8hTKDR3jIjDphrZ1XlfyImbL9sR7fEg72XviuKrT9NxCJdYgGcY6UGo3xITLn1Pz9T8T7b5+Z0/XF31v/7kfGdwGADDvwb5Wr8t9L/PGnV1xfQfr42pwhxjER4ZgWOdYLJkkb9JrZXW1rOvzhO0h0qdFAyyZ1N9lDo8rrlphAdTJAerf1nEulhoMFnxc/en11k8+un4Q7u7dDG/e1RWLH73O6bJi7q5m3tVNrqJp4oN7e3j0+ck3Wgc/UWGB+HycvFnv1S5uqQw0qK6q7ktsjrt6NVU1OfLRKxdmV/xMQLSXJhrXNs13aRqJekGWzfTiD+R+LcUN6207CFZokD/+fPZGzP177zrLrnrCs1aByir36nolTl/bqluugLWswnWAtfCha/Hdw9de3bY8m3aboYKPxhLulLo6SZJTRs2hEOjvh57NGzhd0ggXNWdNnGKy4yfbaXmRW5WInA8lvXmn60B1ig66+8o92uKU5HZ47289ZF2nK2IvXyaTCZun3ejw/R8nJtl9vZ2KA5TVctYb4k03E6WbRIXYfeRaa8SV8SfGXXc1x6P2Zsrfz2T3xirQ389pTscPDvZprUgJOStP3uR+L0RnTOb/mmxe9+zcaHDlu4lpxagXHIDE1lcfb2md6G2o4KN3C+cXdUv/d31rBUtij4ToXAftu9H1g9A+tm6F2ayBPAOoOQv+6otIavXzM2HB+KvNx2JzQKQkvrlqzVX6ZwoNch2oNmsgzyiNjnrteJrY61nlq6/Wy9pv4ijn6s6eTdHHQcuAmj1NFv4zEVumDcHXE+w/YrIl5Tju66TlY9ljA/DhmJ4AYNVq5eqRQWCAH359bECdxNe/X9sch14f4XSbABAR4jr4aBVdD8dn3ozHhlwN1pUYsVauOqG2e/rvjw/Cu3d3w8TB0q9XSicSu2Ko4EOM9U8NxrqnBiNIhaTN5g3luTCIrUTktHnaELw96uqjne8evhbvj+6OzvFXgwZ3807euLOLLH3/B3eQPuDZXb3EJ/RVu6g0pdxZhAZKz0YXc+EW8yxYjDH9mttNigtxo9yjernOa7L09LAOVr2GxFxM5CYIwPDOzkeN9ORO0tWxJKfr2kYjLjIEASLrOCnfylnvri5NIyUnw0eGBqJpVCg6xkXgvb91r/O+bc8cKZ6/uaP5/024+vv9/Oh1eGpoe3V6qjnYud8+dK3d1/9zT3dse34I/jmwJtiIiwzBPX0SJPVmmTW6B54b0RHtNZ6iw7DBh6NzvWV0PcXuQpb/a6DVv101FzriZ7I+Zge0i7YambBVY+XvogL9/aweKyS2boQ7e1pfVF65vTNG99Eu8dWeRQ/bP6lrSbmAVMk4u5dSAy3ZlnBUr2bY9JzjxwLO1S2jmGum5S5d9tgAq0pfjJaNasZLWTFlIH5/fKBbAY89/7Qzsqqju0EBAub8vRcOvmY9XoKrgZzseSCpbutaqZ1n9s4mj1Sau4GUv59JtoAXsB4YUi63dY/Hkkn98fAg+3k8vZo3wOQb24kOzgD354Gxt5efHd4RSRa9f2p1bRqJUb2bISbC8XgeYozs2RQTrxeXw6QkBh8qCrepTGIjQswtLN2dJM/ZRvf27ni7NYvCT48k4bU7OmOwSrMxusppCA7wr5PVLpd+raRX+gBwbetGTi/0UipOOe9WB6iUeX5TpxjEKzy3kC3Lvd2laaTd/V/7TL9VdD3c5aBnSce4CKsJIT3Z/bNG98DDg6ybqrdMG+LwzjwqNAgmk8lp4OPqcn33lZ5sM+7ogvRXh1m9Z+9xpZSLXy25WmwtzwOpgYicM+62triRctbSN8qml2Csk8G8PhrTs253Xg9j/18muR7QDfAs4VRqoKuvh5J1GTb4cMXd1o+wIGl3ZcsfH4j/G9Qa79xtv3fKLd2aIOO14fjVYrRCkwnobqcvfO8WDXF/UktzZdHpSkXdt6X4XBcplMppEHNR8eRi7SxokHLCyjEz8usju2DPy0MlJUPXErP/b/KSif42PnsjFozvi7VPXi9L915nosICMbJnU8REhOBdi/MuLNjxuRtnMXqk5e/uKBj57V9Xz9cdLyYj5enBVkmBtnlLzw7viHv7Jlj1qnGnBSH15Zskf8aVjhIHmesqcVh3e3771wB89kAfq33trG7t1iwKW6YNweE3RuDwGyMwtJO0idUcnUq1gbCrIRAiwwLxPxG96TxJONXD2EVyYvCBmr7WttrFhmPeg9K7Zq6U2C2sbUx9TLv5GjSy6Z63ZFJ/3JfYHK/d0QUmk8nqhDYBGNmjKd4Z1c1pN7Slk/tj6/NDrPIw5OTOo4LrHVxY/nt/3S52jjSNCsW9EvNJxJ63UuZjeSCpJaaN6Gh1oZEq0N8kaaptqWMgNKgXZPOowGRez2AHrVK1wartYwl7wY6oC6TJdYUbGxGCwR1iJN1lN6rv+XQJPUXM+2H7KKZm4LV6aNEozGqOJsuid46PROr0m3D4jRGIrh/scoCqBvWC8Naobi6TJ10JC7IOauY/2Be3dGuC27vHAxB/92z5OyQ0DMOvkwfgz2duEPXZwe0b4+P7errsIntjx5qcLHtJ3p3jI3FTJ+vAuV+rhlZ1ju2hFxcZcqVnjJ/koRQcHXdv3tUVX09IxOt31owmOsLJbLFDRAT6Ulo+bINwezec3kwfY2FrzNFh6mySqIHtonFrtyZ49qc082vBAX5o1iAMz9/cEW8uP1jnM1JaCnokRDkc6c/PZIKfnwl/6+v8Ahzo74fYiBA8NKg1Fm7NxKjezfDttsw6y0WEBKCwtFJ84a7oEBuOvi0bOB3XwPYr/+dv3fFpylGM7tscye+lmF8f6iKZz1K72Pp1RvOTwtn1MlbC89QAPxP+z8Gz058eEZfPI/VuxvKYqK0w5z3YB/9YsMPhZ+zdnfdIiMJrd3TBwHfWmV97f3R3DG4fg/CQAOw7U+h0ThZnwkMCUCTyeLIb0Ii8cDw34hqcKypDg7AgtIyuh1X7c5B2ukBKUa3L4uB129+ocXgw1jw5GACQlXfJ4fqiwtwIjmRuTbyhYwxu6BiD0ooq3Nqtid1cAntsg8ram58mkSE4W1Dq9LMmkwm3dot3uY2P7+uJ7ScuIqm1uDKZTCYcffNmtHzuN5fLij2vXh/ZBe/+kWE3mRWoOXcGWEyMaBvcSSXl5/1ifF/884sdWHMwFwAkz4qb2Kohth3Pk/QZNbHlAzWjXwJXn8mKYTKZMLqvdTZ07fH+8KA2dh+juFUZ2dEmRtojoaZRodg3Y5jd7pKv3dEZv0+xvkOxl4hnj5+fCT9MvA5z7AwMVMu2DoiuH4wXbunkUTc22+Gf5RQU4Ie9rwxF2itDXS7r7CJpecGffmsnDGwXLVs35Fq1FdmNHWNxW3fXlb0rfiYTGtQLQoC/H7onRNVp2bJXcd5qs92/9WlWZ+jsOmS6wDasF4T54/vhvdE98K8h1uOZ2OZzOCJnU7Yc45lYrkHOVvaQQH8M7RyHcJE9hdx5DChVWFAArm/f2O0eKx2dPPYUu+/+fm0L7H7pJtUGrLNtYXF2Q2oyWU9UKDX3ZtINbfHybZ2w/qnBkj6nFsMGH5YXjkHtG2P3SzdZPf91xd5hYDmuhK2hnWJFjU/hzC+T++ODe3ugdwvpTbOOEunuT2pZZ76ZF2/tZP5/e2N5yCX5mppm13sdtOA4moX4CYUGAqq9gEWEBIqqpHskiMul+ceAVvhqQiKC7VSytfWJO/kzcn/GVe8de5XfS7d0svq3XkbWdfRIyZblN3aUQK3mbNiW+1jLZ/xJrRvhhZuvwcKHxHfj3zJtiIIluurXyQPwws3XYIyTll/bfbfwoUQ0axCKryb0q7Osn4qjNtpuyTJgrX3ceVv3qy0cnhwDIYH+GN+/FVrqdLZiwz526Z4QhS3HrjZJNXCzgvnruRvx0pJ0TLqhrdNBzDrFe56c2K1ZlGIRenCAH8oqr3b3WzqpP77ZehJPDeuAfWcKMX7+drfW6+y0/nBMT2w6csGqWdPS8n8NxH2fb8GxcyVWr7vTguQoN+GHiUk4eLYQo3o3q9Ok+u97uuOpH/Y4XKfUi5LUO5cAPxMq5ew64II7mwq1SAJs2SjM4SiVllQZI8/Jd7HcvGXysaPgo4mTqcqbNQhF/7aNEBrob7Uv3GXV8qFh9GEymfCQyNajWnFO9pOcujaLFJHUar3vrmsTjY3PutvFXD7Ocj6+ezgJJeWVolunvJ1hg4/W0fWw7LEBHs/D0DQqtM5ETADQzeLkiI8Mwbiklh5tR2k3dozB7+nZ5n93T4gyJzjFdAhBh9hwZOQUybrNsKAAJHdynFcTFxmCCQNa4YXF6ZLW++B1Leu85qhpt2/Lhg6T/Oy1VIgltQne3tL1ggNQcLnC4WcsZ2CV43ru6mLn7jbUaMK3JfaybfmVHQVFrprGv/mn87Fj3KXHzg0RIYEucz70QKm4zd6xIKbhpDYgtw3MG1jcSPn5meoEHk1lflSrJ4YNPgC4nVAHuL576xgXgR8mJiEuIgTNGoRqPo5+re0vJKPvG6vrvK7UyepOi49lUdx5jv7ybVcfBTw+pB3WHzqHe3rLO9iZq14SUocuHnddS3yx+SQGtovGn4fP212mzZUxD9Y8eT1yCkrRzsUIhbWPtSw5G5vF1TEgthu57Rb6t2mEfw1pZw6W1DgTxN6Fi2n5UEr94AAUl1kn5uqkmnDo4/t64onvU9G/bTQ+TTnmcvl7+yZg0fYsyaPaekqp+szeeve+Mqzuizbs5UFFhQWah0l35MmhHVBcWomRImZV9jaGCz46xoXjYHYRbnBj6G1LYuoIT7vNKaFxeDCuaRKBA2cLrV531cPA8v1nh4sfobJFo3r4dfIANHSzW6Q7sw9bBnpP3NRelhyRzvERGN03AdOX7gPgePhjoOZxjdSBvFo3ro8DM4ajvLIa3WesBGDdEvHxfT1xXZuax1NtGtdHm8bWuTi2yaFzxvay6qp3b98E7D1V4LCrMwAM7ug8TyImIsRhTy7AIq/IzskxVcJv4O6Fw/LC3aZxfcwa3QNRYYF4c/kBdGoSgSWpZ64sZz+vQu0JG3skRGHjEetA0zLYjgkPFt1rSC3tYsOx7LGakZrbNq6PyNBAvL3iIO52ENzPuKMLbu8RL2leLTmoOWu5q1y+6bd2snuj+/WERJejlUaGBuK90T08KZ5uGS74WPbYAFyqqPJ4fgi9tGTIRUqF/4jI6cVrSR10yJ15TpRgWY7f/jUQuzIvmv/taHCpqLBASb2mrLYX5I/yqqt5N5a/iauui08ObY/Fu08DqBnlckRX6255b42qmwjarEEoBrSNRnCAHz4Y01NUQvTDg9rUCT5mje6Bf6/MwAf39rT7mboZ/sqcOz0TorD31NWutrV3i9e3bwyTyYSosCAs2HQCz1kEz9bBh/bntGUA1D0hCmfyS3G5osruso/d2BZ/7MvGoZxilUpn7Z4rUyc46yYfFOBnDprVpKcBuf7hoPegnsqoBcMFHwH+foiQMATxr5MHYNneM3hsSDt0efkPBUumLT2cB8/f3BFbjuWZB0QCrO8E/35tc/Sx6OmjdELmDR1jMKxzrHmGXTGVhdQKpc4docXno+oFoqhM3J2vO7PXmkwmfP1PzyclHNmzqdNmYbUu6Xf0bIovNp+su/0rQcXLt3XCI4PbWI3lYvnYRe3Yw972+tpMG/DQoNb4cM1hu59/cmgHPDm0A3aevIinf9yD6bd2srucESlVK8h5jMRGqp8LpSeGCz6kssys7tOiAXacrLn71f4eyX1B/nVLr4co/OFBbRxO9gQAr4+0Hqfkh4lJmL50H1685RqM/u8W2cvj72fCp/dfHeXW8+njr9rxYjLOFZWhbYzjvI33/tYDM5cfwCOD23q0XbVpdW642q7JZKoziJx18KH9WV2nS7yIE7N3iwZYe2XQM6n08J2VoEZ9Fh8ZUqfVx9/PhKpqAbERwcgpLLP7uWWPDUBxWaVHAyX6AgYfEvz3gT7o9doqrYvhsXfv6Y4H522zGphJy259zjirG3s2b4BfH5M+tPldvZri512ncafEJK5OTSJwX2JzxLk5q6TlHo6uH+yyp1XzhmH4+VFpw6kD8KrI2N7v6+4w0rbj1Ygh5qiXY/AwUpca9dlfz91YJ3j7Y8og/LTrFHo1b4CHvrQ/6rAnHR18CYMPCSzHdfDmG4b2seHYZDMgkD5DD2W8eWdX3N49HteKHNa5lslkUmSKb1/jahRHVxeGNo3rY9ljA3DrRxsBXJ3x1pWYiBD8MDFJ0mB+Yi5SMU5mSPXExOvb4M/D53GLTX5ObS+YGzvGaJbP4e2Uqs+aN7z6eNNeq1HbmPp4dnhHXQ9rrhcMPghAzYiGa6/MIWCPVg0j9ib981RIoD8Ge9jbyRFnFzOp8arU5a9t3RBbjuVhdB95uxVLFV0/CEccH0qidGkaiUcHt8HeUwXmCcjEkNrDzFXK0PDOcXjhZufdId3Vv200dr6YXGewupSnByMjuwhJbRrhUI79fA+5PDK4DV5cki553hC9G9+/JRbvPo2hTsYRcsfDg1ojr6S8zqR3tiJCeWl1hXvIbV7c9GHHg/1bIjIsUPQkT2ppFxuO5f8aqMlAVd7mswf6YNPRC06706rh3bu7Y+LXO7HvTE13bncD12ckdOl2V9vGzqcPmCthtmV32M5mXfvadW3VOd7HJjbHta0boZVOh+B2V7dmUdgzfajsQUBIoD9eub2zy+U6xkXg8SHtVBv11RsZdm4XT3nzYxd7Av398Lc+CUhoKL3XhNI6xUeIDj4iQvQbT9uOzWGP5RDdERIn0AsPCcSwznEOuwHL5amhNWN22E7mViuhYRh+mXw1F6faWWuQxidSg3pB2PjsDdj10k2alkMrJpMJbWPq1xknxhdEhgVqenw9cVN7jOnX3PWCBqXfmppIgpl3dcW8jcftDnWvF6/f2QWRoYG4t5/jxyJBAX7Y8PQNECAoHkS4a9INbXFnr2aId3JX5+9nwnMjOuJs/mXd31W7002ZiDzD4EOixuHBOFdUhmFOBtbxRdH1g3E4V7/Jb2P6NdfFXYazgCG6fjDeFjFzcvNG+r4YmkwmUT1LJl4vbTA6IjIOPnaRaOWUQfjmn4m4ywfH2nfmnbu74bo2jTBfxy0LWpr7995o0SgMnz3Qx/XCBmeknlUe02kXeCJPseVDogb1gtC/rfrDBWstoWEYFjqZz8TohneJw/AuxmoNk4OeMw2kdNklIml4dhGRqsKDA9CpSQTKq6rrjDhKNnwts53oCgYfRKQqk8mEZVdGpvXzwV4WcqofrM+kYyJPMfggItUx6BDn/mtb4s/D510OakXkbRh8EBHpVGiQP76a4PnMw0R6w94uRER26HWyRSJfwOCDiIiIVMXgg4jIQusrI7IOuYZ5FkRKYc4HEZGFRf93Lf5Iz8ZIgw0kSKQmxVo+Zs+ejZYtWyIkJASJiYnYtm2bUpsiIpJNTHgI7k9qifAQaRP7EZF4igQf3333HaZOnYqXX34Zu3btQvfu3TFs2DDk5uYqsTkiIiLyIooEH++99x4eeughjB8/Hp06dcLcuXMRFhaGefPmKbE5IiIi8iKyBx/l5eXYuXMnkpOTr27Ezw/JycnYvHlzneXLyspQWFho9UdERES+S/bg4/z586iqqkJsrHWmeGxsLLKzs+ssP3PmTERGRpr/EhIS5C4SERER6YjmXW2nTZuGgoIC819WVpbWRSIiIiIFyd7VNjo6Gv7+/sjJybF6PScnB3FxdaccDw4ORnBwsNzFICIiIp2SveUjKCgIvXv3xpo1a8yvVVdXY82aNUhKSpJ7c0RERORlFBlkbOrUqRg3bhz69OmDfv36YdasWSgpKcH48eOV2BwRERF5EUWCj9GjR+PcuXOYPn06srOz0aNHD6xYsaJOEioREREZj0nQ2dSNhYWFiIyMREFBASIiIrQuDhEREYkg5fqteW8XIiIiMhYGH0RERKQqBh9ERESkKkUSTj1Rm4LCYdaJiIi8R+11W0wqqe6Cj6KiIgDgMOtEREReqKioCJGRkU6X0V1vl+rqapw5cwbh4eEwmUyyrruwsBAJCQnIyspiTxoFcT+rg/tZHdzP6uG+VodS+1kQBBQVFSE+Ph5+fs6zOnTX8uHn54dmzZopuo2IiAge2CrgflYH97M6uJ/Vw32tDiX2s6sWj1pMOCUiIiJVMfggIiIiVRkq+AgODsbLL7/MWXQVxv2sDu5ndXA/q4f7Wh162M+6SzglIiIi32aolg8iIiLSHoMPIiIiUhWDDyIiIlIVgw8iIiJSlWGCj9mzZ6Nly5YICQlBYmIitm3bpnWRdG3Dhg247bbbEB8fD5PJhCVLlli9LwgCpk+fjiZNmiA0NBTJyck4fPiw1TJ5eXkYO3YsIiIiEBUVhQkTJqC4uNhqmb1792LgwIEICQlBQkIC3nnnHaW/mq7MnDkTffv2RXh4OGJiYjBy5EhkZGRYLVNaWopJkyahUaNGqF+/PkaNGoWcnByrZTIzM3HLLbcgLCwMMTExePrpp1FZWWm1zPr169GrVy8EBwejbdu2WLBggdJfTzfmzJmDbt26mQdVSkpKwu+//25+n/tYGW+99RZMJhOmTJlifo372nOvvPIKTCaT1V/Hjh3N73vFPhYMYNGiRUJQUJAwb948Yd++fcJDDz0kREVFCTk5OVoXTbeWL18uvPDCC8LPP/8sABAWL15s9f5bb70lREZGCkuWLBH27Nkj3H777UKrVq2Ey5cvm5cZPny40L17d2HLli3Cn3/+KbRt21YYM2aM+f2CggIhNjZWGDt2rJCeni58++23QmhoqPDpp5+q9TU1N2zYMGH+/PlCenq6kJqaKtx8881C8+bNheLiYvMyEydOFBISEoQ1a9YIO3bsEK699lrhuuuuM79fWVkpdOnSRUhOThZ2794tLF++XIiOjhamTZtmXubYsWNCWFiYMHXqVGH//v3CRx99JPj7+wsrVqxQ9ftq5ZdffhF+++034dChQ0JGRobw/PPPC4GBgUJ6erogCNzHSti2bZvQsmVLoVu3bsLjjz9ufp372nMvv/yy0LlzZ+Hs2bPmv3Pnzpnf94Z9bIjgo1+/fsKkSZPM/66qqhLi4+OFmTNnalgq72EbfFRXVwtxcXHCu+++a34tPz9fCA4OFr799ltBEARh//79AgBh+/bt5mV+//13wWQyCadPnxYEQRA++eQToUGDBkJZWZl5mWeffVbo0KGDwt9Iv3JzcwUAQkpKiiAINfs1MDBQ+OGHH8zLHDhwQAAgbN68WRCEmkDRz89PyM7ONi8zZ84cISIiwrxvn3nmGaFz585W2xo9erQwbNgwpb+SbjVo0ED4/PPPuY8VUFRUJLRr105YtWqVcP3115uDD+5rebz88stC9+7d7b7nLfvY5x+7lJeXY+fOnUhOTja/5ufnh+TkZGzevFnDknmv48ePIzs722qfRkZGIjEx0bxPN2/ejKioKPTp08e8THJyMvz8/LB161bzMoMGDUJQUJB5mWHDhiEjIwMXL15U6dvoS0FBAQCgYcOGAICdO3eioqLCal937NgRzZs3t9rXXbt2RWxsrHmZYcOGobCwEPv27TMvY7mO2mWMeA5UVVVh0aJFKCkpQVJSEvexAiZNmoRbbrmlzv7gvpbP4cOHER8fj9atW2Ps2LHIzMwE4D372OeDj/Pnz6OqqspqJwNAbGwssrOzNSqVd6vdb872aXZ2NmJiYqzeDwgIQMOGDa2WsbcOy20YSXV1NaZMmYL+/fujS5cuAGr2Q1BQEKKioqyWtd3Xrvajo2UKCwtx+fJlJb6O7qSlpaF+/foIDg7GxIkTsXjxYnTq1In7WGaLFi3Crl27MHPmzDrvcV/LIzExEQsWLMCKFSswZ84cHD9+HAMHDkRRUZHX7GPdzWpLZFSTJk1Ceno6Nm7cqHVRfFKHDh2QmpqKgoIC/Pjjjxg3bhxSUlK0LpZPycrKwuOPP45Vq1YhJCRE6+L4rBEjRpj/v1u3bkhMTESLFi3w/fffIzQ0VMOSiefzLR/R0dHw9/evk+mbk5ODuLg4jUrl3Wr3m7N9GhcXh9zcXKv3KysrkZeXZ7WMvXVYbsMoJk+ejGXLlmHdunVo1qyZ+fW4uDiUl5cjPz/fannbfe1qPzpaJiIiwmsqK08FBQWhbdu26N27N2bOnInu3bvjgw8+4D6W0c6dO5Gbm4tevXohICAAAQEBSElJwYcffoiAgADExsZyXysgKioK7du3x5EjR7zmePb54CMoKAi9e/fGmjVrzK9VV1djzZo1SEpK0rBk3qtVq1aIi4uz2qeFhYXYunWreZ8mJSUhPz8fO3fuNC+zdu1aVFdXIzEx0bzMhg0bUFFRYV5m1apV6NChAxo0aKDSt9GWIAiYPHkyFi9ejLVr16JVq1ZW7/fu3RuBgYFW+zojIwOZmZlW+zotLc0q2Fu1ahUiIiLQqVMn8zKW66hdxsjnQHV1NcrKyriPZTRkyBCkpaUhNTXV/NenTx+MHTvW/P/c1/IrLi7G0aNH0aRJE+85nmVJW9W5RYsWCcHBwcKCBQuE/fv3Cw8//LAQFRVllelL1oqKioTdu3cLu3fvFgAI7733nrB7927h5MmTgiDUdLWNiooSli5dKuzdu1e444477Ha17dmzp7B161Zh48aNQrt27ay62ubn5wuxsbHC/fffL6SnpwuLFi0SwsLCDNXV9pFHHhEiIyOF9evXW3Wbu3TpknmZiRMnCs2bNxfWrl0r7NixQ0hKShKSkpLM79d2mxs6dKiQmpoqrFixQmjcuLHdbnNPP/20cODAAWH27NmG6pr43HPPCSkpKcLx48eFvXv3Cs8995xgMpmElStXCoLAfawky94ugsB9LYcnn3xSWL9+vXD8+HHhr7/+EpKTk4Xo6GghNzdXEATv2MeGCD4EQRA++ugjoXnz5kJQUJDQr18/YcuWLVoXSdfWrVsnAKjzN27cOEEQarrbvvTSS0JsbKwQHBwsDBkyRMjIyLBax4ULF4QxY8YI9evXFyIiIoTx48cLRUVFVsvs2bNHGDBggBAcHCw0bdpUeOutt9T6irpgbx8DEObPn29e5vLly8Kjjz4qNGjQQAgLCxPuvPNO4ezZs1brOXHihDBixAghNDRUiI6OFp588kmhoqLCapl169YJPXr0EIKCgoTWrVtbbcPX/eMf/xBatGghBAUFCY0bNxaGDBliDjwEgftYSbbBB/e150aPHi00adJECAoKEpo2bSqMHj1aOHLkiPl9b9jHJkEQBHnaUIiIiIhc8/mcDyIiItIXBh9ERESkKgYfREREpCoGH0RERKQqBh9ERESkKgYfREREpCoGH0RERKQqBh9ERESkKgYfREREpCoGH0RERKQqBh9ERESkKgYfREREpKr/B3I/p9LIKYEcAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "\n", + "xs = np.asarray([[0, 1, 0, 1, 0],\n", + " [0, 0, 1, 1, 0],\n", + " [1, 1, 0, 1, 0],\n", + " [1, 1, 1, 0, 1],\n", + " [0, 0, 0, 1, 0]])\n", + "\n", + "# ws is now hidden\n", + "ys = np.asarray([[0],\n", + " [1],\n", + " [1],\n", + " [1],\n", + " [0]])\n", + "\n", + "ins = 5\n", + "outs = 1\n", + "\n", + "def weights(ins, outs):\n", + " ws = np.random.randn(ins, outs)\n", + " return ws\n", + "\n", + "ws = weights(ins, outs)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " yh = xs @ ws\n", + " e = yh - ys\n", + " e = np.sum(np.abs(e))\n", + " if e < 0.05:\n", + " print(\"found solution\")\n", + " print(ws)\n", + " else:\n", + " ws = weights(ins, outs)\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "No Solution! We need better learning! we'll adopt a strategy where instead of guessing all new eights, we make changes to our weights and if our changes make an improvement, we keep them. We'll iterate like this. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "found solution\n", + "[[ 1.0280221 ]\n", + " [ 0.01183635]\n", + " [ 1.01485508]\n", + " [-0.01320741]\n", + " [-1.05673078]]\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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rr32Wu3bty/hPQb6PVmxYkXCPiOt7YMd8+uvv/6YNi1YsCBhn3Q85oO1e6C/d4/Ho3vvvTe+Tzoeb0mSyQCrV682gUDAPPjgg+a9994zN954oykqKjJNTU1OlzYk8+fPNw899JDZvn272bp1q/na175mqqqqTEdHR3yfiy66yNx4442moaEhfmttbY0/39vba6ZNm2ZqamrMli1bzLPPPmuKi4vN8uXLnWjSSbvrrrvM2WefndCu/fv3x5+/6aabTGVlpVmzZo3ZtGmT+eIXv2i+9KUvxZ9P13Y3NzcntPnFF180kswrr7xijMmc4/3ss8+an/zkJ+aJJ54wksyTTz6Z8PyKFStMYWGheeqpp8w777xjrrjiCjNp0iRz+PDh+D4LFiwwM2fONBs2bDCvvfaamTx5srnmmmviz7e2tprS0lKzePFis337dvPHP/7R5OTkmFWrVqWqmQM6UdtbWlpMTU2Neeyxx8yHH35o1q9fb2bPnm1mzZqV8B4TJ04099xzT8LvwdH/LozEtg92zK+77jqzYMGChDYdOnQoYZ90POaDtfvo9jY0NJgHH3zQeDwes2vXrvg+6Xi8jTEmI4LF7NmzzZIlS+KP+/r6THl5uamtrXWwKus0NzcbSebVV1+Nb7vooovMrbfeetzXPPvss8br9ZrGxsb4tpUrV5qCggITCoXsLHdY7rrrLjNz5swBn2tpaTF+v988/vjj8W0ffPCBkWTWr19vjEnfdn/erbfeak477TQTiUSMMZl5vD//j20kEjFlZWXm3nvvjW9raWkxwWDQ/PGPfzTGGPP+++8bSeatt96K7/Pcc88Zj8djPv30U2OMMf/xH/9hRo8endDuZcuWmalTp9rcopM30BfN57355ptGktmzZ09828SJE80vfvGL475mpLf9eMFi0aJFx31NJhzzkzneixYtMpdccknCtnQ93ml/KqSnp0ebN29WTU1NfJvX61VNTY3Wr1/vYGXWaW1tlSSNGTMmYfujjz6q4uJiTZs2TcuXL1dXV1f8ufXr12v69OkqLS2Nb5s/f77a2tr03nvvpabwIdqxY4fKy8t16qmnavHixdq7d68kafPmzQqHwwnH+owzzlBVVVX8WKdzu2N6enr0yCOP6O///u8TFurL1OMds3v3bjU2NiYc38LCQs2ZMyfh+BYVFencc8+N71NTUyOv16uN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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "\n", + "xs = np.asarray([[0, 1, 0, 1, 0],\n", + " [0, 0, 1, 1, 0],\n", + " [1, 1, 0, 1, 0],\n", + " [1, 1, 1, 0, 1],\n", + " [0, 0, 0, 1, 0]])\n", + "\n", + "# ws = np.asarray([1, 0, 1, 0, -1]) # hidden!\n", + "\n", + "ys = np.asarray([[0],\n", + " [1],\n", + " [1],\n", + " [1],\n", + " [0]])\n", + "\n", + "ins = 5\n", + "outs = 1\n", + "\n", + "def weights(ins, outs):\n", + " ws = np.random.randn(ins, outs)\n", + " return ws\n", + "\n", + "ws = weights(ins, outs)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " yh = xs @ ws\n", + " e = yh - ys\n", + " e = np.sum(np.abs(e))\n", + " if e < 0.05:\n", + " print(\"found solution\")\n", + " print(ws)\n", + " break\n", + " else:\n", + " # mutation = weights(ins, outs) * 0.1\n", + " mutation = weights(ins, outs) * 0.03\n", + " cw = ws + mutation\n", + "\n", + " yh = xs @ cw\n", + " ce = yh - ys\n", + " ce = np.sum(np.abs(ce))\n", + "\n", + " if ce < e:\n", + " ws = cw\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That looks better, but it still doesn't find a solution. \n", + "\n", + "**Exercise**\n", + "Reduce the scaling factor on the mutation from 0.1 to 0.03 and re-run it. It should find a solution now! So we can add a break after our print statements. \n", + "\n", + "Verify that the identified weights are close to our commented out hidden weights!\n", + "\n", + "Change ys to 0, 0, 0, 3, 3 and re-run. No solution found, right? Even if we increase our number of tries? Might take a long time. \n", + "\n", + "## Non-liner stuff\n", + "\n", + "For these output values, we need to add a bias term because our data is not centered on zero. These are additional ones added on the end of the inputs and are necessare to model the shifts in the data. " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "found solution\n", + "[[ 3.79725462e-03]\n", + " [-2.97033251e+00]\n", + " [-2.96683902e+00]\n", + " [-5.54670775e-01]\n", + " [ 5.41157497e+00]\n", + " [ 3.52382778e+00]]\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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yWbVqlVm2bJl5sc//rHp0qWLqa6uDl9zww03mKKiIjNjxgyzaNEic9ppp5nTTz89fL6xsdH069fPjBo1yixdutR88MEHJjc319x3333hazZs2GBSU1PNnXfeaVavXm2effZZ43K5zEcffRTX9rZkwYIFplu3buaUU04xt912W/i4XdteVlZmunbtaq666iozf/58s2HDBvPxxx+bb775JnzN448/brKyssy//vUvs3z5cnPhhRea7t27m7q6uvA15557rhkwYICZN2+e+eKLL0zPnj3N5ZdfHj5fUVFh8vPzzdixY82qVavM1KlTTUpKinnhhRfi2t7vevTRR01OTo557733zMaNG82bb75p0tPTzTPPPBO+xi7t/+CDD8z9999v3nrrLSPJvP322xHn49XOOXPmGJfLZZ588kmzevVq89vf/tYkJSWZlStXWtL28vJyM2rUKPP666+bNWvWmLlz55phw4aZwYMHR7xGW2374dq/v7feessMGDDAFBYWmj/96U8R59pS+20RLIYNG2bGjRsX/j4QCJjCwkIzYcIEC6s6NqWlpUaS+fzzz40xoX98SUlJ5s033wxf8/XXXxtJZu7cucaY0F9ep9NpSkpKwtdMmjTJZGZmGp/PZ4wx5u677zZ9+/aNeK/LLrvMjB49OtZNOqyqqirTq1cvM336dPP9738/HCzs3PZ77rnHnHHGGS2eDwaDpqCgwPzxj38MHysvLzder9dMnTrVGGPM6tWrjSSzcOHC8DUffvihcTgcZtu2bcYYY/73f//XtGvXLvyzaH7v3r17R7tJrTJmzBhzzTXXRBz76U9/asaOHWuMsW/7v/vhEs92/vznPzdjxoyJqGf48OHm+uuvj2obW3KoD9ZmCxYsMJLM5s2bjTH2absxLbd/69atplOnTmbVqlWma9euEcGirbW/zd8KaWho0OLFizVq1KjwMafTqVGjRmnu3LkWVnZsKioqJEnt27eXJC1evFh+vz+inX369FGXLl3C7Zw7d6769++v/Pz88DWjR49WZWWlvvrqq/A1+79G8zXHw89q3LhxGjNmzAH12bnt7777roYMGaJLL71UeXl5GjhwoF566aXw+Y0bN6qkpCSi7qysLA0fPjyi7dnZ2RoyZEj4mlGjRsnpdGr+/Pnha84880x5PJ7wNaNHj9batWu1d+/eWDezRaeffrpmzJihdevWSZKWL1+u2bNn67zzzpNk//Y3i2c7j8d/B99VUVEhh8Oh7OxsSfZvezAY1BVXXKHx48erb9++B5xva+1v88Fi9+7dCgQCER8okpSfn6+SkhKLqjo2wWBQt99+u0aOHKl+/fpJkkpKSuTxeML/0Jrt386SkpKD/hyazx3qmsrKStXV1cWiOUdk2rRpWrJkiSZMmHDAOTu3fcOGDZo0aZJ69eqljz/+WDfeeKNuvfVWTZkyRdK+2g/197ukpER5eXkR591ut9q3b9+qn48V7r33Xv3iF79Qnz59lJSUpIEDB+r222/X2LFjI2qza/ubxbOdLV1zPPwcpNB4qnvuuUeXX355eJMtu7f9iSeekNvt1q233nrQ822t/XHf3RSHN27cOK1atUqzZ8+2upS4KC4u1m233abp06crOTnZ6nLiKhgMasiQIXrsscckSQMHDtSqVav0l7/8RVdeeaXF1cXeG2+8oVdffVWvvfaa+vbtq2XLlun2229XYWFhQrQfkfx+v37+85/LGKNJkyZZXU5cLF68WM8884yWLFkih8NhdTlR0eZ7LHJzc+VyuQ6YIbBz504VFBRYVNXRu/nmm/Xee+9p5syZEdvLFxQUqKGhQeXl5RHX79/OgoKCg/4cms8d6prMzEylpKREuzlHZPHixSotLdWgQYPkdrvldrv1+eef689//rPcbrfy8/Nt2/aOHTvq5JNPjjh20kknacuWLZL21X6ov98FBQUqLS2NON/Y2KiysrJW/XysMH78+HCvRf/+/XXFFVfojjvuCPdc2b39zeLZzpausfrn0BwqNm/erOnTp0dsCW7ntn/xxRcqLS1Vly5dwr//Nm/erLvuukvdunWT1Pba3+aDhcfj0eDBgzVjxozwsWAwqBkzZmjEiBEWVtY6xhjdfPPNevvtt/Xpp5+qe/fuEecHDx6spKSkiHauXbtWW7ZsCbdzxIgRWrlyZcRfwOZ/oM0fXiNGjIh4jeZrrPxZnX322Vq5cqWWLVsW/hoyZIjGjh0bfmzXto8cOfKAacXr1q1T165dJUndu3dXQUFBRN2VlZWaP39+RNvLy8u1ePHi8DWffvqpgsGghg8fHr5m1qxZ8vv94WumT5+u3r17q127djFr3+HU1tbK6Yz8NeRyuRQMBiXZv/3N4tnO4/HfQXOoWL9+vT755BPl5OREnLdz26+44gqtWLEi4vdfYWGhxo8fr48//lhSG2x/VIeCWmTatGnG6/Wav/3tb2b16tXmuuuuM9nZ2REzBI53N954o8nKyjKfffaZ2bFjR/irtrY2fM0NN9xgunTpYj799FOzaNEiM2LECDNixIjw+eYpl+ecc45ZtmyZ+eijj0yHDh0OOuVy/Pjx5uuvvzbPP/+85VMuD2b/WSHG2LftCxYsMG632zz66KNm/fr15tVXXzWpqanmlVdeCV/z+OOPm+zsbPPOO++YFStWmIsuuuig0xAHDhxo5s+fb2bPnm169eoVMRWtvLzc5OfnmyuuuMKsWrXKTJs2zaSmplo+3fTKK680nTp1Ck83feutt0xubq65++67w9fYpf1VVVVm6dKlZunSpUaSefrpp83SpUvDMx/i1c45c+YYt9ttnnrqKfP111+bhx56KOZTLg/V9oaGBnPhhReazp07m2XLlkX8/tt/hkNbbfvh2n8w350VYkzbar8tgoUxxjz77LOmS5cuxuPxmGHDhpl58+ZZXVKrSDro1+TJk8PX1NXVmZtuusm0a9fOpKammp/85Cdmx44dEa+zadMmc95555mUlBSTm5tr7rrrLuP3+yOumTlzpjn11FONx+MxPXr0iHiP48V3g4Wd2/7vf//b9OvXz3i9XtOnTx/z4osvRpwPBoPmgQceMPn5+cbr9Zqzzz7brF27NuKaPXv2mMsvv9ykp6ebzMxMc/XVV5uqqqqIa5YvX27OOOMM4/V6TadOnczjjz8e87YdTmVlpbnttttMly5dTHJysunRo4e5//77Iz5Q7NL+mTNnHvTf+JVXXmmMiW8733jjDXPiiScaj8dj+vbta95///2YtduYQ7d948aNLf7+mzlzZptvuzGH/7P/roMFi7bUfrZNBwAAUdPmx1gAAIDjB8ECAABEDcECAABEDcECAABEDcECAABEDcECAABEDcECAABEDcECAABEDcECAABEDcECAABEDcECAABEDcECAABEzf8HcnzHRSCLWyIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "\n", + "xs = np.asarray([[0, 1, 0, 1, 0],\n", + " [0, 0, 1, 1, 0],\n", + " [1, 1, 0, 1, 0],\n", + " [1, 1, 1, 0, 1],\n", + " [0, 0, 0, 1, 0]])\n", + "\n", + "# ws = np.asarray([1, 0, 1, 0, -1]) # hidden!\n", + "\n", + "ys = np.asarray([[0],\n", + " [0],\n", + " [0],\n", + " [3],\n", + " [3]])\n", + "\n", + "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", + "\n", + "ins = 5\n", + "outs = 1\n", + "\n", + "def weights(ins, outs):\n", + " ws = np.random.randn(ins, outs)\n", + " return ws\n", + "\n", + "ws = weights(ins+1, outs)\n", + "\n", + "ers = []\n", + "for i in range(15000):\n", + " yh = xs @ ws\n", + " e = yh - ys\n", + " e = np.sum(np.abs(e))\n", + " if e < 0.05:\n", + " print(\"found solution\")\n", + " print(ws)\n", + " break\n", + " else:\n", + " # mutation = weights(ins, outs) * 0.1\n", + " mutation = weights(ins+1, outs) * 0.03\n", + " cw = ws + mutation\n", + "\n", + " yh = xs @ cw\n", + " ce = yh - ys\n", + " ce = np.sum(np.abs(ce))\n", + "\n", + " if ce < e:\n", + " ws = cw\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're still not narrowing in on a solution. Our simple network can only find linear solutions, but if our problem is non-linear, we can't find a solutin because we cannot fit a line to a curve, no matter what slope we give it. \n", + "\n", + "To solve this, we add two things:\n", + "* Another layer of weights connected to some middle nodes\n", + "* Apply an non-linear activation function to the middle neurons. Sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU, \n", + "\n", + "We'll use a sin wave. We know from forie transform that we can approximate any signal by adding together sin waves. " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Fh9raGgwW7ZsMVu2bDGSzP3332+2bNli9u3bZ4yJLTctLCw0f/jDH8y2bdvMlVde2eNy03PPPde8/vrr5tVXXzWTJk3qtty0vr7elJeXm2984xtmx44dZsWKFSY7O9tVy02/+93vmoKCArN27dpuy8aam5sTba6//nozduxY8+KLL5o333zTzJs3z8ybNy/xeteysUsvvdRs3brVrFq1ypSWlva4bOzWW2817777rnn44YddtTzvtttuM+vWrTN79+4127ZtM7fddpvxeDzmL3/5izGGPrbSyatCjKGvU+UHP/iBWbt2rdm7d6957bXXTFVVlSkpKTF1dXXGmKHfz44IFsYY89BDD5mxY8eaQCBgLrjgArNhwwa7SxqyXnrpJSPptMe1115rjIktOb399ttNeXm5CQaD5pJLLjE7d+7s9jOOHTtmvva1r5nc3FyTn59vFi9ebBoaGrq1eeutt8ynP/1pEwwGzejRo829996brq84JPTUx5LM448/nmjT0tJivve975mioiKTnZ1tvvzlL5tDhw51+zkffvihueyyy0xWVpYpKSkxP/jBD0x7e3u3Ni+99JKZNWuWCQQC5owzzuj2GU73zW9+04wbN84EAgFTWlpqLrnkkkSoMIY+ttKpwYK+To2rr77ajBo1ygQCATN69Ghz9dVXm927dydeH+r9zLHpAAAgZYb9HAsAADB0ECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDKECwAAEDK/H+Z24z3yzNRHQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "\n", + "xs = np.asarray([[0, 1, 0, 1, 0],\n", + " [0, 0, 1, 1, 0],\n", + " [1, 1, 0, 1, 0],\n", + " [1, 1, 1, 0, 1],\n", + " [0, 0, 0, 1, 0]])\n", + "\n", + "# ws = np.asarray([1, 0, 1, 0, -1]) # hidden!\n", + "\n", + "ys = np.asarray([[0],\n", + " [0],\n", + " [0],\n", + " [3],\n", + " [3]])\n", + "\n", + "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", + "\n", + "ins = 5\n", + "outs = 1\n", + "nodes = 15\n", + "\n", + "def weights(ins, outs):\n", + " ws = np.random.randn(ins, outs)\n", + " return ws\n", + "\n", + "wi = weights(ins+1, nodes)\n", + "ws = weights(nodes, outs)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " x = xs @ wi\n", + " x = np.sin(x)\n", + " yh = x @ ws\n", + " e = yh - ys\n", + " e = np.sum(np.abs(e))\n", + " if e < 0.05:\n", + " print(\"found solution\")\n", + " print(ws)\n", + " break\n", + " else:\n", + " # mutation = weights(ins, outs) * 0.1\n", + " mutation = weights(nodes, outs) * 0.03\n", + " cw = ws + mutation\n", + "\n", + " x = xs @ wi\n", + " x = np.sin(x)\n", + " yh = x @ cw\n", + " ce = yh - ys\n", + " ce = np.sum(np.abs(ce))\n", + "\n", + " if ce < e:\n", + " ws = cw\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Yay, we found a solution. \n", + "\n", + "**Exercise**:\n", + "Reduce the number of intermediary nodes to 5. What happens? \n", + "\n", + "Five is not enough if we want to find a solutino in 5k attempts, but if we use a better search algorithm. \n", + "\n", + "E.g. we can do a bredth first search where we make multiple children and then explore multiple childrens family lines at a time in parallel. \n", + "\n", + "This sacrifices many children. There is another way - we can check explore the optoin which has the steepest slope toward our goal. We take the derivative " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "found solution\n", + "[[ 1.84319933]\n", + " [ 0.36640227]\n", + " [-0.45447801]\n", + " [ 0.1995179 ]\n", + " [ 0.20053693]\n", + " [-1.12094583]\n", + " [ 0.56073044]\n", + " [ 0.73116379]\n", + " [-1.00306465]\n", + " [ 1.20739363]\n", + " [ 1.63687894]\n", + " [-0.39957122]\n", + " [ 1.22854594]\n", + " [ 0.36304141]\n", + " [-1.53689375]]\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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AADAUoQRAABgKcIIAACwVMaEkccee0yjRo1Sdna2Zs6cqQ8++MDqkhJq8eLFmjFjhgoKClReXq5rrrlGW7du7XFOd3e35s+fr9LSUuXn5+vb3/62GhsbLao4OR544AEZhqEFCxbE9mVSO+zfv1/f+973VFpaqpycHE2ePFkbNmyIHTdNU/fcc4+GDRumnJwczZkzR9u3b7ew4vgLBoNatGiRamtrlZOTozFjxujee+/tcT+NdG2Hd999V1deeaWqqqpkGIZeeeWVHsfP5Hu3tLRo7ty5KiwsVHFxsf7+7/9e7e3tSfwWA3eqdvD7/brrrrs0efJk5eXlqaqqSt///vd14MCBHu+R7u1wvB/96EcyDENLlizpsT9e7ZARYeTFF1/U7bffrp///OfatGmTpkyZoksvvVRNTU1Wl5Ywq1at0vz587V27VotX75cfr9fX//619XR0RE757bbbtOf//xnvfTSS1q1apUOHDiga6+91sKqE2v9+vX63e9+p3PPPbfH/kxphyNHjmj27NnKysrSG2+8oc2bN+vXv/61SkpKYuc89NBDWrp0qZ544gmtW7dOeXl5uvTSS9Xd3W1h5fH14IMP6vHHH9ejjz6qL774Qg8++KAeeughPfLII7Fz0rUdOjo6NGXKFD322GO9Hj+T7z137lx9/vnnWr58uV577TW9++67uummm5L1FeLiVO3Q2dmpTZs2adGiRdq0aZNefvllbd26VVdddVWP89K9HY61bNkyrV27VlVVVScci1s7mBngggsuMOfPnx97HQwGzaqqKnPx4sUWVpVcTU1NpiRz1apVpmmaZmtrq5mVlWW+9NJLsXO++OILU5K5Zs0aq8pMmLa2NnPs2LHm8uXLza9+9avmrbfeappmZrXDXXfdZV500UUnPR4KhczKykrzV7/6VWxfa2ur6XK5zOeffz4ZJSbFFVdcYf7gBz/ose/aa681586da5pm5rSDJHPZsmWx12fyvTdv3mxKMtevXx8754033jANwzD379+ftNrj6fh26M0HH3xgSjL37NljmmZmtcO+ffvM4cOHm5999pk5cuRI8ze/+U3sWDzbIe17Rnw+nzZu3Kg5c+bE9tlsNs2ZM0dr1qyxsLLkcrvdkqQhQ4ZIkjZu3Ci/39+jXSZMmKCampq0bJf58+friiuu6PF9pcxqh1dffVXTp0/Xd77z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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "\n", + "xs = np.asarray([[0, 1, 0, 1, 0],\n", + " [0, 0, 1, 1, 0],\n", + " [1, 1, 0, 1, 0],\n", + " [1, 1, 1, 0, 1],\n", + " [0, 0, 0, 1, 0]])\n", + "\n", + "# ws = np.asarray([1, 0, 1, 0, -1]) # hidden!\n", + "\n", + "ys = np.asarray([[0],\n", + " [0],\n", + " [0],\n", + " [3],\n", + " [3]])\n", + "\n", + "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", + "\n", + "ins = 5\n", + "outs = 1\n", + "nodes = 15\n", + "\n", + "def weights(ins, outs):\n", + " ws = np.random.randn(ins, outs)\n", + " return ws\n", + "\n", + "wi = weights(ins+1, nodes)\n", + "ws = weights(nodes, outs)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " x = xs @ wi\n", + " x = np.sin(x)\n", + " yh = x @ ws\n", + " e = (yh - ys) * 1\n", + " ws -= (x.T @ e) * 0.03\n", + " e = np.sum(np.abs(e))\n", + " if e < 0.05:\n", + " print(\"found solution\")\n", + " print(ws)\n", + " break\n", + "\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wow we found a solution in just a couple hundred iterations. \n", + "\n", + "**Exercise**:\n", + "* Remove the break and see how close we get to the actual solution.\n", + "* Try using 5 nodes. Do we find a solution? \n", + "* How about 2 nodes?\n", + "\n", + "Two nodes doesn't work because we can get stuck on a local maximum. We need additoinal dimensionality from more nodes. \n", + "\n", + "So far we've only fine-tuned the outer layer of nodes. If we tune the inner layer, we might capture hierarchical structures and be able to model with fewer parameters. \n", + "\n", + "Example, we need 15 parameters to model 5 trippel leters, but with middle layers to model repeated patters across the tripples, we can use fewer parameters. \n", + "\n", + "We need to train the middle layers with back propagation!" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "\n", + "# Problem 0\n", + "# xs = np.asarray([[0, 1, 0, 1, 0],\n", + "# [0, 0, 1, 1, 0],\n", + "# [1, 1, 0, 1, 0],\n", + "# [1, 1, 1, 0, 1],\n", + "# [0, 0, 0, 1, 0]])\n", + "\n", + "# ys = np.asarray([[0],\n", + "# [0],\n", + "# [0],\n", + "# [3],\n", + "# [3]])\n", + "\n", + "# Problem 1\n", + "# xs = np.asarray([[1, 0], [0, 1], [1, 1], [0, 0]])\n", + "# ys = np.asarray([[1], [1], [0], [0]])\n", + "\n", + "# Problem 2\n", + "xs = np.asarray([[-10], [-8], [-6], [-4], [-2], [0], [2], [4], [6], [8], [10]])\n", + "# ys = 0.5 * xs + 7\n", + "ys = xs ** 2\n", + "\n", + "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", + "\n", + "ins = 1 # 2 # 5\n", + "outs = 1\n", + "nodes = 100 # 20 # 2\n", + "lr = 0.0000005 # 0.03\n", + "\n", + "def weights(ins, outs):\n", + " ws = np.random.randn(ins, outs)\n", + " return ws\n", + "\n", + "w0 = weights(ins+1, nodes)\n", + "w1 = weights(nodes, nodes)\n", + "w2 = weights(nodes, outs)\n", + "\n", + "ers = []\n", + "for i in range(35000):\n", + " x0 = xs\n", + "\n", + " z0 = (x0 @ w0); x1 = np.sin(z0)\n", + " z1 = (x1 @ w1); x2 = np.sin(z1)\n", + " yh = (x2 @ w2)\n", + "\n", + " e = (yh - ys)\n", + "\n", + " e2 = (e) * 1\n", + " e1 = (e @ w2.T) * np.cos(z1)\n", + " e0 = (e1 @ w1.T) * np.cos(z0)\n", + "\n", + " w2 -= (x2.T @ e) * lr\n", + " w1 -= (x1.T @ e1) * lr\n", + " w0 -= (x0.T @ e0) * lr\n", + "\n", + " e = np.sum(np.abs(e))\n", + "\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)\n", + "\n", + "plt.figure(2)\n", + "plt.plot(ys, label='ys')\n", + "plt.plot(yh, label='yh')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Yadda yadda, lots of work to approximate a simple function. Like using a tank to kill a fly. Anyway, we're going to do stuff with more layers and need to install pytorch.\n", + "\n", + "https://pytorch.org/get-started/locally/" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loss: 246631.640625\n", + "loss: 69992.8046875\n", + "loss: 31578.111328125\n", + "loss: 13223.3251953125\n", + "loss: 5160.99169921875\n", + "loss: 2281.835693359375\n", + "loss: 782.9633178710938\n", + "loss: 201.0695343017578\n", + "loss: 47.200313568115234\n", + "loss: 4.3181257247924805\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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RETE6+kMj4iIiHg9FR4RERHxeio8IiIi4vVUeERERMTrqfBUs1dffZUWLVoQEBBASkoKK1eutDqSV5kyZQrJycmEhoYSGRlJ//792bp1q9WxvN7UqVMxDINRo0ZZHcXrHDhwgEGDBhEREUFgYCAJCQmsXr3a6lhexel08uijjxIXF0dgYCCtWrVi8uTJF/R9TPLzvv76a2644QZiYmIwDIP58+dXWm+aJo899hiNGzcmMDCQPn36sH379hrJpsJTjebOnUt6ejqPP/44a9eupXPnzqSlpXH48GGro3mNr776iuHDh7N8+XIyMjIoLy+nb9++FBUVWR3Na61atYq//e1vdOrUyeooXufEiRNceuml+Pv78+mnn7J582ZmzJhB/fr1rY7mVZ599llee+01XnnlFbZs2cKzzz7LtGnTePnll62OVusVFRXRuXNnXn311fOunzZtGi+99BIzZ85kxYoVBAcHk5aWRklJSfWHM6XadO/e3Rw+fLh73ul0mjExMeaUKVMsTOXdDh8+bALmV199ZXUUr1RYWGi2adPGzMjIMC+//HJz5MiRVkfyKuPGjTN79epldQyv169fP/Puu++utOzmm28277jjDosSeSfA/OCDD9zzLpfLjI6ONqdPn+5edvLkSdNut5tvv/12tefRGZ5qUlZWxpo1a+jTp497mY+PD3369CEzM9PCZN6toKAAgAYNGlicxDsNHz6cfv36Vfr3WqrOhx9+SFJSErfeeiuRkZF06dKFv//971bH8jo9e/ZkyZIlbNu2DYD169fz7bffcu2111qczLvt3r2bvLy8Sn9/hIeHk5KSUiPHRX15aDU5evQoTqeTqKioSsujoqLIycmxKJV3c7lcjBo1iksvvZSOHTtaHcfrvPPOO6xdu5ZVq1ZZHcVr7dq1i9dee4309HQefvhhVq1axUMPPYTNZmPIkCFWx/Ma48ePx+Fw0K5dO3x9fXE6nTz99NPccccdVkfzanl5eQDnPS7+sK46qfCI1xg+fDjZ2dl8++23VkfxOvv27WPkyJFkZGQQEBBgdRyv5XK5SEpK4plnngGgS5cuZGdnM3PmTBWeKvTuu+/y1ltvMWfOHDp06EBWVhajRo0iJiZG77MX0yWtatKwYUN8fX3Jz8+vtDw/P5/o6GiLUnmvESNGsHDhQpYuXUrTpk2tjuN11qxZw+HDh+natSt+fn74+fnx1Vdf8dJLL+Hn54fT6bQ6oldo3Lgx8fHxlZa1b9+e3NxcixJ5p7FjxzJ+/HgGDBhAQkICgwcPZvTo0UyZMsXqaF7th2OfVcdFFZ5qYrPZ6NatG0uWLHEvc7lcLFmyhNTUVAuTeRfTNBkxYgQffPABX3zxBXFxcVZH8kpXX301GzduJCsryz0lJSVxxx13kJWVha+vr9URvcKll156zmMVtm3bRvPmzS1K5J2Ki4vx8al8+PP19cXlclmUqG6Ii4sjOjq60nHR4XCwYsWKGjku6pJWNUpPT2fIkCEkJSXRvXt3XnjhBYqKirjrrrusjuY1hg8fzpw5c1iwYAGhoaHu68Dh4eEEBgZanM57hIaGnnNfVHBwMBEREbpfqgqNHj2anj178swzz/CHP/yBlStXMmvWLGbNmmV1NK9yww038PTTT9OsWTM6dOjAunXreO6557j77rutjlbrnTp1ih07drjnd+/eTVZWFg0aNKBZs2aMGjWKp556ijZt2hAXF8ejjz5KTEwM/fv3r/5w1f45sDru5ZdfNps1a2babDaze/fu5vLly62O5FWA806zZ8+2OprX08fSq8dHH31kduzY0bTb7Wa7du3MWbNmWR3J6zgcDnPkyJFms2bNzICAALNly5bmI488YpaWllodrdZbunTpef9OHjJkiGmaZz6a/uijj5pRUVGm3W43r776anPr1q01ks0wTT1aUkRERLyb7uERERERr6fCIyIiIl5PhUdERES8ngqPiIiIeD0VHhEREfF6KjwiIiLi9VR4RERExOup8IiIiIjXU+ERERERr6fCIyIiIl5PhUdERES8ngqPiIiIeL3/D7Y7HRsIyeA8AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "import torch\n", + "from torch.nn import functional as F\n", + "\n", + "# Problem 0\n", + "# xs = np.asarray([[0, 1, 0, 1, 0],\n", + "# [0, 0, 1, 1, 0],\n", + "# [1, 1, 0, 1, 0],\n", + "# [1, 1, 1, 0, 1],\n", + "# [0, 0, 0, 1, 0]])\n", + "\n", + "# ys = np.asarray([[0],\n", + "# [0],\n", + "# [0],\n", + "# [3],\n", + "# [3]])\n", + "\n", + "# Problem 1\n", + "# xs = np.asarray([[1, 0], [0, 1], [1, 1], [0, 0]])\n", + "# ys = np.asarray([[1], [1], [0], [0]])\n", + "\n", + "# Problem 2\n", + "xs = np.asarray([[-10], [-8], [-6], [-4], [-2], [0], [2], [4], [6], [8], [10]])\n", + "# ys = 0.5 * xs + 7\n", + "# ys = xs ** 2\n", + "ys = xs ** 3 - xs**2 + xs - 3\n", + "\n", + "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", + "\n", + "xs = torch.tensor(xs).float()\n", + "ys = torch.tensor(ys).float()\n", + "\n", + "ins = 1\n", + "outs = 1\n", + "nodes = 200\n", + "lr = 0.003\n", + "\n", + "def weights(ins, outs):\n", + " ws = torch.randn(ins, outs)\n", + " ws = ws.requires_grad_(True)\n", + " return ws\n", + "\n", + "w0 = weights(ins+1, nodes)\n", + "w1 = weights(nodes, nodes)\n", + "w2 = weights(nodes, outs)\n", + "\n", + "optimizer = torch.optim.Adam([w0, w1, w2], lr)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " x0 = xs\n", + "\n", + " z0 = (x0 @ w0); x1 = torch.sin(z0)\n", + " z1 = (x1 @ w1); x2 = torch.sin(z1)\n", + " yh = (x2 @ w2)\n", + "\n", + " loss = F.mse_loss(yh, ys)\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " e = loss.item()\n", + "\n", + " if i % 500 == 0:\n", + " print('loss:', e)\n", + "\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)\n", + "\n", + "plt.figure(2)\n", + "plt.plot(ys, label='ys')\n", + "plt.plot(yh.detach(), label='yh')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "import torch\n", + "from torch.nn import functional as F\n", + "\n", + "\n", + "xs = np.asarray([[-10], [-8], [-6], [-4], [-2], [0], [2], [4], [6], [8], [10]])\n", + "ys = xs ** 3 - xs**2 + xs - 3\n", + "\n", + "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", + "\n", + "xs = torch.tensor(xs).float()\n", + "ys = torch.tensor(ys).float()\n", + "\n", + "ins = 1\n", + "outs = 1\n", + "nodes = 200\n", + "lr = 0.003\n", + "\n", + "params = []\n", + "def weights(ins, outs):\n", + " ws = torch.randn(ins, outs)\n", + " ws = ws.requires_grad_(True)\n", + " params.append(ws)\n", + " return ws\n", + "\n", + "class Model():\n", + " def __init__(self):\n", + " self.w0 = weights(ins+1, nodes)\n", + " self.w1 = weights(nodes, nodes)\n", + " self.w2 = weights(nodes, outs)\n", + "\n", + " def forward(self, x):\n", + " x = torch.sin(x @ self.w0)\n", + " x = torch.sin(x @ self.w1)\n", + " yh = (x @ self.w2)\n", + " return yh\n", + "\n", + "model = Model()\n", + "optimizer = torch.optim.Adam(params, lr)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " x0 = xs\n", + "\n", + " z0 = (x0 @ w0); x1 = torch.sin(z0)\n", + " z1 = (x1 @ w1); x2 = torch.sin(z1)\n", + " yh = (x2 @ w2)\n", + "\n", + " loss = F.mse_loss(yh, ys)\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " e = loss.item()\n", + "\n", + " if i % 500 == 0:\n", + " print('loss:', e)\n", + "\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)\n", + "\n", + "plt.figure(2)\n", + "plt.plot(ys, label='ys')\n", + "plt.plot(yh.detach(), label='yh')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 58bef85f3e5eba32cbffc56b46fae70fbf4c7db9 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 13 Feb 2025 16:46:09 -0800 Subject: [PATCH 140/163] cleanup --- M-Microcontrollers_and_Circuitpython.ipynb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/M-Microcontrollers_and_Circuitpython.ipynb b/M-Microcontrollers_and_Circuitpython.ipynb index f6281b3..68553cd 100644 --- a/M-Microcontrollers_and_Circuitpython.ipynb +++ b/M-Microcontrollers_and_Circuitpython.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Section F - Microcontrollers\n", + "# Section M - Microcontrollers\n", "\n", "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", @@ -47,6 +47,8 @@ "## Getting Started\n", "Download and install the \"Mu\" editor. There are other options, but mu just works - it knows where to look for code on the circuitpython microcontroller and has a button to open a serial terminal. https://codewith.mu/\n", "\n", + "You can also use https://code.circuitpython.org/ to program circuitpython just like with mu. Most browsers now support serial passthrough specifically for this type of use.\n", + "\n", "Flash micropython onto your microcontroller board. If you have a new board, it will present a storage device called UF2 something when you plug it into the computer. If it doesn't, then hold the boot button on the board while you plug it into the computer and it should go into uf2 flash mode.\n", "\n", "**Download a uf2 file from circuitpython for your board**\n", From c3f692f26df38f2f08a30864ad9fe5506a974c5f Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 20 Feb 2025 16:35:59 -0800 Subject: [PATCH 141/163] content --- C1-Classes.ipynb | 122 ++++++++++++ L-LLM.ipynb | 507 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 616 insertions(+), 13 deletions(-) create mode 100644 C1-Classes.ipynb diff --git a/C1-Classes.ipynb b/C1-Classes.ipynb new file mode 100644 index 0000000..9c3c5a3 --- /dev/null +++ b/C1-Classes.ipynb @@ -0,0 +1,122 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section C1 - Classes\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "**Topics**: Introducing classes.\n", + "\n", + "## Classes\n", + "Everything in python is an object, and creating a class is how we define a new type object. We can encapsulate any behavior and data into a class that we want, and classes can inherit other classes in order to expand on their functionality. \n", + "\n", + "This is a classic example. We are at a school and need to keep records of people at the school. There are properties that all people have and properties that only specific people, students, teachers, administrators, will have. So weu can create a generic people class and inherit that into separate student and teacher classes. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class Person:\n", + " def __init__(self, name, age):\n", + " self.name = name\n", + " self.age = age\n", + "\n", + " def introduce(self):\n", + " return f\"Hi, I'm {self.name} and I'm {self.age} years old.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can extend the person class into separate Student and Teacher classes:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class Student(Person):\n", + " def __init__(self, name, age, grade):\n", + " super().__init__(name, age) # Call the parent constructor\n", + " self.grade = grade\n", + "\n", + " def introduce(self):\n", + " return f\"Hi, I'm {self.name}, a student in grade {self.grade}.\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class Teacher(Person):\n", + " def __init__(self, name, age, subject):\n", + " super().__init__(name, age)\n", + " self.subject = subject\n", + "\n", + " def introduce(self):\n", + " return f\"Hello, I'm {self.name}, and I teach {self.subject}.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And using them to create new objects:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating objects\n", + "s1 = Student(\"Alice\", 14, \"8th\")\n", + "t1 = Teacher(\"Mr. Smith\", 40, \"Math\")\n", + "\n", + "# Calling methods\n", + "print(s1.introduce()) # Output: Hi, I'm Alice, a student in grade 8th.\n", + "print(t1.introduce()) # Output: Hello, I'm Mr. Smith, and I teach Math." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data validation/consistency\n", + "In the __init__ function, we have the opportunity to look at the values being passed in and raise an error if they don't meet our criteria. For example, we might want to make sure the name passd in is:\n", + "\n", + "* a string\n", + "* at least two words long (first and last name)\n", + "\n", + "And we might want to capitalize it automatically for consistency. \n", + "\n", + "**Exercise** " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/L-LLM.ipynb b/L-LLM.ipynb index e31f950..51f8336 100644 --- a/L-LLM.ipynb +++ b/L-LLM.ipynb @@ -850,9 +850,56 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 76, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loss: 2859.491943359375\n", + "loss: 0.0003213828313164413\n", + "loss: 1.1633167559921276e-05\n", + "loss: 0.0007853857823647559\n", + "loss: 0.10190165787935257\n", + "loss: 8.44282767502591e-05\n", + "loss: 0.00013280313578434289\n", + "loss: 1.0274457054038066e-05\n", + "loss: 3.554864917987288e-07\n", + "loss: 1.3268711427372182e-06\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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7du369133zXdlZPWsGHDVFZWptraWv3xj3/UzJkzVVxcbLpbJ41du3bpV7/6lQoLC9W1a1fT3TmpTZkyxf56zJgxyszM1KBBg/Tyyy8rKSnJYM9ODDMwJ6hv375KSEj4XgV2VVWVgsGgoV51bNFx+7ExDQaDqq6ujjne2Nioffv2xbQ51jmO/ozOYM6cOVqxYoXefvttDRgwwH4/GAyqvr5eNTU1Me2/O87HG8MfahMIBDrEX3bx4vP5NHToUI0bN075+fkaO3asHnnkEcY5TkpLS1VdXa2zzz5biYmJSkxMVHFxsR599FElJiYqLS2NcW4lKSkpOv3007Vz584O8eeZAHOCfD6fxo0bp6KiIvu95uZmFRUVKRQKGexZxzV48GAFg8GYMY1EItq4caM9pqFQSDU1NSotLbXbrF27Vs3NzcrMzLTbrF+/Xg0NDXabwsJCDRs2TL169WqjqzHHsizNmTNHy5cv19q1azV48OCY4+PGjVOXLl1ixrm8vFyVlZUx47xt27aYsFhYWKhAIKCRI0fabY4+R7RNZ//z39zcrLq6OsY5TiZOnKht27aprKzMfp1zzjmaPn26/TXj3DoOHDigzz77TP379+8Yf55bXAbcibz44ouW3++3CgoKrI8++si6+eabrZSUlJgKbMTav3+/tWXLFmvLli2WJOuhhx6ytmzZYv3P//yPZVnfLqNOSUmx/vSnP1lbt261rrjiimMuoz7rrLOsjRs3Wu+++6512mmnxSyjrqmpsdLS0qzrr7/e2r59u/Xiiy9a3bp16zTLqG+55RYrOTnZWrduXcxyyG+++cZuM3v2bGvgwIHW2rVrrc2bN1uhUMgKhUL28ehyyEmTJlllZWXWqlWrrH79+h1zOeS8efOsjz/+2HriiSc63bLTO++80youLrYqKiqsrVu3Wnfeeafl8XisNWvWWJbFOLeWo1chWRbjHC+33367tW7dOquiosJ67733rKysLKtv375WdXW1ZVntf5wJMA499thj1sCBAy2fz2edd9551oYNG0x3qV17++23LUnfe82cOdOyrG+XUv/7v/+7lZaWZvn9fmvixIlWeXl5zDm++uor69prr7V69OhhBQIB65e//KW1f//+mDYffvihdcEFF1h+v9865ZRTrPvvv7+tLtG4Y42vJOvZZ5+12xw6dMj653/+Z6tXr15Wt27drH/8x3+09uzZE3OeL774wpoyZYqVlJRk9e3b17r99tuthoaGmDZvv/22deaZZ1o+n88aMmRIzGd0BjfccIM1aNAgy+fzWf369bMmTpxohxfLYpxby3cDDOMcH9dcc43Vv39/y+fzWaeccop1zTXXWDt37rSPt/dx9liWZbV8HgcAAKDtUAMDAAA6HAIMAADocAgwAACgwyHAAACADocAAwAAOhwCDAAA6HAIMAAAoMMhwAAAgA6HAAMAADocAgwAAOhwCDAAAKDD+f8vnQ6SuXHeZgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import numpy as np\n", "import matplotlib.pylab as plt\n", @@ -861,7 +908,8 @@ "\n", "\n", "xs = np.asarray([[-10], [-8], [-6], [-4], [-2], [0], [2], [4], [6], [8], [10]])\n", - "ys = xs ** 3 - xs**2 + xs - 3\n", + "# ys = xs ** 3 - xs**2 + xs - 3\n", + "ys = xs ** 2\n", "\n", "xs = np.hstack((xs, np.ones([xs.shape[0], 1])))\n", "\n", @@ -875,7 +923,7 @@ "\n", "params = []\n", "def weights(ins, outs):\n", - " ws = torch.randn(ins, outs)\n", + " ws = torch.randn(ins, outs) * 0.1\n", " ws = ws.requires_grad_(True)\n", " params.append(ws)\n", " return ws\n", @@ -887,8 +935,8 @@ " self.w2 = weights(nodes, outs)\n", "\n", " def forward(self, x):\n", - " x = torch.sin(x @ self.w0)\n", - " x = torch.sin(x @ self.w1)\n", + " x = torch.relu(x @ self.w0)\n", + " x = torch.relu(x @ self.w1)\n", " yh = (x @ self.w2)\n", " return yh\n", "\n", @@ -897,11 +945,7 @@ "\n", "ers = []\n", "for i in range(5000):\n", - " x0 = xs\n", - "\n", - " z0 = (x0 @ w0); x1 = torch.sin(z0)\n", - " z1 = (x1 @ w1); x2 = torch.sin(z1)\n", - " yh = (x2 @ w2)\n", + " yh = model.forward(xs)\n", "\n", " loss = F.mse_loss(yh, ys)\n", " optimizer.zero_grad()\n", @@ -920,8 +964,445 @@ "\n", "plt.figure(2)\n", "plt.plot(ys, label='ys')\n", - "plt.plot(yh.detach(), label='yh')" + "plt.plot(yh.detach(), label='yh')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([1444.6680], grad_fn=)\n" + ] + } + ], + "source": [ + "value = 100\n", + "value = torch.tensor([value, 1]).float()\n", + "result = model.forward(value)\n", + "print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can fit any data with enough nodes. \n", + "Poor interpolation, but we can mitigate this with more data, more training, and more constraints. \n", + "Experiment and see what works!\n", + "\n", + "we can use anything as input and output. Images, medical data, dogs, text. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "text = '''\n", + "Cats, cats, everywhere\n", + "Furry balls without a care\n", + "Purring, meowing, licking fur\n", + "Hunting mice, they always purr\n", + "\n", + "Cats, cats, on the prowl\n", + "Jumping high, never a scowl\n", + "Whiskers twitching, eyes alert\n", + "Tail in air, ready to assert\n", + "\n", + "Cats, cats, so much fun\n", + "Cuddling close in the sun\n", + "Stretching out, napping long\n", + "Playing with string, never wrong\n", + "\n", + "Cats, cats, always cool\n", + "Lapping milk, acting like a fool\n", + "Mysterious, charming, full of grace\n", + "Cats are simply ace\n", + "\n", + "Cats, cats, with silky fur\n", + "Making biscuits, they always purr\n", + "Sitting high, looking down\n", + "Claiming everything as their crown\n", + "\n", + "Cats, cats, with eyes so bright\n", + "Chasing shadows, day or night\n", + "Curled up warm, on your lap\n", + "Purring gently, taking a nap\n", + "\n", + "Cats, cats, with playful paws\n", + "Hiding, stalking, never pause\n", + "Jumping, leaping, so agile\n", + "Graceful creatures, never fragile\n", + "\n", + "Cats, cats, our feline friends\n", + "Bringing joy that never ends\n", + "Loving us, without a doubt\n", + "Cats are what life's all about\n", + "\n", + "Cats, cats, everywhere I see\n", + "Furry creatures, cute as can be\n", + "Rubbing against our legs\n", + "Asking for treats, without begs\n", + "\n", + "Cats, cats, with their regal stance\n", + "Graceful movements, they enhance\n", + "But we love them all the same\n", + "Our little friends, never tame\n", + "\n", + "Cats, cats, so full of love\n", + "Watching over us from above\n", + "Protecting us from any harm\n", + "Always there, with their charm\n", + "\n", + "Cats, cats, with their curious ways\n", + "Exploring nooks, and hiding in bays\n", + "Living life with style and grace\n", + "Cats are always in first place\n", + "\n", + "Cats, cats, so full of fun\n", + "Chasing toys, never done\n", + "Hiding in boxes, or paper bags\n", + "Making us laugh, never drags\n", + "\n", + "Cats, cats, with their own minds\n", + "Sitting in the sun, never blinds\n", + "Chasing strings, and balls of yarn\n", + "They never tire, oh what a charm\n", + "\n", + "Cats, cats, with calming purrs\n", + "Cuddling close, to be yours\n", + "Giving love, without any fuss\n", + "Their presence, a comfort to us\n", + "\n", + "Cats, cats, always at ease\n", + "Living life, as they please\n", + "Bringing joy, to all they meet\n", + "Cats, our furry friends, so sweet\n", + "\n", + "Cats, cats, with eyes so bright\n", + "Guiding us through the darkest night\n", + "Purring softly, by our side\n", + "Comforting us, as we hide\n", + "\n", + "Cats, cats, with softest fur\n", + "Nuzzling close, making a purr\n", + "In our lap, they take a rest\n", + "We're lucky to have, such a guest\n", + "\n", + "Cats, cats, with their playful ways\n", + "Entertaining us, on the laziest days\n", + "Chasing shadows, or a feather\n", + "Making us smile, always together\n", + "\n", + "Cats, cats, with hearts so pure\n", + "Bringing love, that will endure\n", + "Their presence, a blessing indeed\n", + "Cats, our friends, we shall never need\n", + "\n", + "Cats, cats, with their little quirks\n", + "Scratching posts, and tiny perks\n", + "Licking paws, cleaning their face\n", + "Chasing tails, all over the place\n", + "\n", + "Cats, cats, with their playful hearts\n", + "Chasing toys, and little carts\n", + "Their antics, bringing us joy\n", + "Cats, our little angels, oh so coy\n", + "\n", + "Cats, cats, with their gentle souls\n", + "Lifting spirits, making us whole\n", + "In their eyes, we see the light\n", + "Bringing peace, that feels so right\n", + "\n", + "Cats, cats, with their gentle purr\n", + "Calming us, when we're feeling a stir\n", + "Snuggling close, to keep us warm\n", + "Cats, our little cuddle storm\n", + "\n", + "Cats, cats, with their playful heart\n", + "Jumping high, right from the start\n", + "Bouncing around, like little springs\n", + "Cats, our little entertainers, with wings\n", + "\n", + "Cats, cats, with their loving grace\n", + "Their soft purrs, caress our face\n", + "In their embrace, we feel at peace\n", + "Cats, our little comfort, never to cease\n", + "\n", + "Cats, cats, with their loving ways\n", + "Cuddling close, on the darkest days\n", + "In the garden, or up in a tree\n", + "Cats, our little explorers, always free'''" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "loss: 15.538918495178223\n", + "loss: 0.6973809003829956\n", + "loss: 0.009146902710199356\n", + "loss: 0.0025379888247698545\n", + "loss: 0.001624523545615375\n", + "loss: 0.000958576041739434\n", + "loss: 0.0005740119377151132\n", + "loss: 0.00047716841800138354\n", + "loss: 0.00028826287598349154\n", + "loss: 0.0002343075757380575\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "import torch\n", + "from torch.nn import functional as F\n", + "\n", + "%matplotlib widget\n", + "\n", + "text = text.lower()\n", + "chars = sorted(list(set(text)))\n", + "stoi = {ch:i for i, ch in enumerate(chars)}\n", + "itos = {i:ch for i, ch in enumerate(chars)}\n", + "data = [stoi[c] for c in text]\n", + "vocab_size = len(chars)\n", + "\n", + "ins = 64\n", + "outs = vocab_size\n", + "nodes = 200\n", + "lr = 0.003\n", + "\n", + "data = torch.tensor(data).float()\n", + "\n", + "params = []\n", + "def weights(ins, outs):\n", + " ws = torch.randn(ins, outs) * 0.1\n", + " ws = ws.requires_grad_(True)\n", + " params.append(ws)\n", + " return ws\n", + "\n", + "class Model():\n", + " def __init__(self):\n", + " self.w0 = weights(ins, nodes)\n", + " self.w1 = weights(nodes, nodes)\n", + " self.w2 = weights(nodes, outs)\n", + "\n", + " def forward(self, x):\n", + " x = torch.relu(x @ self.w0)\n", + " x = torch.relu(x @ self.w1)\n", + " yh = (x @ self.w2)\n", + " return yh\n", + "\n", + "model = Model()\n", + "optimizer = torch.optim.Adam(params, lr)\n", + "\n", + "ers = []\n", + "for i in range(5000):\n", + " # Take 100 random samples from the data:\n", + " b = torch.randint(len(data)-ins, (100, ))\n", + " xs = torch.stack([data[i:i+ins] for i in b])\n", + " ys = torch.stack([data[i+ins:i+ins+1] for i in b])\n", + "\n", + " yh = model.forward(xs)\n", + "\n", + " # loss = F.mse_loss(yh, ys)\n", + " loss = F.cross_entropy(yh.view(-1, vocab_size), ys.long().view(-1))\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " e = loss.item()\n", + "\n", + " if i % 500 == 0:\n", + " print('loss:', e)\n", + "\n", + " ers.append(e)\n", + "\n", + "plt.figure(1)\n", + "plt.plot(ers)\n", + "\n", + "plt.figure(2)\n", + "plt.plot(ys)\n", + "yh = torch.argmax(yh, dim=-1)\n", + "plt.plot(yh.detach())\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "l\n", + "lapping milk, acting like a fool\n", + "mysterious, charming, full of grace\n", + "cats are simply ace\n", + "\n", + "cats, cats, with silky fur\n", + "making biscuits, they always purr\n", + "sitting high, looking down\n", + "claiming everything as their crown\n", + "\n", + "cats, cats, with eyes so bright\n", + "chasing shadows, day or night\n", + "curled up warm, on your lap\n", + "purring gently, taking a nap\n", + "\n", + "cats, cats, with playful paws\n", + "hiding, stalking, never pause\n", + "jumping, leaping, so agile\n", + "graceful creatures, never fragile\n", + "\n", + "cats, cats, our feline friends\n", + "bringing joy that never ends\n", + "loving us, without a doubt\n", + "cats are what life's all about\n", + "\n", + "cats, cats, everywhere i see\n", + "furry creatures, cute as can be\n", + "rubbing against our legs\n", + "asking for treats, without begs\n", + "\n", + "cats, cats, with their regal stance\n", + "graceful movements, they enhance\n", + "but we love them all the same\n", + "our little friends, never tame\n", + "\n", + "cats, cats, so full of love\n", + "watching over us from above\n", + "protecting us from any harm\n", + "always there, with their charm\n", + "\n", + "cats, cats, with their curious ways\n", + "exploring nooks, and hiding in bays\n", + "living life with style and grace\n", + "cats are always in first place\n", + "\n", + "cats, cats, so full of fun\n", + "chasing toys, never done\n", + "hiding in boxes, or paper bags\n", + "making us laugh, never drags\n", + "\n", + "cats, cats, with their own minds\n", + "sitting in the sun, never blinds\n", + "chasing strings, and balls of yarn\n", + "they never tire, oh what a charm\n", + "\n", + "cats, cats, with calming purrs\n", + "cuddling close, to be yours\n", + "giving love, without any fuss\n", + "their presence, a comfort to us\n", + "\n", + "cats, cats, always at ease\n", + "living life, as they please\n", + "bringing joy, to all they meet\n", + "cats, our furry friends, so sweet\n", + "\n", + "cats, cats, with eyes so bright\n", + "guiding us through the darkest night\n", + "purring softly, by our side\n", + "comforting us, as we hide\n", + "\n", + "cats, cats, with softest fur\n", + "nuzzling close, making a purr\n", + "in our lap, they take a rest\n", + "we're lucky to have, such a guest\n", + "\n", + "cats, cats, with their playful ways\n", + "entertaining us, on the laziest days\n", + "chasing shadows, or a feather\n", + "making us smile, always together\n", + "\n", + "cats, cats, with hearts so pure\n", + "bringing love, that will endure\n", + "their presence, a blessing indeed\n", + "cats, our friends, we shall never need\n", + "\n", + "cats, cats, with their little quirks\n", + "scratching posts, and tiny perks\n", + "licking paws, cleaning their face\n", + "chasing tails, all over the place\n", + "\n", + "cats, cats, with their playful hearts\n", + "chasing toys, and little carts\n", + "their antics, bringing us joy\n", + "cats, our little angels, oh so coy\n", + "\n", + "cats, cats, with their gentle souls\n", + "lifting spirits, making us whole\n", + "in their eyes, we see the light\n", + "bringing peace, that feels so right\n", + "\n", + "cats, cats, with their gentle purr\n", + "calming us, when we're feeling a stir\n", + "snuggling close, to keep us warm\n", + "cats, our little cuddle storm\n", + "\n", + "cats, cats, with their playful heart\n", + "jumping high, right from the start\n", + "bouncing around, like little springs\n", + "cats, our little entertainers, with wings\n", + "\n", + "cats, cats, with their loving grace\n", + "their soft purrs, caress our face\n", + "in their embrace, we feel at peace\n", + "cats, our little comfort, never to cease\n", + "\n", + "cats, cats, with their loving ways\n", + "cuddling close, on the d\n" + ] + } + ], + "source": [ + "\n", + "s = xs[0]\n", + "\n", + "gen_text = \"\"\n", + "for i in range(3000):\n", + " yh = model.forward(s)\n", + " prob = F.softmax(yh, dim=0)\n", + " # pred = torch.argmax(yh).item()\n", + " pred = torch.multinomial(prob, num_samples=1).item()\n", + "\n", + " s = torch.roll(s, -1)\n", + " s[-1] = pred\n", + " \n", + " gen_text += itos[pred]\n", + "\n", + "print(gen_text)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -940,7 +1421,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.6" } }, "nbformat": 4, From ec5107f1e3769320b818c8c4fb3cc0115091fc99 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 13 Mar 2025 16:22:29 -0700 Subject: [PATCH 142/163] experimenting --- W-Web_Scraping.ipynb | 389 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 387 insertions(+), 2 deletions(-) diff --git a/W-Web_Scraping.ipynb b/W-Web_Scraping.ipynb index 7b94c67..8ce8141 100644 --- a/W-Web_Scraping.ipynb +++ b/W-Web_Scraping.ipynb @@ -6,7 +6,378 @@ "source": [ "# Section G - Web Scraping\n", "\n", - "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA" + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "\n", + "Scraping modules\n", + "Javascript or no javascript\n", + "Navigating a page\n", + "Interaction - clicking elements or entering text data\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['ASCII_SPACES', 'DEFAULT_BUILDER_FEATURES', 'DEFAULT_INTERESTING_STRING_TYPES', 'EMPTY_ELEMENT_EVENT', 'END_ELEMENT_EVENT', 'NO_PARSER_SPECIFIED_WARNING', 'ROOT_TAG_NAME', 'START_ELEMENT_EVENT', 'STRING_ELEMENT_EVENT', '__bool__', '__call__', '__class__', '__contains__', '__copy__', '__deepcopy__', '__delattr__', '__delitem__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_all_strings', '_clone', '_decode_markup', '_event_stream', '_feed', '_find_all', '_find_one', '_format_tag', '_indent_string', '_is_xml', '_lastRecursiveChild', '_last_descendant', '_linkage_fixer', '_markup_is_url', '_markup_resembles_filename', '_most_recent_element', '_namespaces', '_popToTag', '_should_pretty_print', 'append', 'attrs', 'builder', 'can_be_empty_element', 'cdata_list_attributes', 'childGenerator', 'children', 'clear', 'contains_replacement_characters', 'contents', 'css', 'currentTag', 'current_data', 'declared_html_encoding', 'decode', 'decode_contents', 'decompose', 'decomposed', 'default', 'descendants', 'element_classes', 'encode', 'encode_contents', 'endData', 'extend', 'extract', 'fetchNextSiblings', 'fetchParents', 'fetchPrevious', 'fetchPreviousSiblings', 'find', 'findAll', 'findAllNext', 'findAllPrevious', 'findChild', 'findChildren', 'findNext', 'findNextSibling', 'findNextSiblings', 'findParent', 'findParents', 'findPrevious', 'findPreviousSibling', 'findPreviousSiblings', 'find_all', 'find_all_next', 'find_all_previous', 'find_next', 'find_next_sibling', 'find_next_siblings', 'find_parent', 'find_parents', 'find_previous', 'find_previous_sibling', 'find_previous_siblings', 'format_string', 'formatter_for_name', 'get', 'getText', 'get_attribute_list', 'get_text', 'handle_data', 'handle_endtag', 'handle_starttag', 'has_attr', 'has_key', 'hidden', 'index', 'insert', 'insert_after', 'insert_before', 'interesting_string_types', 'isSelfClosing', 'is_empty_element', 'is_xml', 'known_xml', 'markup', 'name', 'namespace', 'new_string', 'new_tag', 'next', 'nextGenerator', 'nextSibling', 'nextSiblingGenerator', 'next_element', 'next_elements', 'next_sibling', 'next_siblings', 'object_was_parsed', 'open_tag_counter', 'original_encoding', 'parent', 'parentGenerator', 'parents', 'parse_only', 'parserClass', 'parser_class', 'popTag', 'prefix', 'preserve_whitespace_tag_stack', 'preserve_whitespace_tags', 'prettify', 'previous', 'previousGenerator', 'previousSibling', 'previousSiblingGenerator', 'previous_element', 'previous_elements', 'previous_sibling', 'previous_siblings', 'pushTag', 'recursiveChildGenerator', 'renderContents', 'replaceWith', 'replaceWithChildren', 'replace_with', 'replace_with_children', 'reset', 'select', 'select_one', 'self_and_descendants', 'setup', 'smooth', 'string', 'string_container', 'string_container_stack', 'strings', 'stripped_strings', 'tagStack', 'text', 'unwrap', 'wrap']\n", + "Python (programming language) - Wikipedia\n" + ] + } + ], + "source": [ + "from bs4 import BeautifulSoup\n", + "from urllib.request import urlopen\n", + "\n", + "# url = \"http://wikipedia.org\"\n", + "url = \"https://en.wikipedia.org/wiki/Python_(programming_language)\"\n", + "page = urlopen(url)\n", + "html = page.read().decode('utf-8')\n", + "soup = BeautifulSoup(html, 'html.parser')\n", + "# print(soup.get_text())\n", + "print(dir(soup))\n", + "print(soup.title)\n", + "# print(soup.body.get_text())\n", + "# xpath = '//*[@id=\"mw-content-text\"]/div[1]/p[2]'\n", + "xpath = '/html/body/div[2]/div/div[3]/main/div[3]/div[3]/div[1]/p[2]'\n", + "# print(soup.select_one(xpath).get_text())" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# %pip install lxml\n", + "\n", + "try:\n", + " # Python 2\n", + " from urllib2 import urlopen\n", + "except ImportError:\n", + " from urllib.request import urlopen\n", + "from lxml import etree\n", + "\n", + "response = urlopen(url)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], + "source": [ + "htmlparser = etree.HTMLParser()\n", + "tree = etree.parse(response, htmlparser)\n", + "section = tree.xpath(xpath)\n", + "for item in section:\n", + " print(item.text)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "Following along with:\n", + "https://zperzan.github.io/projects/scrape-weather-underground/\n", + "Requires chromedriver from https://googlechromelabs.github.io/chrome-for-testing/\n", + "* set it in the chromedriver_path variable once installed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "\"\"\"Module to scrape 5-min personal weather station data from Weather Underground.\n", + "\n", + "Usage is:\n", + ">>> python scrape_wunderground.py STATION DATE\n", + "\n", + "where station is a personal weather station (e.g., KCAJAMES3) and date is in the \n", + "format YYYY-MM-DD. \n", + "\n", + "Alternatively, each function below can be imported and used in a separate python\n", + "script. Note that a working version of chromedriver must be installed and the absolute \n", + "path to executable has to be updated below (\"chromedriver_path\").\n", + "\n", + "Zach Perzan, 2021-07-28\"\"\"\n", + "\n", + "import time\n", + "import sys\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "from bs4 import BeautifulSoup as BS\n", + "from selenium import webdriver\n", + "\n", + "\n", + "# Set the absolute path to chromedriver\n", + "# chromedriver_path = '/home/_snap/bin/chromium.chromedriver'\n", + "# chromedriver_path = '/home/dan/opt/chrome-linux64'\n", + "chromedriver_path = '/home/dan/opt/geckodriver-v0.36.0-linux64/geckodriver'\n", + "\n", + "\n", + "def render_page(url):\n", + " \n", + " # driver = webdriver.Chrome(chromedriver_path)\n", + " driver = webdriver.Firefox(chromedriver_path)\n", + " driver.get(url)\n", + " time.sleep(3) # Could potentially decrease the sleep time\n", + " r = driver.page_source\n", + " driver.quit()\n", + "\n", + " return r\n", + "\n", + "\n", + "def scrape_wunderground(station, date):\n", + " \n", + " # Render the url and open the page source as BS object\n", + " # url = 'https://www.wunderground.com/dashboard/pws/%s/table/%s/%s/daily' % (station, date, date)\n", + " url = f'https://www.wunderground.com/history/weekly/us/ca/sacramento/KSMF/date/2025-3-1'\n", + " \n", + " print(\"Working on url:\", url)\n", + " r = render_page(url)\n", + " soup = BS(r, \"html.parser\",)\n", + "\n", + " # container = soup.find('lib-history-table')\n", + " container = soup.find('lib-city-history-observation')\n", + " \n", + " # Check that lib-history-table is found\n", + " if container is None:\n", + " print('error finding the container...')\n", + " raise ValueError(\"could not find lib-history-table in html source for %s\" % url)\n", + " \n", + " print(container.contents)\n", + " # Get the timestamps and data from two separate 'tbody' tags\n", + " all_checks = container.find_all('tbody')\n", + " time_check = all_checks[0]\n", + " data_check = all_checks[1]\n", + " print(time_check)\n", + " print(data_check)\n", + "\n", + " # Iterate through 'tr' tags and get the timestamps\n", + " hours = []\n", + " for i in time_check.find_all('tr'):\n", + " trial = i.get_text()\n", + " hours.append(trial)\n", + "\n", + " # For data, locate both value and no-value (\"--\") classes\n", + " # classes = ['wu-value wu-value-to', 'wu-unit-no-value ng-star-inserted']\n", + " classes = ['observation-table', 'ng-star-inserted']\n", + "\n", + " # Iterate through span tags and get data\n", + " data = []\n", + " for i in data_check.find_all('span', class_=classes):\n", + " trial = i.get_text()\n", + " data.append(trial)\n", + "\n", + " columns = ['Time', 'Temperature', 'Dew Point', 'Humidity', 'Wind Speed', \n", + " 'Wind Gust', 'Pressure', 'Precip.', 'Condition']\n", + "\n", + " # Convert NaN values (stings of '--') to np.nan\n", + " data_nan = [np.nan if x == '--' else x for x in data]\n", + "\n", + " # Convert list of data to an array\n", + " data_array = np.array(data_nan, dtype=float)\n", + " data_array = data_array.reshape(-1, len(columns))\n", + "\n", + " # Prepend date to HH:MM strings\n", + " timestamps = ['%s %s' % (date, t) for t in hours]\n", + "\n", + " # Convert to dataframe\n", + " df = pd.DataFrame(index=timestamps, data=data_array, columns=columns)\n", + " df.index = pd.to_datetime(df.index)\n", + " \n", + " return df\n", + "\n", + "\n", + "def scrape_multiattempt(station, date, attempts=4, wait_time=5.0):\n", + " \"\"\"Try to scrape data from Weather Underground. If there is an error on the \n", + " first attempt, try again.\n", + " \n", + " Parameters\n", + " ----------\n", + " station : str\n", + " The personal weather station ID\n", + " date : str\n", + " The date for which to acquire data, formatted as 'YYYY-MM-DD'\n", + " attempts : int, default 4\n", + " Maximum number of times to try accessing before failuer\n", + " wait_time : float, default 5.0\n", + " Amount of time to wait in between attempts\n", + " \n", + " Returns\n", + " -------\n", + " df : dataframe or None\n", + " A dataframe of weather observations, with index as pd.DateTimeIndex \n", + " and columns as the observed data\n", + " \"\"\"\n", + " \n", + " # Try to download data limited number of attempts\n", + " for n in range(attempts):\n", + " try:\n", + " df = scrape_wunderground(station, date)\n", + " print('success')\n", + " except:\n", + " print('exception')\n", + " # if unsuccessful, pause and retry\n", + " if attempts > 1:\n", + " time.sleep(wait_time)\n", + " else: \n", + " # if successful, then break\n", + " break\n", + " # If all attempts failed, return empty df\n", + " else:\n", + " df = pd.DataFrame()\n", + " \n", + " return df" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Working on url: https://www.wunderground.com/history/weekly/us/ca/sacramento/KSMF/date/2025-3-1\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'str' object has no attribute 'capabilities'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[59], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# data = scrape_multiattempt('KSMF', '2025-03-01', 1)\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m# data = scrape_multiattempt('KCAJAMES3', '2025-03-01')\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mscrape_wunderground\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mKSMF\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m2025-03-01\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[58], line 77\u001b[0m, in \u001b[0;36mscrape_wunderground\u001b[0;34m(station, date)\u001b[0m\n\u001b[1;32m 74\u001b[0m url \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhttps://www.wunderground.com/history/weekly/us/ca/sacramento/KSMF/date/2025-3-1\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWorking on url:\u001b[39m\u001b[38;5;124m\"\u001b[39m, url)\n\u001b[0;32m---> 77\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[43mrender_page\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 78\u001b[0m soup \u001b[38;5;241m=\u001b[39m BS(r, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhtml.parser\u001b[39m\u001b[38;5;124m\"\u001b[39m,)\n\u001b[1;32m 80\u001b[0m \u001b[38;5;66;03m# container = soup.find('lib-history-table')\u001b[39;00m\n", + "Cell \u001b[0;32mIn[58], line 45\u001b[0m, in \u001b[0;36mrender_page\u001b[0;34m(url)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Given a url, render it with chromedriver and return the html source\u001b[39;00m\n\u001b[1;32m 32\u001b[0m \u001b[38;5;124;03m\u001b[39;00m\n\u001b[1;32m 33\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;124;03m rendered page source\u001b[39;00m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;66;03m# driver = webdriver.Chrome(chromedriver_path)\u001b[39;00m\n\u001b[0;32m---> 45\u001b[0m driver \u001b[38;5;241m=\u001b[39m \u001b[43mwebdriver\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mFirefox\u001b[49m\u001b[43m(\u001b[49m\u001b[43mchromedriver_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 46\u001b[0m driver\u001b[38;5;241m.\u001b[39mget(url)\n\u001b[1;32m 47\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(\u001b[38;5;241m3\u001b[39m) \u001b[38;5;66;03m# Could potentially decrease the sleep time\u001b[39;00m\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/selenium/webdriver/firefox/webdriver.py:57\u001b[0m, in \u001b[0;36mWebDriver.__init__\u001b[0;34m(self, options, service, keep_alive)\u001b[0m\n\u001b[1;32m 54\u001b[0m options \u001b[38;5;241m=\u001b[39m options \u001b[38;5;28;01mif\u001b[39;00m options \u001b[38;5;28;01melse\u001b[39;00m Options()\n\u001b[1;32m 56\u001b[0m finder \u001b[38;5;241m=\u001b[39m DriverFinder(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mservice, options)\n\u001b[0;32m---> 57\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mfinder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_browser_path\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 58\u001b[0m options\u001b[38;5;241m.\u001b[39mbinary_location \u001b[38;5;241m=\u001b[39m finder\u001b[38;5;241m.\u001b[39mget_browser_path()\n\u001b[1;32m 59\u001b[0m options\u001b[38;5;241m.\u001b[39mbrowser_version \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py:47\u001b[0m, in \u001b[0;36mDriverFinder.get_browser_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_browser_path\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[0;32m---> 47\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_binary_paths\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbrowser_path\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n", + "File \u001b[0;32m~/venv/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py:56\u001b[0m, in \u001b[0;36mDriverFinder._binary_paths\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_paths[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdriver_path\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_paths\n\u001b[0;32m---> 56\u001b[0m browser \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_options\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcapabilities\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbrowserName\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 58\u001b[0m path \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_service\u001b[38;5;241m.\u001b[39mpath\n", + "\u001b[0;31mAttributeError\u001b[0m: 'str' object has no attribute 'capabilities'" + ] + } + ], + "source": [ + "# data = scrape_multiattempt('KSMF', '2025-03-01', 1)\n", + "# data = scrape_multiattempt('KCAJAMES3', '2025-03-01')\n", + "data = scrape_wunderground('KSMF', '2025-03-01')" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Empty DataFrame\n", + "Columns: []\n", + "Index: []\n" + ] + } + ], + "source": [ + "print(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import sys\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "from bs4 import BeautifulSoup as BS\n", + "from selenium import webdriver\n", + "from selenium.webdriver.chrome.service import Service\n", + "\n", + "\n", + "# Set the absolute path to chromedriver\n", + "# chromedriver_path = '/home/_snap/bin/chromium.chromedriver'\n", + "# chromedriver_path = '/home/dan/opt/chrome-linux64/chrome'\n", + "chromedriver_path = '/home/dan/opt/chromedriver-linux64/chromedriver'\n", + "# chromedriver_path = '/home/dan/opt/geckodriver-v0.36.0-linux64/geckodriver'\n", + "\n", + "url = f'https://www.wunderground.com/history/weekly/us/ca/sacramento/KSMF/date/2025-3-1'\n", + "\n", + "# driver = webdriver.Chrome(chromedriver_path)\n", + "# driver = webdriver.Firefox(chromedriver_path)\n", + "service = Service(chromedriver_path)\n", + "driver = webdriver.Chrome(service=service)\n", + "\n", + "driver.get(url)\n", + "time.sleep(3) # Could potentially decrease the sleep time\n", + "r = driver.page_source\n", + "driver.quit()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[
Daily Observations
TimeTemperature (°F)Dew Point (°F)Humidity (%)Wind Speed (mph)Pressure (in)Precipitation (in)
Feb
23
24
25
26
27
28
1
Max Avg Min
68 59.9 54
67 56.2 49
67 52.9 41
71 54.2 40
73 57.5 44
71 58.5 46
71 56.0 43
Max Avg Min
52 47.5 43
54 50.7 46
51 43.8 38
46 41.5 36
53 46.5 41
49 45.7 41
52 46.8 40
Max Avg Min
81 64.6 47
93 83.2 59
100 74.4 37
86 65.3 32
89 69.5 35
83 64.6 41
89 72.0 49
Max Avg Min
14 7.6 3
14 8.0 0
15 7.1 0
8 2.8 0
9 4.8 0
8 4.0 0
20 9.4 0
Max Avg Min
30.3 30.2 30.1
30.2 30.1 30.1
30.2 30.1 30.0
30.1 30.0 30.0
30.1 30.0 29.9
29.9 29.9 29.8
29.9 29.9 29.8
Total
0.00
0.00
0.00
0.00
0.00
0.00
0.00
]\n", + "TimeTemperature (°F)Dew Point (°F)Humidity (%)Wind Speed (mph)Pressure (in)Precipitation (in)\n" + ] + } + ], + "source": [ + "soup = BS(r, \"html.parser\",)\n", + "\n", + "# container = soup.find('lib-history-table')\n", + "container = soup.find('lib-city-history-observation')\n", + "print(container.contents)\n", + "\n", + "# column names are in thead\n", + "columns = ['Time', 'Temperature', 'Dew Point', 'Humidity', 'Wind Speed', \n", + " 'Wind Gust', 'Pressure', 'Precip.', 'Condition']\n", + "# confirm that our columns are correct:\n", + "column_headers = container.find_all('thead')\n", + "# break it up by column:\n", + "for header in column_headers:\n", + " for item in header:\n", + " print(item.get_text())\n", + "\n", + "# data rows are in tbody\n" ] }, { @@ -18,8 +389,22 @@ } ], "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" } }, "nbformat": 4, From 8094f111eceac5fab3f977cf5a69c142b82f6a2e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 13 Mar 2025 16:22:51 -0700 Subject: [PATCH 143/163] small change --- C1-Classes.ipynb | 61 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/C1-Classes.ipynb b/C1-Classes.ipynb index 9c3c5a3..9919278 100644 --- a/C1-Classes.ipynb +++ b/C1-Classes.ipynb @@ -44,13 +44,14 @@ "metadata": {}, "outputs": [], "source": [ - "class Student(Person):\n", - " def __init__(self, name, age, grade):\n", + "class Student(Personef __init__(self, name, age, grade):\n", " super().__init__(name, age) # Call the parent constructor\n", " self.grade = grade\n", "\n", " def introduce(self):\n", - " return f\"Hi, I'm {self.name}, a student in grade {self.grade}.\"" + " \n", + " return f\"Hi, I'm {self.name}, a student in grade {self.grade}.\"):\n", + " d" ] }, { @@ -104,6 +105,52 @@ "\n", "**Exercise** " ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "v1 line one\n", + "v1 line two\n", + "v1 line three\n", + "line one\n", + "line two\n", + "line three\n", + "v2 line one\n", + "v2 line two\n", + "v2 line three\n", + "line one\n", + "line two\n", + "line three\n" + ] + } + ], + "source": [ + "import time\n", + "chorus = ['line one', 'line two', 'line three']\n", + "verses = {\n", + " 'verse1': [ 'v1 line one', 'v1 line two', 'v1 line three'],\n", + " 'verse2': [ 'v2 line one', 'v2 line two', 'v2 line three'] \n", + "}\n", + "\n", + "for verse, vlines in verses.items():\n", + " for line in vlines:\n", + " print(line)\n", + " time.sleep(1)\n", + " for line in chorus:\n", + " print(line)\n", + " time.sleep(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { @@ -113,7 +160,15 @@ "name": "python3" }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", "version": "3.11.6" } }, From 3351fffb1e8c239fa1643415e43795ef8e58a653 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 27 Mar 2025 16:08:31 -0700 Subject: [PATCH 144/163] Initial draft --- F-Flask_Web_Server.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 F-Flask_Web_Server.ipynb diff --git a/F-Flask_Web_Server.ipynb b/F-Flask_Web_Server.ipynb new file mode 100644 index 0000000..e69de29 From f87c3b13af2155520a271f4455b32084f5408c02 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 27 Mar 2025 17:07:40 -0700 Subject: [PATCH 145/163] fix json? --- W-Web_Scraping.ipynb | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/W-Web_Scraping.ipynb b/W-Web_Scraping.ipynb index 8ce8141..aec77f2 100644 --- a/W-Web_Scraping.ipynb +++ b/W-Web_Scraping.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -43,7 +43,7 @@ "print(soup.title)\n", "# print(soup.body.get_text())\n", "# xpath = '//*[@id=\"mw-content-text\"]/div[1]/p[2]'\n", - "xpath = '/html/body/div[2]/div/div[3]/main/div[3]/div[3]/div[1]/p[2]'\n", + "# xpath = '/html/body/div[2]/div/div[3]/main/div[3]/div[3]/div[1]/p[2]'\n", "# print(soup.select_one(xpath).get_text())" ] }, @@ -312,7 +312,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -327,15 +327,10 @@ "\n", "\n", "# Set the absolute path to chromedriver\n", - "# chromedriver_path = '/home/_snap/bin/chromium.chromedriver'\n", - "# chromedriver_path = '/home/dan/opt/chrome-linux64/chrome'\n", "chromedriver_path = '/home/dan/opt/chromedriver-linux64/chromedriver'\n", - "# chromedriver_path = '/home/dan/opt/geckodriver-v0.36.0-linux64/geckodriver'\n", "\n", "url = f'https://www.wunderground.com/history/weekly/us/ca/sacramento/KSMF/date/2025-3-1'\n", "\n", - "# driver = webdriver.Chrome(chromedriver_path)\n", - "# driver = webdriver.Firefox(chromedriver_path)\n", "service = Service(chromedriver_path)\n", "driver = webdriver.Chrome(service=service)\n", "\n", @@ -348,15 +343,15 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[
Daily Observations
TimeTemperature (°F)Dew Point (°F)Humidity (%)Wind Speed (mph)Pressure (in)Precipitation (in)
Feb
23
24
25
26
27
28
1
Max Avg Min
68 59.9 54
67 56.2 49
67 52.9 41
71 54.2 40
73 57.5 44
71 58.5 46
71 56.0 43
Max Avg Min
52 47.5 43
54 50.7 46
51 43.8 38
46 41.5 36
53 46.5 41
49 45.7 41
52 46.8 40
Max Avg Min
81 64.6 47
93 83.2 59
100 74.4 37
86 65.3 32
89 69.5 35
83 64.6 41
89 72.0 49
Max Avg Min
14 7.6 3
14 8.0 0
15 7.1 0
8 2.8 0
9 4.8 0
8 4.0 0
20 9.4 0
Max Avg Min
30.3 30.2 30.1
30.2 30.1 30.1
30.2 30.1 30.0
30.1 30.0 30.0
30.1 30.0 29.9
29.9 29.9 29.8
29.9 29.9 29.8
Total
0.00
0.00
0.00
0.00
0.00
0.00
0.00
]\n", - "TimeTemperature (°F)Dew Point (°F)Humidity (%)Wind Speed (mph)Pressure (in)Precipitation (in)\n" + "[
Daily Observations
TimeTemperature (°F)Dew Point (°F)Humidity (%)Wind Speed (mph)Pressure (in)Precipitation (in)
Feb
23
24
25
26
27
28
1
Max Avg Min
68 59.9 54
67 56.2 49
67 52.9 41
71 54.2 40
73 57.5 44
71 58.5 46
71 56.0 43
Max Avg Min
52 47.5 43
54 50.7 46
51 43.8 38
46 41.5 36
53 46.5 41
49 45.7 41
52 46.8 40
Max Avg Min
81 64.6 47
93 83.2 59
100 74.4 37
86 65.3 32
89 69.5 35
83 64.6 41
89 72.0 49
Max Avg Min
14 7.6 3
14 8.0 0
15 7.1 0
8 2.8 0
9 4.8 0
8 4.0 0
20 9.4 0
Max Avg Min
30.3 30.2 30.1
30.2 30.1 30.1
30.2 30.1 30.0
30.1 30.0 30.0
30.1 30.0 29.9
29.9 29.9 29.8
29.9 29.9 29.8
Total
0.00
0.00
0.00
0.00
0.00
0.00
0.00
]\n", + " Feb 23 24 25 26 27 28 1 Max Avg Min 68 59.9 54 67 56.2 49 67 52.9 41 71 54.2 40 73 57.5 44 71 58.5 46 71 56.0 43 Max Avg Min 52 47.5 43 54 50.7 46 51 43.8 38 46 41.5 36 53 46.5 41 49 45.7 41 52 46.8 40 Max Avg Min 81 64.6 47 93 83.2 59 100 74.4 37 86 65.3 32 89 69.5 35 83 64.6 41 89 72.0 49 Max Avg Min 14 7.6 3 14 8.0 0 15 7.1 0 8 2.8 0 9 4.8 0 8 4.0 0 20 9.4 0 Max Avg Min 30.3 30.2 30.1 30.2 30.1 30.1 30.2 30.1 30.0 30.1 30.0 30.0 30.1 30.0 29.9 29.9 29.9 29.8 29.9 29.9 29.8 Total 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n" ] } ], @@ -371,11 +366,10 @@ "columns = ['Time', 'Temperature', 'Dew Point', 'Humidity', 'Wind Speed', \n", " 'Wind Gust', 'Pressure', 'Precip.', 'Condition']\n", "# confirm that our columns are correct:\n", - "column_headers = container.find_all('thead')\n", + "tbody = container.find_all('tbody')\n", "# break it up by column:\n", - "for header in column_headers:\n", - " for item in header:\n", - " print(item.get_text())\n", + "for foo in tbody:\n", + " print(foo.get_text())\n", "\n", "# data rows are in tbody\n" ] @@ -404,7 +398,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, From 180885352dd9dd09ebd2548e3e14d0e19fe8fee8 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 3 Apr 2025 09:30:57 -0700 Subject: [PATCH 146/163] Update README.md --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0fb43d7..8fcb217 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,18 @@ See the Notebooks list below for a more detailed list. ## Current Schedule: We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. -* Thursday Dec 12 - 4:30PM to 5:30PM -* Thursday Dec 19 - NO MEETING Library Winter Wonderland Event -* Thursday Dec 26 - 4:30PM to 5:30PM -* Thursday Jan 02 - NO MEETING Vacation -* Thursday Jan 09 - 4:30PM to 5:30PM -* Thursdays ongoing. +* Thursday Apr 03 - 4:30PM +* Thursday Apr 10 - 4:30PM +* Thursday Apr 17 - 4:30PM +* Thursday APr 24 - NO MEETING +* Thursday May 01 - 5:30PM New Time! +* Thursday May 08 - 5:30PM +* Thursday May 15 - NO MEETING (writers group) +* Thursday May 22 - 5:30PM +* Thursday May 29 - NO MEETING (special event) +* Thursday Jun 05 - 5:30PM +* Thursday Jun 12 - 5:30PM +* Thursdays ongoing at 5:30PM except third thursday of each month and special events. Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library". From 531b57e1d639a54ca1ae40bdc66ebd8946265c2a Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 17 Apr 2025 16:58:51 -0700 Subject: [PATCH 147/163] new --- G-Databases_Working_With.ipynb | 173 +++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 G-Databases_Working_With.ipynb diff --git a/G-Databases_Working_With.ipynb b/G-Databases_Working_With.ipynb new file mode 100644 index 0000000..64bc695 --- /dev/null +++ b/G-Databases_Working_With.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2685a53c", + "metadata": {}, + "source": [ + "# Section G - Working with Databasese\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "**Topics**:\n", + "* Sqlite\n", + " * Pandas DB Functions\n", + "* Create Table\n", + "* Drop Table\n", + "* Update Rows\n", + "\n", + "There are\n", + "\n", + "## Mathematical Operations\n", + "These are the basic mathematical functoins that are included in python without importing any libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3afc46da", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " sepal_length sepal_width petal_length petal_width species\n", + "0 5.1 3.5 1.4 0.2 setosa\n", + "1 4.9 3.0 1.4 0.2 setosa\n", + "2 4.7 3.2 1.3 0.2 setosa\n", + "3 4.6 3.1 1.5 0.2 setosa\n", + "4 5.0 3.6 1.4 0.2 setosa\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import sqlite3\n", + "iris_web = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')\n", + "\n", + "print(iris_web.head())\n", + "\n", + "# Save the DataFrame to a SQLite database\n", + "with sqlite3.connect('iris_web.db') as conn:\n", + " iris_web.to_sql('iris', conn, if_exists='replace', index=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "715d6f0d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " sepal_length sepal_width petal_length petal_width species\n", + "0 5.1 3.5 1.4 0.2 setosa\n", + "1 4.9 3.0 1.4 0.2 setosa\n", + "2 4.7 3.2 1.3 0.2 setosa\n", + "3 4.6 3.1 1.5 0.2 setosa\n", + "4 5.0 3.6 1.4 0.2 setosa\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "with sqlite3.connect('iris_web.db') as conn:\n", + " query = \"SELECT * FROM iris\"\n", + " df = pd.read_sql_query(query, conn)\n", + "\n", + "print(df.head())\n", + "\n", + "# Without the \"with\" statemen:\n", + "# conn = sqlite3.connect('your_database.db')\n", + "# query = \"SELECT * FROM your_table\"\n", + "# df = pd.read_sql_query(query, conn)\n", + "# conn.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d5b02b1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(5.1, 3.5, 1.4, 0.2, 'setosa')\n", + "(4.9, 3.0, 1.4, 0.2, 'setosa')\n", + "(4.7, 3.2, 1.3, 0.2, 'setosa')\n", + "(4.6, 3.1, 1.5, 0.2, 'setosa')\n", + "(5.0, 3.6, 1.4, 0.2, 'setosa')\n", + "(5.4, 3.9, 1.7, 0.4, 'setosa')\n", + "(4.6, 3.4, 1.4, 0.3, 'setosa')\n", + "(5.0, 3.4, 1.5, 0.2, 'setosa')\n", + "(4.4, 2.9, 1.4, 0.2, 'setosa')\n", + "(4.9, 3.1, 1.5, 0.1, 'setosa')\n" + ] + } + ], + "source": [ + "# Without pandas, query the database directly\n", + "with sqlite3.connect('iris_web.db') as conn:\n", + " cursor = conn.cursor()\n", + " cursor.execute(\"SELECT * FROM iris\")\n", + " rows = cursor.fetchall()\n", + "for row in rows[:10]:\n", + " print(row)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "fa0e5146", + "metadata": {}, + "outputs": [], + "source": [ + "# Update 2nd row in the df and update it in the database\n", + "df.loc[1, 'sepal_length'] = 99999\n", + "df.head()\n", + "\n", + "with sqlite3.connect('iris_web.db') as conn:\n", + " df.to_sql('iris', conn, if_exists='replace', index=False)\n", + "# Verify the update\n", + "with sqlite3.connect('iris_web.db') as conn:\n", + " query = \"SELECT * FROM iris\"\n", + " updated_df = pd.read_sql_query(query, conn)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9412e892", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From bcab708818d39991ff976aceae424e28b03c4ee3 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 1 May 2025 17:15:48 -0700 Subject: [PATCH 148/163] Update README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 8fcb217..4d80280 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,6 @@ See the Notebooks list below for a more detailed list. ## Current Schedule: We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. -* Thursday Apr 03 - 4:30PM -* Thursday Apr 10 - 4:30PM -* Thursday Apr 17 - 4:30PM -* Thursday APr 24 - NO MEETING * Thursday May 01 - 5:30PM New Time! * Thursday May 08 - 5:30PM * Thursday May 15 - NO MEETING (writers group) From 49fb3dd1fba618d522faeeca307bbb7451de4643 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 8 May 2025 17:22:47 -0700 Subject: [PATCH 149/163] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 4d80280..15a85e7 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ We were meeting on wednesdays during October, but due to a scheduling conflict, * Thursday May 29 - NO MEETING (special event) * Thursday Jun 05 - 5:30PM * Thursday Jun 12 - 5:30PM +* Thursday Jun 19 - NO MEETING (writers group) +* Thursday Jun 26 - NO MEETING (schedule conflict) +* Thursday Jul 03 - 5:30PM +* Thursday Jul 10 - 5:30PM * Thursdays ongoing at 5:30PM except third thursday of each month and special events. Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** @@ -80,6 +84,9 @@ We have a series of python notebooks ready to work through to learn from. They **Online Programming Tools** * https://replit.com/ +**Online Classes, videos, etc*** +There are sooo many good resources online. This course is assembled by a great instructor at GATech and is recommended pre-cursor to their online Masters in Comp Sci program: https://www.edx.org/certificates/professional-certificate/the-georgia-institute-of-technology-introduction-to-python-programming + ### Notes on AI like ChatGPT These tools are **very** helpful for learning. For this course, use them to explain how things work, but don't ask them to write code for you. If you don't experiment and learn for yourself, you won't retain as much. Keep all of your code and use your past code as the start for each more complicated problem. You'll build a toolkit of libraries and code bits that you understand and make all kinds of things from. From 79c95fa2950ed107395b7f2f46a455211b0eef21 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 22 May 2025 18:00:12 -0700 Subject: [PATCH 150/163] Add files via upload --- SAMPLE_DATA/y77d-th95.json | 1000 ++++++++++++++++++++++++++++++++++++ 1 file changed, 1000 insertions(+) create mode 100644 SAMPLE_DATA/y77d-th95.json diff --git a/SAMPLE_DATA/y77d-th95.json b/SAMPLE_DATA/y77d-th95.json new file mode 100644 index 0000000..1638f49 --- /dev/null +++ b/SAMPLE_DATA/y77d-th95.json @@ -0,0 +1,1000 @@ +[{"name":"Aachen","id":"1","nametype":"Valid","recclass":"L5","mass":"21","fall":"Fell","year":"1880-01-01T00:00:00.000","reclat":"50.775000","reclong":"6.083330","geolocation":{"type":"Point","coordinates":[6.08333,50.775]}} +,{"name":"Aarhus","id":"2","nametype":"Valid","recclass":"H6","mass":"720","fall":"Fell","year":"1951-01-01T00:00:00.000","reclat":"56.183330","reclong":"10.233330","geolocation":{"type":"Point","coordinates":[10.23333,56.18333]}} +,{"name":"Abee","id":"6","nametype":"Valid","recclass":"EH4","mass":"107000","fall":"Fell","year":"1952-01-01T00:00:00.000","reclat":"54.216670","reclong":"-113.000000","geolocation":{"type":"Point","coordinates":[-113,54.21667]}} +,{"name":"Acapulco","id":"10","nametype":"Valid","recclass":"Acapulcoite","mass":"1914","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"16.883330","reclong":"-99.900000","geolocation":{"type":"Point","coordinates":[-99.9,16.88333]}} +,{"name":"Achiras","id":"370","nametype":"Valid","recclass":"L6","mass":"780","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"-33.166670","reclong":"-64.950000","geolocation":{"type":"Point","coordinates":[-64.95,-33.16667]}} +,{"name":"Adhi Kot","id":"379","nametype":"Valid","recclass":"EH4","mass":"4239","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"32.100000","reclong":"71.800000","geolocation":{"type":"Point","coordinates":[71.8,32.1]}} +,{"name":"Adzhi-Bogdo (stone)","id":"390","nametype":"Valid","recclass":"LL3-6","mass":"910","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"44.833330","reclong":"95.166670","geolocation":{"type":"Point","coordinates":[95.16667,44.83333]}} +,{"name":"Agen","id":"392","nametype":"Valid","recclass":"H5","mass":"30000","fall":"Fell","year":"1814-01-01T00:00:00.000","reclat":"44.216670","reclong":"0.616670","geolocation":{"type":"Point","coordinates":[0.61667,44.21667]}} +,{"name":"Aguada","id":"398","nametype":"Valid","recclass":"L6","mass":"1620","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"-31.600000","reclong":"-65.233330","geolocation":{"type":"Point","coordinates":[-65.23333,-31.6]}} +,{"name":"Aguila Blanca","id":"417","nametype":"Valid","recclass":"L","mass":"1440","fall":"Fell","year":"1920-01-01T00:00:00.000","reclat":"-30.866670","reclong":"-64.550000","geolocation":{"type":"Point","coordinates":[-64.55,-30.86667]}} +,{"name":"Aioun el Atrouss","id":"423","nametype":"Valid","recclass":"Diogenite-pm","mass":"1000","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"16.398060","reclong":"-9.570280","geolocation":{"type":"Point","coordinates":[-9.57028,16.39806]}} +,{"name":"Aïr","id":"424","nametype":"Valid","recclass":"L6","mass":"24000","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"19.083330","reclong":"8.383330","geolocation":{"type":"Point","coordinates":[8.38333,19.08333]}} +,{"name":"Aire-sur-la-Lys","id":"425","nametype":"Valid","recclass":"Unknown","fall":"Fell","year":"1769-01-01T00:00:00.000","reclat":"50.666670","reclong":"2.333330","geolocation":{"type":"Point","coordinates":[2.33333,50.66667]}} +,{"name":"Akaba","id":"426","nametype":"Valid","recclass":"L6","mass":"779","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"29.516670","reclong":"35.050000","geolocation":{"type":"Point","coordinates":[35.05,29.51667]}} +,{"name":"Akbarpur","id":"427","nametype":"Valid","recclass":"H4","mass":"1800","fall":"Fell","year":"1838-01-01T00:00:00.000","reclat":"29.716670","reclong":"77.950000","geolocation":{"type":"Point","coordinates":[77.95,29.71667]}} +,{"name":"Akwanga","id":"432","nametype":"Valid","recclass":"H","mass":"3000","fall":"Fell","year":"1959-01-01T00:00:00.000","reclat":"8.916670","reclong":"8.433330","geolocation":{"type":"Point","coordinates":[8.43333,8.91667]}} +,{"name":"Akyumak","id":"433","nametype":"Valid","recclass":"Iron, IVA","mass":"50000","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"39.916670","reclong":"42.816670","geolocation":{"type":"Point","coordinates":[42.81667,39.91667]}} +,{"name":"Al Rais","id":"446","nametype":"Valid","recclass":"CR2-an","mass":"160","fall":"Fell","year":"1957-01-01T00:00:00.000","reclat":"24.416670","reclong":"39.516670","geolocation":{"type":"Point","coordinates":[39.51667,24.41667]}} +,{"name":"Al Zarnkh","id":"447","nametype":"Valid","recclass":"LL5","mass":"700","fall":"Fell","year":"2001-01-01T00:00:00.000","reclat":"13.660330","reclong":"28.960000","geolocation":{"type":"Point","coordinates":[28.96,13.66033]}} +,{"name":"Alais","id":"448","nametype":"Valid","recclass":"CI1","mass":"6000","fall":"Fell","year":"1806-01-01T00:00:00.000","reclat":"44.116670","reclong":"4.083330","geolocation":{"type":"Point","coordinates":[4.08333,44.11667]}} +,{"name":"Albareto","id":"453","nametype":"Valid","recclass":"L/LL4","mass":"2000","fall":"Fell","year":"1766-01-01T00:00:00.000","reclat":"44.650000","reclong":"11.016670","geolocation":{"type":"Point","coordinates":[11.01667,44.65]}} +,{"name":"Alberta","id":"454","nametype":"Valid","recclass":"L","mass":"625","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"2.000000","reclong":"22.666670","geolocation":{"type":"Point","coordinates":[22.66667,2]}} +,{"name":"Alby sur Chéran","id":"458","nametype":"Valid","recclass":"Eucrite-mmict","mass":"252","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"45.821330","reclong":"6.015330","geolocation":{"type":"Point","coordinates":[6.01533,45.82133]}} +,{"name":"Aldsworth","id":"461","nametype":"Valid","recclass":"LL5","mass":"700","fall":"Fell","year":"1835-01-01T00:00:00.000","reclat":"51.783330","reclong":"-1.783330","geolocation":{"type":"Point","coordinates":[-1.78333,51.78333]}} +,{"name":"Aleppo","id":"462","nametype":"Valid","recclass":"L6","mass":"3200","fall":"Fell","year":"1873-01-01T00:00:00.000","reclat":"36.233330","reclong":"37.133330","geolocation":{"type":"Point","coordinates":[37.13333,36.23333]}} +,{"name":"Alessandria","id":"463","nametype":"Valid","recclass":"H5","mass":"908","fall":"Fell","year":"1860-01-01T00:00:00.000","reclat":"44.883330","reclong":"8.750000","geolocation":{"type":"Point","coordinates":[8.75,44.88333]}} +,{"name":"Alexandrovsky","id":"465","nametype":"Valid","recclass":"H4","mass":"9251","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"50.950000","reclong":"31.816670","geolocation":{"type":"Point","coordinates":[31.81667,50.95]}} +,{"name":"Alfianello","id":"466","nametype":"Valid","recclass":"L6","mass":"228000","fall":"Fell","year":"1883-01-01T00:00:00.000","reclat":"45.266670","reclong":"10.150000","geolocation":{"type":"Point","coordinates":[10.15,45.26667]}} +,{"name":"Allegan","id":"2276","nametype":"Valid","recclass":"H5","mass":"32000","fall":"Fell","year":"1899-01-01T00:00:00.000","reclat":"42.533330","reclong":"-85.883330","geolocation":{"type":"Point","coordinates":[-85.88333,42.53333]},":@computed_region_cbhk_fwbd":"50",":@computed_region_nnqa_25f4":"429"} +,{"name":"Allende","id":"2278","nametype":"Valid","recclass":"CV3","mass":"2000000","fall":"Fell","year":"1969-01-01T00:00:00.000","reclat":"26.966670","reclong":"-105.316670","geolocation":{"type":"Point","coordinates":[-105.31667,26.96667]}} +,{"name":"Almahata Sitta","id":"48915","nametype":"Valid","recclass":"Ureilite-an","mass":"3950","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"20.745750","reclong":"32.412750","geolocation":{"type":"Point","coordinates":[32.41275,20.74575]}} +,{"name":"Alta'ameem","id":"2284","nametype":"Valid","recclass":"LL5","mass":"6000","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"35.273330","reclong":"44.215560","geolocation":{"type":"Point","coordinates":[44.21556,35.27333]}} +,{"name":"Ambapur Nagla","id":"2290","nametype":"Valid","recclass":"H5","mass":"6400","fall":"Fell","year":"1895-01-01T00:00:00.000","reclat":"27.666670","reclong":"78.250000","geolocation":{"type":"Point","coordinates":[78.25,27.66667]}} +,{"name":"Andhara","id":"2294","nametype":"Valid","recclass":"Stone-uncl","mass":"2700","fall":"Fell","year":"1880-01-01T00:00:00.000","reclat":"26.583330","reclong":"85.566670","geolocation":{"type":"Point","coordinates":[85.56667,26.58333]}} +,{"name":"Andover","id":"2295","nametype":"Valid","recclass":"L6","mass":"3200","fall":"Fell","year":"1898-01-01T00:00:00.000","reclat":"44.616670","reclong":"-70.750000","geolocation":{"type":"Point","coordinates":[-70.75,44.61667]},":@computed_region_cbhk_fwbd":"49",":@computed_region_nnqa_25f4":"1723"} +,{"name":"Andreevka","id":"2296","nametype":"Valid","recclass":"L3","mass":"600","fall":"Fell","year":"1969-01-01T00:00:00.000","reclat":"48.700000","reclong":"37.500000","geolocation":{"type":"Point","coordinates":[37.5,48.7]}} +,{"name":"Andura","id":"2298","nametype":"Valid","recclass":"H6","mass":"17900","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"20.883330","reclong":"76.866670","geolocation":{"type":"Point","coordinates":[76.86667,20.88333]}} +,{"name":"Northwest Africa 5815","id":"50693","nametype":"Valid","recclass":"L5","mass":"256.8","fall":"Found","reclat":"0.000000","reclong":"0.000000","geolocation":{"type":"Point","coordinates":[0,0]}} +,{"name":"Angers","id":"2301","nametype":"Valid","recclass":"L6","fall":"Fell","year":"1822-01-01T00:00:00.000","reclat":"47.466670","reclong":"-0.550000","geolocation":{"type":"Point","coordinates":[-0.55,47.46667]}} +,{"name":"Angra dos Reis (stone)","id":"2302","nametype":"Valid","recclass":"Angrite","mass":"1500","fall":"Fell","year":"1869-01-01T00:00:00.000","reclat":"-22.966670","reclong":"-44.316670","geolocation":{"type":"Point","coordinates":[-44.31667,-22.96667]}} +,{"name":"Ankober","id":"2304","nametype":"Valid","recclass":"H4","mass":"6500","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"9.533330","reclong":"39.716670","geolocation":{"type":"Point","coordinates":[39.71667,9.53333]}} +,{"name":"Anlong","id":"2305","nametype":"Valid","recclass":"H5","mass":"2500","fall":"Fell","year":"1971-01-01T00:00:00.000","reclat":"25.150000","reclong":"105.183330","geolocation":{"type":"Point","coordinates":[105.18333,25.15]}} +,{"name":"Aomori","id":"2313","nametype":"Valid","recclass":"L6","mass":"320","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"40.810560","reclong":"140.785560","geolocation":{"type":"Point","coordinates":[140.78556,40.81056]}} +,{"name":"Appley Bridge","id":"2318","nametype":"Valid","recclass":"LL6","mass":"15000","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"53.583330","reclong":"-2.716670","geolocation":{"type":"Point","coordinates":[-2.71667,53.58333]}} +,{"name":"Apt","id":"2320","nametype":"Valid","recclass":"L6","mass":"3200","fall":"Fell","year":"1803-01-01T00:00:00.000","reclat":"43.866670","reclong":"5.383330","geolocation":{"type":"Point","coordinates":[5.38333,43.86667]}} +,{"name":"Arbol Solo","id":"2325","nametype":"Valid","recclass":"H5","mass":"810","fall":"Fell","year":"1954-01-01T00:00:00.000","reclat":"-33.000000","reclong":"-66.000000","geolocation":{"type":"Point","coordinates":[-66,-33]}} +,{"name":"Archie","id":"2329","nametype":"Valid","recclass":"H6","mass":"5070","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"38.500000","reclong":"-94.300000","geolocation":{"type":"Point","coordinates":[-94.3,38.5]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"2697"} +,{"name":"Arroyo Aguiar","id":"2340","nametype":"Valid","recclass":"H5","mass":"7450","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"-31.416670","reclong":"-60.666670","geolocation":{"type":"Point","coordinates":[-60.66667,-31.41667]}} +,{"name":"Asco","id":"2345","nametype":"Valid","recclass":"H6","mass":"41","fall":"Fell","year":"1805-01-01T00:00:00.000","reclat":"42.450000","reclong":"9.033330","geolocation":{"type":"Point","coordinates":[9.03333,42.45]}} +,{"name":"Ash Creek","id":"48954","nametype":"Valid","recclass":"L6","mass":"9500","fall":"Fell","year":"2009-01-01T00:00:00.000","reclat":"31.805000","reclong":"-97.010000","geolocation":{"type":"Point","coordinates":[-97.01,31.805]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"774"} +,{"name":"Ashdon","id":"2346","nametype":"Valid","recclass":"L6","mass":"1300","fall":"Fell","year":"1923-01-01T00:00:00.000","reclat":"52.050000","reclong":"0.300000","geolocation":{"type":"Point","coordinates":[0.3,52.05]}} +,{"name":"Assisi","id":"2353","nametype":"Valid","recclass":"H5","mass":"2000","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"43.033330","reclong":"12.550000","geolocation":{"type":"Point","coordinates":[12.55,43.03333]}} +,{"name":"Atarra","id":"4883","nametype":"Valid","recclass":"L4","mass":"1280","fall":"Fell","year":"1920-01-01T00:00:00.000","reclat":"25.254170","reclong":"80.625000","geolocation":{"type":"Point","coordinates":[80.625,25.25417]}} +,{"name":"Atemajac","id":"4884","nametype":"Valid","recclass":"L6","mass":"94.2","fall":"Fell","year":"1896-01-01T00:00:00.000","reclat":"20.066670","reclong":"-103.666670","geolocation":{"type":"Point","coordinates":[-103.66667,20.06667]}} +,{"name":"Athens","id":"4885","nametype":"Valid","recclass":"LL6","mass":"265","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"34.750000","reclong":"-87.000000","geolocation":{"type":"Point","coordinates":[-87,34.75]},":@computed_region_cbhk_fwbd":"29",":@computed_region_nnqa_25f4":"3134"} +,{"name":"Atoka","id":"4888","nametype":"Valid","recclass":"L6","mass":"1384.2","fall":"Fell","year":"1945-01-01T00:00:00.000","reclat":"34.316670","reclong":"-96.150000","geolocation":{"type":"Point","coordinates":[-96.15,34.31667]},":@computed_region_cbhk_fwbd":"20",":@computed_region_nnqa_25f4":"602"} +,{"name":"Aubres","id":"4893","nametype":"Valid","recclass":"Aubrite","mass":"800","fall":"Fell","year":"1836-01-01T00:00:00.000","reclat":"44.383330","reclong":"5.166670","geolocation":{"type":"Point","coordinates":[5.16667,44.38333]}} +,{"name":"Aumale","id":"4899","nametype":"Valid","recclass":"L6","mass":"50000","fall":"Fell","year":"1865-01-01T00:00:00.000","reclat":"36.166670","reclong":"3.666670","geolocation":{"type":"Point","coordinates":[3.66667,36.16667]}} +,{"name":"Aumieres","id":"4900","nametype":"Valid","recclass":"L6","mass":"2000","fall":"Fell","year":"1842-01-01T00:00:00.000","reclat":"44.333330","reclong":"3.233330","geolocation":{"type":"Point","coordinates":[3.23333,44.33333]}} +,{"name":"Ausson","id":"4903","nametype":"Valid","recclass":"L5","mass":"50000","fall":"Fell","year":"1858-01-01T00:00:00.000","reclat":"43.083330","reclong":"0.583330","geolocation":{"type":"Point","coordinates":[0.58333,43.08333]}} +,{"name":"Avanhandava","id":"4905","nametype":"Valid","recclass":"H4","mass":"9330","fall":"Fell","year":"1952-01-01T00:00:00.000","reclat":"-21.460280","reclong":"-49.950830","geolocation":{"type":"Point","coordinates":[-49.95083,-21.46028]}} +,{"name":"Avce","id":"4906","nametype":"Valid","recclass":"Iron, IIAB","mass":"1230","fall":"Fell","year":"1908-01-01T00:00:00.000","reclat":"46.000000","reclong":"13.500000","geolocation":{"type":"Point","coordinates":[13.5,46]}} +,{"name":"Avilez","id":"4907","nametype":"Valid","recclass":"H","mass":"146","fall":"Fell","year":"1855-01-01T00:00:00.000","reclat":"25.000000","reclong":"-103.500000","geolocation":{"type":"Point","coordinates":[-103.5,25]}} +,{"name":"Awere","id":"4910","nametype":"Valid","recclass":"L4","mass":"134","fall":"Fell","year":"1968-01-01T00:00:00.000","reclat":"2.716670","reclong":"32.833330","geolocation":{"type":"Point","coordinates":[32.83333,2.71667]}} +,{"name":"Aztec","id":"4913","nametype":"Valid","recclass":"L6","mass":"2830","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"36.800000","reclong":"-108.000000","geolocation":{"type":"Point","coordinates":[-108,36.8]},":@computed_region_cbhk_fwbd":"11",":@computed_region_nnqa_25f4":"1989"} +,{"name":"Bachmut","id":"4917","nametype":"Valid","recclass":"L6","mass":"18000","fall":"Fell","year":"1814-01-01T00:00:00.000","reclat":"48.600000","reclong":"38.000000","geolocation":{"type":"Point","coordinates":[38,48.6]}} +,{"name":"Bahjoi","id":"4922","nametype":"Valid","recclass":"Iron, IAB-sLL","mass":"10322","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"28.483330","reclong":"78.500000","geolocation":{"type":"Point","coordinates":[78.5,28.48333]}} +,{"name":"Bald Mountain","id":"4925","nametype":"Valid","recclass":"L4","mass":"3700","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"35.966670","reclong":"-82.483330","geolocation":{"type":"Point","coordinates":[-82.48333,35.96667]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"2373"} +,{"name":"Baldwyn","id":"4926","nametype":"Valid","recclass":"L6","mass":"345","fall":"Fell","year":"1922-01-01T00:00:00.000","reclat":"34.500000","reclong":"-88.666670","geolocation":{"type":"Point","coordinates":[-88.66667,34.5]},":@computed_region_cbhk_fwbd":"32",":@computed_region_nnqa_25f4":"495"} +,{"name":"Bali","id":"4928","nametype":"Valid","recclass":"CV3","mass":"1000","fall":"Fell","year":"1907-01-01T00:00:00.000","reclat":"5.383330","reclong":"16.383330","geolocation":{"type":"Point","coordinates":[16.38333,5.38333]}} +,{"name":"Ban Rong Du","id":"4934","nametype":"Valid","recclass":"Iron, ungrouped","mass":"16700","fall":"Fell","year":"1993-01-01T00:00:00.000","reclat":"16.666670","reclong":"101.183330","geolocation":{"type":"Point","coordinates":[101.18333,16.66667]}} +,{"name":"Bandong","id":"4935","nametype":"Valid","recclass":"LL6","mass":"11500","fall":"Fell","year":"1871-01-01T00:00:00.000","reclat":"-6.916670","reclong":"107.600000","geolocation":{"type":"Point","coordinates":[107.6,-6.91667]}} +,{"name":"Bansur","id":"4936","nametype":"Valid","recclass":"L6","mass":"15000","fall":"Fell","year":"1892-01-01T00:00:00.000","reclat":"27.700000","reclong":"76.333330","geolocation":{"type":"Point","coordinates":[76.33333,27.7]}} +,{"name":"Banswal","id":"4937","nametype":"Valid","recclass":"L5","mass":"14","fall":"Fell","year":"1913-01-01T00:00:00.000","reclat":"30.400000","reclong":"78.200000","geolocation":{"type":"Point","coordinates":[78.2,30.4]}} +,{"name":"Banten","id":"4938","nametype":"Valid","recclass":"CM2","mass":"629","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"-6.333330","reclong":"106.000000","geolocation":{"type":"Point","coordinates":[106,-6.33333]}} +,{"name":"Barbotan","id":"4942","nametype":"Valid","recclass":"H5","mass":"6400","fall":"Fell","year":"1790-01-01T00:00:00.000","reclat":"43.950000","reclong":"-0.050000","geolocation":{"type":"Point","coordinates":[-0.05,43.95]}} +,{"name":"Barcelona (stone)","id":"4944","nametype":"Valid","recclass":"OC","fall":"Fell","year":"1704-01-01T00:00:00.000","reclat":"41.366670","reclong":"2.166670","geolocation":{"type":"Point","coordinates":[2.16667,41.36667]}} +,{"name":"Barea","id":"4946","nametype":"Valid","recclass":"Mesosiderite-A1","mass":"3200","fall":"Fell","year":"1842-01-01T00:00:00.000","reclat":"42.383330","reclong":"-2.500000","geolocation":{"type":"Point","coordinates":[-2.5,42.38333]}} +,{"name":"Barnaul","id":"4947","nametype":"Valid","recclass":"H5","mass":"23.2","fall":"Fell","year":"1904-01-01T00:00:00.000","reclat":"52.733330","reclong":"84.083330","geolocation":{"type":"Point","coordinates":[84.08333,52.73333]}} +,{"name":"Barntrup","id":"4948","nametype":"Valid","recclass":"LL4","mass":"17","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"52.000000","reclong":"9.100000","geolocation":{"type":"Point","coordinates":[9.1,52]}} +,{"name":"Baroti","id":"4949","nametype":"Valid","recclass":"L6","mass":"4500","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"31.616670","reclong":"76.800000","geolocation":{"type":"Point","coordinates":[76.8,31.61667]}} +,{"name":"Barwell","id":"4954","nametype":"Valid","recclass":"L5","mass":"44000","fall":"Fell","year":"1965-01-01T00:00:00.000","reclat":"52.565280","reclong":"-1.339720","geolocation":{"type":"Point","coordinates":[-1.33972,52.56528]}} +,{"name":"Bassikounou","id":"44876","nametype":"Valid","recclass":"H5","mass":"29560","fall":"Fell","year":"2006-01-01T00:00:00.000","reclat":"15.783330","reclong":"-5.900000","geolocation":{"type":"Point","coordinates":[-5.9,15.78333]}} +,{"name":"Baszkówka","id":"4957","nametype":"Valid","recclass":"L5","mass":"15500","fall":"Fell","year":"1994-01-01T00:00:00.000","reclat":"52.033330","reclong":"20.935830","geolocation":{"type":"Point","coordinates":[20.93583,52.03333]}} +,{"name":"Bath","id":"4974","nametype":"Valid","recclass":"H4","mass":"21000","fall":"Fell","year":"1892-01-01T00:00:00.000","reclat":"45.416670","reclong":"-98.316670","geolocation":{"type":"Point","coordinates":[-98.31667,45.41667]},":@computed_region_cbhk_fwbd":"21",":@computed_region_nnqa_25f4":"662"} +,{"name":"Bath Furnace","id":"4975","nametype":"Valid","recclass":"L6","mass":"86000","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"38.250000","reclong":"-83.750000","geolocation":{"type":"Point","coordinates":[-83.75,38.25]},":@computed_region_cbhk_fwbd":"36",":@computed_region_nnqa_25f4":"1921"} +,{"name":"Battle Mountain","id":"56133","nametype":"Valid","recclass":"L6","mass":"2900","fall":"Fell","year":"2012-01-01T00:00:00.000","reclat":"40.668130","reclong":"-117.189130","geolocation":{"type":"Point","coordinates":[-117.18913,40.66813]},":@computed_region_cbhk_fwbd":"10",":@computed_region_nnqa_25f4":"2397"} +,{"name":"Bawku","id":"4976","nametype":"Valid","recclass":"LL5","mass":"1557","fall":"Fell","year":"1989-01-01T00:00:00.000","reclat":"11.083330","reclong":"-0.183330","geolocation":{"type":"Point","coordinates":[-0.18333,11.08333]}} +,{"name":"Baxter","id":"4977","nametype":"Valid","recclass":"L6","mass":"611","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"36.750000","reclong":"-93.500000","geolocation":{"type":"Point","coordinates":[-93.5,36.75]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"2216"} +,{"name":"Beardsley","id":"4984","nametype":"Valid","recclass":"H5","mass":"16000","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"39.800000","reclong":"-101.200000","geolocation":{"type":"Point","coordinates":[-101.2,39.8]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1285"} +,{"name":"Beaver Creek","id":"4986","nametype":"Valid","recclass":"H5","mass":"14000","fall":"Fell","year":"1893-01-01T00:00:00.000","reclat":"51.166670","reclong":"-117.333330","geolocation":{"type":"Point","coordinates":[-117.33333,51.16667]}} +,{"name":"Beddgelert","id":"4993","nametype":"Valid","recclass":"H5","mass":"794","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"53.016670","reclong":"-4.100000","geolocation":{"type":"Point","coordinates":[-4.1,53.01667]}} +,{"name":"Bells","id":"5005","nametype":"Valid","recclass":"C2-ung","mass":"375","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"33.600000","reclong":"-96.466670","geolocation":{"type":"Point","coordinates":[-96.46667,33.6]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"1978"} +,{"name":"Belville","id":"5009","nametype":"Valid","recclass":"OC","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"-32.333330","reclong":"-64.866670","geolocation":{"type":"Point","coordinates":[-64.86667,-32.33333]}} +,{"name":"Benares (a)","id":"5011","nametype":"Valid","recclass":"LL4","mass":"3700","fall":"Fell","year":"1798-01-01T00:00:00.000","reclat":"25.366670","reclong":"82.916670","geolocation":{"type":"Point","coordinates":[82.91667,25.36667]}} +,{"name":"Benguerir","id":"30443","nametype":"Valid","recclass":"LL6","mass":"25000","fall":"Fell","year":"2004-01-01T00:00:00.000","reclat":"32.250000","reclong":"-8.150000","geolocation":{"type":"Point","coordinates":[-8.15,32.25]}} +,{"name":"Beni M'hira","id":"5018","nametype":"Valid","recclass":"L6","mass":"19000","fall":"Fell","year":"2001-01-01T00:00:00.000","reclat":"32.866670","reclong":"10.800000","geolocation":{"type":"Point","coordinates":[10.8,32.86667]}} +,{"name":"Benld","id":"5021","nametype":"Valid","recclass":"H6","mass":"1770.5","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"39.083330","reclong":"-89.150000","geolocation":{"type":"Point","coordinates":[-89.15,39.08333]},":@computed_region_cbhk_fwbd":"34",":@computed_region_nnqa_25f4":"1869"} +,{"name":"Benoni","id":"5023","nametype":"Valid","recclass":"H6","mass":"3880","fall":"Fell","year":"1943-01-01T00:00:00.000","reclat":"-26.166670","reclong":"28.416670","geolocation":{"type":"Point","coordinates":[28.41667,-26.16667]}} +,{"name":"Bensour","id":"5024","nametype":"Valid","recclass":"LL6","mass":"45000","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"30.000000","reclong":"-7.000000","geolocation":{"type":"Point","coordinates":[-7,30]}} +,{"name":"Benton","id":"5026","nametype":"Valid","recclass":"LL6","mass":"2840","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"45.950000","reclong":"-67.550000","geolocation":{"type":"Point","coordinates":[-67.55,45.95]}} +,{"name":"Berduc","id":"48975","nametype":"Valid","recclass":"L6","mass":"270","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"-31.910000","reclong":"-58.328330","geolocation":{"type":"Point","coordinates":[-58.32833,-31.91]}} +,{"name":"Béréba","id":"5028","nametype":"Valid","recclass":"Eucrite-mmict","mass":"18000","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"11.650000","reclong":"-3.650000","geolocation":{"type":"Point","coordinates":[-3.65,11.65]}} +,{"name":"Berlanguillas","id":"5029","nametype":"Valid","recclass":"L6","mass":"1440","fall":"Fell","year":"1811-01-01T00:00:00.000","reclat":"41.683330","reclong":"-3.800000","geolocation":{"type":"Point","coordinates":[-3.8,41.68333]}} +,{"name":"Berthoud","id":"47355","nametype":"Valid","recclass":"Eucrite-mmict","mass":"960","fall":"Fell","year":"2004-01-01T00:00:00.000","reclat":"40.305830","reclong":"-105.023250","geolocation":{"type":"Point","coordinates":[-105.02325,40.30583]},":@computed_region_cbhk_fwbd":"9",":@computed_region_nnqa_25f4":"1072"} +,{"name":"Bethlehem","id":"5032","nametype":"Valid","recclass":"H","mass":"13.9","fall":"Fell","year":"1859-01-01T00:00:00.000","reclat":"42.533330","reclong":"-73.833330","geolocation":{"type":"Point","coordinates":[-73.83333,42.53333]},":@computed_region_cbhk_fwbd":"47",":@computed_region_nnqa_25f4":"2030"} +,{"name":"Beuste","id":"5034","nametype":"Valid","recclass":"L5","mass":"2000","fall":"Fell","year":"1859-01-01T00:00:00.000","reclat":"43.216670","reclong":"-0.233330","geolocation":{"type":"Point","coordinates":[-0.23333,43.21667]}} +,{"name":"Beyrout","id":"5035","nametype":"Valid","recclass":"LL3.8","mass":"1100","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"33.883330","reclong":"35.500000","geolocation":{"type":"Point","coordinates":[35.5,33.88333]}} +,{"name":"Bhagur","id":"5037","nametype":"Valid","recclass":"L6","mass":"18","fall":"Fell","year":"1877-01-01T00:00:00.000","reclat":"20.883330","reclong":"74.833330","geolocation":{"type":"Point","coordinates":[74.83333,20.88333]}} +,{"name":"Bhawad","id":"36591","nametype":"Valid","recclass":"LL6","mass":"678","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"26.508330","reclong":"73.115280","geolocation":{"type":"Point","coordinates":[73.11528,26.50833]}} +,{"name":"Bherai","id":"5039","nametype":"Valid","recclass":"L6","mass":"100","fall":"Fell","year":"1893-01-01T00:00:00.000","reclat":"20.833330","reclong":"71.466670","geolocation":{"type":"Point","coordinates":[71.46667,20.83333]}} +,{"name":"Bhola","id":"5040","nametype":"Valid","recclass":"LL3-6","mass":"1047","fall":"Fell","year":"1940-01-01T00:00:00.000","reclat":"22.683330","reclong":"90.650000","geolocation":{"type":"Point","coordinates":[90.65,22.68333]}} +,{"name":"Bholghati","id":"5041","nametype":"Valid","recclass":"Howardite","mass":"2500","fall":"Fell","year":"1905-01-01T00:00:00.000","reclat":"22.083330","reclong":"86.900000","geolocation":{"type":"Point","coordinates":[86.9,22.08333]}} +,{"name":"Bialystok","id":"5042","nametype":"Valid","recclass":"Eucrite-pmict","mass":"4000","fall":"Fell","year":"1827-01-01T00:00:00.000","reclat":"53.100000","reclong":"23.200000","geolocation":{"type":"Point","coordinates":[23.2,53.1]}} +,{"name":"Bielokrynitschie","id":"5043","nametype":"Valid","recclass":"H4","mass":"1900","fall":"Fell","year":"1887-01-01T00:00:00.000","reclat":"50.133330","reclong":"27.166670","geolocation":{"type":"Point","coordinates":[27.16667,50.13333]}} +,{"name":"Bilanga","id":"5045","nametype":"Valid","recclass":"Diogenite","mass":"25000","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"12.450000","reclong":"-0.083330","geolocation":{"type":"Point","coordinates":[-0.08333,12.45]}} +,{"name":"Binningup","id":"5051","nametype":"Valid","recclass":"H5","mass":"488.1","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"-33.156390","reclong":"115.676390","geolocation":{"type":"Point","coordinates":[115.67639,-33.15639]}} +,{"name":"Birni N'konni","id":"5056","nametype":"Valid","recclass":"H4","mass":"560","fall":"Fell","year":"1923-01-01T00:00:00.000","reclat":"13.766670","reclong":"5.300000","geolocation":{"type":"Point","coordinates":[5.3,13.76667]}} +,{"name":"Bishopville","id":"5059","nametype":"Valid","recclass":"Aubrite","mass":"6000","fall":"Fell","year":"1843-01-01T00:00:00.000","reclat":"34.166670","reclong":"-80.283330","geolocation":{"type":"Point","coordinates":[-80.28333,34.16667]},":@computed_region_cbhk_fwbd":"33",":@computed_region_nnqa_25f4":"657"} +,{"name":"Bishunpur","id":"5060","nametype":"Valid","recclass":"LL3.15","mass":"1039","fall":"Fell","year":"1895-01-01T00:00:00.000","reclat":"25.383330","reclong":"82.600000","geolocation":{"type":"Point","coordinates":[82.6,25.38333]}} +,{"name":"Bjelaja Zerkov","id":"5063","nametype":"Valid","recclass":"H6","mass":"1850","fall":"Fell","year":"1796-01-01T00:00:00.000","reclat":"49.783330","reclong":"30.166670","geolocation":{"type":"Point","coordinates":[30.16667,49.78333]}} +,{"name":"Bjurböle","id":"5064","nametype":"Valid","recclass":"L/LL4","mass":"330000","fall":"Fell","year":"1899-01-01T00:00:00.000","reclat":"60.400000","reclong":"25.800000","geolocation":{"type":"Point","coordinates":[25.8,60.4]}} +,{"name":"Black Moshannan Park","id":"5065","nametype":"Valid","recclass":"L5","mass":"705","fall":"Fell","year":"1941-01-01T00:00:00.000","reclat":"40.916670","reclong":"-78.083330","geolocation":{"type":"Point","coordinates":[-78.08333,40.91667]},":@computed_region_cbhk_fwbd":"48",":@computed_region_nnqa_25f4":"2495"} +,{"name":"Blackwell","id":"5068","nametype":"Valid","recclass":"L5","mass":"2381","fall":"Fell","year":"1906-01-01T00:00:00.000","reclat":"36.833330","reclong":"-97.333330","geolocation":{"type":"Point","coordinates":[-97.33333,36.83333]},":@computed_region_cbhk_fwbd":"20",":@computed_region_nnqa_25f4":"2164"} +,{"name":"Blanket","id":"5071","nametype":"Valid","recclass":"L6","mass":"5100","fall":"Fell","year":"1909-01-01T00:00:00.000","reclat":"31.833330","reclong":"-98.833330","geolocation":{"type":"Point","coordinates":[-98.83333,31.83333]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"3063"} +,{"name":"Blansko","id":"5072","nametype":"Valid","recclass":"H6","mass":"470","fall":"Fell","year":"1833-01-01T00:00:00.000","reclat":"49.366670","reclong":"16.633330","geolocation":{"type":"Point","coordinates":[16.63333,49.36667]}} +,{"name":"Bloomington","id":"5076","nametype":"Valid","recclass":"LL6","mass":"67.8","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"40.480000","reclong":"-89.004170","geolocation":{"type":"Point","coordinates":[-89.00417,40.48]},":@computed_region_cbhk_fwbd":"34",":@computed_region_nnqa_25f4":"1795"} +,{"name":"Bo Xian","id":"5090","nametype":"Valid","recclass":"LL3.9","mass":"7500","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"33.833330","reclong":"115.833330","geolocation":{"type":"Point","coordinates":[115.83333,33.83333]}} +,{"name":"Bocas","id":"5093","nametype":"Valid","recclass":"L6","mass":"56","fall":"Fell","year":"1804-01-01T00:00:00.000","reclat":"23.000000","reclong":"-102.000000","geolocation":{"type":"Point","coordinates":[-102,23]}} +,{"name":"Bogou","id":"5097","nametype":"Valid","recclass":"Iron, IAB-MG","mass":"8800","fall":"Fell","year":"1962-01-01T00:00:00.000","reclat":"12.500000","reclong":"0.700000","geolocation":{"type":"Point","coordinates":[0.7,12.5]}} +,{"name":"Boguslavka","id":"5098","nametype":"Valid","recclass":"Iron, IIAB","mass":"256000","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"44.550000","reclong":"131.633330","geolocation":{"type":"Point","coordinates":[131.63333,44.55]}} +,{"name":"Borgo San Donino","id":"5110","nametype":"Valid","recclass":"LL6","mass":"1676","fall":"Fell","year":"1808-01-01T00:00:00.000","reclat":"44.866670","reclong":"10.050000","geolocation":{"type":"Point","coordinates":[10.05,44.86667]}} +,{"name":"Bori","id":"5111","nametype":"Valid","recclass":"L6","mass":"8600","fall":"Fell","year":"1894-01-01T00:00:00.000","reclat":"21.950000","reclong":"78.033330","geolocation":{"type":"Point","coordinates":[78.03333,21.95]}} +,{"name":"Boriskino","id":"5112","nametype":"Valid","recclass":"CM2","mass":"1342","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"54.233330","reclong":"52.483330","geolocation":{"type":"Point","coordinates":[52.48333,54.23333]}} +,{"name":"Borkut","id":"5113","nametype":"Valid","recclass":"L5","mass":"7000","fall":"Fell","year":"1852-01-01T00:00:00.000","reclat":"48.150000","reclong":"24.283330","geolocation":{"type":"Point","coordinates":[24.28333,48.15]}} +,{"name":"Borodino","id":"5114","nametype":"Valid","recclass":"H5","mass":"500","fall":"Fell","year":"1812-01-01T00:00:00.000","reclat":"55.466670","reclong":"35.866670","geolocation":{"type":"Point","coordinates":[35.86667,55.46667]}} +,{"name":"Botschetschki","id":"5117","nametype":"Valid","recclass":"L4","mass":"614","fall":"Fell","year":"1823-01-01T00:00:00.000","reclat":"51.333330","reclong":"33.883330","geolocation":{"type":"Point","coordinates":[33.88333,51.33333]}} +,{"name":"Boumdeid (2003)","id":"57168","nametype":"Valid","recclass":"L6","mass":"190","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"17.710670","reclong":"-11.371500","geolocation":{"type":"Point","coordinates":[-11.3715,17.71067]}} +,{"name":"Boumdeid (2011)","id":"57167","nametype":"Valid","recclass":"L6","mass":"3599","fall":"Fell","year":"2011-01-01T00:00:00.000","reclat":"17.174930","reclong":"-11.341330","geolocation":{"type":"Point","coordinates":[-11.34133,17.17493]}} +,{"name":"Bovedy","id":"5121","nametype":"Valid","recclass":"L3","mass":"5460","fall":"Fell","year":"1969-01-01T00:00:00.000","reclat":"54.566670","reclong":"-6.333330","geolocation":{"type":"Point","coordinates":[-6.33333,54.56667]}} +,{"name":"Bradford Woods","id":"5128","nametype":"Valid","recclass":"L","mass":"762","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"40.500000","reclong":"-80.083330","geolocation":{"type":"Point","coordinates":[-80.08333,40.5]},":@computed_region_cbhk_fwbd":"48",":@computed_region_nnqa_25f4":"2455"} +,{"name":"Braunau","id":"5133","nametype":"Valid","recclass":"Iron, IIAB","mass":"39000","fall":"Fell","year":"1847-01-01T00:00:00.000","reclat":"50.600000","reclong":"16.300000","geolocation":{"type":"Point","coordinates":[16.3,50.6]}} +,{"name":"Breitscheid","id":"5134","nametype":"Valid","recclass":"H5","mass":"1500","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"50.666940","reclong":"8.183610","geolocation":{"type":"Point","coordinates":[8.18361,50.66694]}} +,{"name":"Bremervörde","id":"5135","nametype":"Valid","recclass":"H/L3.9","mass":"7250","fall":"Fell","year":"1855-01-01T00:00:00.000","reclat":"53.400000","reclong":"9.100000","geolocation":{"type":"Point","coordinates":[9.1,53.4]}} +,{"name":"Brient","id":"5140","nametype":"Valid","recclass":"Eucrite-pmict","mass":"219","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"52.133330","reclong":"59.316670","geolocation":{"type":"Point","coordinates":[59.31667,52.13333]}} +,{"name":"Bruderheim","id":"5156","nametype":"Valid","recclass":"L6","mass":"303000","fall":"Fell","year":"1960-01-01T00:00:00.000","reclat":"53.900000","reclong":"-112.883330","geolocation":{"type":"Point","coordinates":[-112.88333,53.9]}} +,{"name":"Bukhara","id":"30448","nametype":"Valid","recclass":"CV3","mass":"5300","fall":"Fell","year":"2001-01-01T00:00:00.000","reclat":"39.779780","reclong":"64.600350","geolocation":{"type":"Point","coordinates":[64.60035,39.77978]}} +,{"name":"Bulls Run","id":"5163","nametype":"Valid","recclass":"Iron?","mass":"2250","fall":"Fell","year":"1964-01-01T00:00:00.000"} +,{"name":"Bunburra Rockhole","id":"48653","nametype":"Valid","recclass":"Eucrite","mass":"324","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"-31.350000","reclong":"129.190000","geolocation":{"type":"Point","coordinates":[129.19,-31.35]}} +,{"name":"Bununu","id":"5165","nametype":"Valid","recclass":"Howardite","mass":"357","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"10.016670","reclong":"9.583330","geolocation":{"type":"Point","coordinates":[9.58333,10.01667]}} +,{"name":"Bur-Gheluai","id":"5169","nametype":"Valid","recclass":"H5","mass":"120000","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"5.000000","reclong":"48.000000","geolocation":{"type":"Point","coordinates":[48,5]}} +,{"name":"Burnwell","id":"5175","nametype":"Valid","recclass":"H4-an","mass":"1504","fall":"Fell","year":"1990-01-01T00:00:00.000","reclat":"37.621940","reclong":"-82.237220","geolocation":{"type":"Point","coordinates":[-82.23722,37.62194]},":@computed_region_cbhk_fwbd":"36",":@computed_region_nnqa_25f4":"256"} +,{"name":"Bursa","id":"5177","nametype":"Valid","recclass":"L6","mass":"25000","fall":"Fell","year":"1946-01-01T00:00:00.000","reclat":"40.200000","reclong":"29.233330","geolocation":{"type":"Point","coordinates":[29.23333,40.2]}} +,{"name":"Buschhof","id":"5178","nametype":"Valid","recclass":"L6","mass":"5000","fall":"Fell","year":"1863-01-01T00:00:00.000","reclat":"46.450000","reclong":"25.783330","geolocation":{"type":"Point","coordinates":[25.78333,46.45]}} +,{"name":"Bustee","id":"5181","nametype":"Valid","recclass":"Aubrite","mass":"1500","fall":"Fell","year":"1852-01-01T00:00:00.000","reclat":"26.783330","reclong":"82.833330","geolocation":{"type":"Point","coordinates":[82.83333,26.78333]}} +,{"name":"Butsura","id":"5183","nametype":"Valid","recclass":"H6","mass":"29000","fall":"Fell","year":"1861-01-01T00:00:00.000","reclat":"27.083330","reclong":"84.083330","geolocation":{"type":"Point","coordinates":[84.08333,27.08333]}} +,{"name":"Buzzard Coulee","id":"48654","nametype":"Valid","recclass":"H4","mass":"41000","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"52.996000","reclong":"-109.848170","geolocation":{"type":"Point","coordinates":[-109.84817,52.996]}} +,{"name":"Cabezo de Mayo","id":"5185","nametype":"Valid","recclass":"L/LL6","mass":"25000","fall":"Fell","year":"1870-01-01T00:00:00.000","reclat":"37.983330","reclong":"-1.166670","geolocation":{"type":"Point","coordinates":[-1.16667,37.98333]}} +,{"name":"Cabin Creek","id":"5186","nametype":"Valid","recclass":"Iron, IIIAB","mass":"48500","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"35.500000","reclong":"-93.500000","geolocation":{"type":"Point","coordinates":[-93.5,35.5]},":@computed_region_cbhk_fwbd":"15",":@computed_region_nnqa_25f4":"1029"} +,{"name":"Cacak","id":"5187","nametype":"Valid","recclass":"OC","mass":"212","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"43.838890","reclong":"20.333330","geolocation":{"type":"Point","coordinates":[20.33333,43.83889]}} +,{"name":"Cali","id":"45976","nametype":"Valid","recclass":"H/L4","mass":"478","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"3.405000","reclong":"-76.510000","geolocation":{"type":"Point","coordinates":[-76.51,3.405]}} +,{"name":"Calivo","id":"5200","nametype":"Valid","recclass":"Stone-uncl","mass":"2400","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"11.750000","reclong":"122.333330","geolocation":{"type":"Point","coordinates":[122.33333,11.75]}} +,{"name":"Campos Sales","id":"5249","nametype":"Valid","recclass":"L5","mass":"23680","fall":"Fell","year":"1991-01-01T00:00:00.000","reclat":"-7.033330","reclong":"-40.166670","geolocation":{"type":"Point","coordinates":[-40.16667,-7.03333]}} +,{"name":"Çanakkale","id":"5250","nametype":"Valid","recclass":"L6","mass":"4000","fall":"Fell","year":"1964-01-01T00:00:00.000","reclat":"39.800000","reclong":"26.600000","geolocation":{"type":"Point","coordinates":[26.6,39.8]}} +,{"name":"Cañellas","id":"5251","nametype":"Valid","recclass":"H4","mass":"945","fall":"Fell","year":"1861-01-01T00:00:00.000","reclat":"41.250000","reclong":"1.666670","geolocation":{"type":"Point","coordinates":[1.66667,41.25]}} +,{"name":"Cangas de Onis","id":"5252","nametype":"Valid","recclass":"H5","mass":"34000","fall":"Fell","year":"1866-01-01T00:00:00.000","reclat":"43.383330","reclong":"-5.150000","geolocation":{"type":"Point","coordinates":[-5.15,43.38333]}} +,{"name":"Canon City","id":"5253","nametype":"Valid","recclass":"H6","mass":"1400","fall":"Fell","year":"1973-01-01T00:00:00.000","reclat":"38.470280","reclong":"-105.241390","geolocation":{"type":"Point","coordinates":[-105.24139,38.47028]},":@computed_region_cbhk_fwbd":"9",":@computed_region_nnqa_25f4":"1448"} +,{"name":"Cape Girardeau","id":"5260","nametype":"Valid","recclass":"H6","mass":"2300","fall":"Fell","year":"1846-01-01T00:00:00.000","reclat":"37.266670","reclong":"-89.583330","geolocation":{"type":"Point","coordinates":[-89.58333,37.26667]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"2695"} +,{"name":"Capilla del Monte","id":"5264","nametype":"Valid","recclass":"H6","mass":"750","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"-30.883330","reclong":"-64.550000","geolocation":{"type":"Point","coordinates":[-64.55,-30.88333]}} +,{"name":"Carancas","id":"45817","nametype":"Valid","recclass":"H4-5","mass":"342","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"-16.664440","reclong":"-69.043890","geolocation":{"type":"Point","coordinates":[-69.04389,-16.66444]}} +,{"name":"Caratash","id":"5265","nametype":"Valid","recclass":"LL6","mass":"8","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"38.500000","reclong":"27.000000","geolocation":{"type":"Point","coordinates":[27,38.5]}} +,{"name":"Castalia","id":"5291","nametype":"Valid","recclass":"H5","mass":"7300","fall":"Fell","year":"1874-01-01T00:00:00.000","reclat":"36.083330","reclong":"-78.066670","geolocation":{"type":"Point","coordinates":[-78.06667,36.08333]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"648"} +,{"name":"Castel Berardenga","id":"5292","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1791-01-01T00:00:00.000","reclat":"43.350000","reclong":"11.500000","geolocation":{"type":"Point","coordinates":[11.5,43.35]}} +,{"name":"Castine","id":"5293","nametype":"Valid","recclass":"L6","mass":"94","fall":"Fell","year":"1848-01-01T00:00:00.000","reclat":"44.383330","reclong":"-68.750000","geolocation":{"type":"Point","coordinates":[-68.75,44.38333]},":@computed_region_cbhk_fwbd":"49",":@computed_region_nnqa_25f4":"414"} +,{"name":"Castrovillari","id":"5295","nametype":"Valid","recclass":"Stone-uncl","mass":"15000","fall":"Fell","year":"1583-01-01T00:00:00.000","reclat":"39.800000","reclong":"16.200000","geolocation":{"type":"Point","coordinates":[16.2,39.8]}} +,{"name":"Caswell County","id":"5296","nametype":"Valid","recclass":"OC","mass":"1360","fall":"Fell","year":"1810-01-01T00:00:00.000","reclat":"36.500000","reclong":"-79.250000","geolocation":{"type":"Point","coordinates":[-79.25,36.5]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"637"} +,{"name":"Ceniceros","id":"5306","nametype":"Valid","recclass":"L3.7","mass":"1025","fall":"Fell","year":"1988-01-01T00:00:00.000","reclat":"26.466670","reclong":"-105.233330","geolocation":{"type":"Point","coordinates":[-105.23333,26.46667]}} +,{"name":"Centerville","id":"5307","nametype":"Valid","recclass":"H5","mass":"45.6","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"43.200000","reclong":"-96.916670","geolocation":{"type":"Point","coordinates":[-96.91667,43.2]},":@computed_region_cbhk_fwbd":"21",":@computed_region_nnqa_25f4":"2684"} +,{"name":"Cereseto","id":"5308","nametype":"Valid","recclass":"H5","mass":"6460","fall":"Fell","year":"1840-01-01T00:00:00.000","reclat":"45.083330","reclong":"8.300000","geolocation":{"type":"Point","coordinates":[8.3,45.08333]}} +,{"name":"Chadong","id":"5313","nametype":"Valid","recclass":"L6","mass":"3700","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"28.533330","reclong":"109.316670","geolocation":{"type":"Point","coordinates":[109.31667,28.53333]}} +,{"name":"Chail","id":"5314","nametype":"Valid","recclass":"H6","mass":"0.5","fall":"Fell","year":"1814-01-01T00:00:00.000","reclat":"25.366670","reclong":"81.666670","geolocation":{"type":"Point","coordinates":[81.66667,25.36667]}} +,{"name":"Chainpur","id":"5315","nametype":"Valid","recclass":"LL3.4","mass":"8200","fall":"Fell","year":"1907-01-01T00:00:00.000","reclat":"25.850000","reclong":"83.483330","geolocation":{"type":"Point","coordinates":[83.48333,25.85]}} +,{"name":"Chajari","id":"5316","nametype":"Valid","recclass":"L5","mass":"18300","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"-30.783330","reclong":"-58.050000","geolocation":{"type":"Point","coordinates":[-58.05,-30.78333]}} +,{"name":"Chandakapur","id":"5320","nametype":"Valid","recclass":"L5","mass":"8800","fall":"Fell","year":"1838-01-01T00:00:00.000","reclat":"20.266670","reclong":"76.016670","geolocation":{"type":"Point","coordinates":[76.01667,20.26667]}} +,{"name":"Chandpur","id":"5321","nametype":"Valid","recclass":"L6","mass":"1100","fall":"Fell","year":"1885-01-01T00:00:00.000","reclat":"27.283330","reclong":"79.050000","geolocation":{"type":"Point","coordinates":[79.05,27.28333]}} +,{"name":"Changde","id":"5322","nametype":"Valid","recclass":"H5","mass":"1810","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"29.083330","reclong":"111.750000","geolocation":{"type":"Point","coordinates":[111.75,29.08333]}} +,{"name":"Chantonnay","id":"5325","nametype":"Valid","recclass":"L6","mass":"31500","fall":"Fell","year":"1812-01-01T00:00:00.000","reclat":"46.683330","reclong":"1.050000","geolocation":{"type":"Point","coordinates":[1.05,46.68333]}} +,{"name":"Charlotte","id":"5328","nametype":"Valid","recclass":"Iron, IVA","mass":"4300","fall":"Fell","year":"1835-01-01T00:00:00.000","reclat":"36.166670","reclong":"-87.333330","geolocation":{"type":"Point","coordinates":[-87.33333,36.16667]},":@computed_region_cbhk_fwbd":"39",":@computed_region_nnqa_25f4":"2007"} +,{"name":"Charsonville","id":"5329","nametype":"Valid","recclass":"H6","mass":"27000","fall":"Fell","year":"1810-01-01T00:00:00.000","reclat":"47.933330","reclong":"1.566670","geolocation":{"type":"Point","coordinates":[1.56667,47.93333]}} +,{"name":"Charwallas","id":"5330","nametype":"Valid","recclass":"H6","mass":"12000","fall":"Fell","year":"1834-01-01T00:00:00.000","reclat":"29.483330","reclong":"75.500000","geolocation":{"type":"Point","coordinates":[75.5,29.48333]}} +,{"name":"Chassigny","id":"5331","nametype":"Valid","recclass":"Martian (chassignite)","mass":"4000","fall":"Fell","year":"1815-01-01T00:00:00.000","reclat":"47.716670","reclong":"5.366670","geolocation":{"type":"Point","coordinates":[5.36667,47.71667]}} +,{"name":"Château-Renard","id":"5332","nametype":"Valid","recclass":"L6","mass":"30000","fall":"Fell","year":"1841-01-01T00:00:00.000","reclat":"47.933330","reclong":"2.916670","geolocation":{"type":"Point","coordinates":[2.91667,47.93333]}} +,{"name":"Chaves","id":"5334","nametype":"Valid","recclass":"Howardite","mass":"2945","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"41.933330","reclong":"-7.466670","geolocation":{"type":"Point","coordinates":[-7.46667,41.93333]}} +,{"name":"Chela","id":"5338","nametype":"Valid","recclass":"H4","mass":"2936","fall":"Fell","year":"1988-01-01T00:00:00.000","reclat":"-3.666670","reclong":"32.500000","geolocation":{"type":"Point","coordinates":[32.5,-3.66667]}} +,{"name":"Chelyabinsk","id":"57165","nametype":"Valid","recclass":"LL5","mass":"100000","fall":"Fell","year":"2013-01-01T00:00:00.000","reclat":"54.816670","reclong":"61.116670","geolocation":{"type":"Point","coordinates":[61.11667,54.81667]}} +,{"name":"Chergach ","id":"47347","nametype":"Valid","recclass":"H5","mass":"100000","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"23.696390","reclong":"-5.014720","geolocation":{"type":"Point","coordinates":[-5.01472,23.69639]}} +,{"name":"Chernyi Bor","id":"5339","nametype":"Valid","recclass":"H4","mass":"6000","fall":"Fell","year":"1964-01-01T00:00:00.000","reclat":"53.700000","reclong":"30.100000","geolocation":{"type":"Point","coordinates":[30.1,53.7]}} +,{"name":"Cherokee Springs","id":"5340","nametype":"Valid","recclass":"LL6","mass":"8400","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"35.033330","reclong":"-81.883330","geolocation":{"type":"Point","coordinates":[-81.88333,35.03333]},":@computed_region_cbhk_fwbd":"33",":@computed_region_nnqa_25f4":"2582"} +,{"name":"Chervettaz","id":"5341","nametype":"Valid","recclass":"L5","mass":"705","fall":"Fell","year":"1901-01-01T00:00:00.000","reclat":"46.550000","reclong":"6.816670","geolocation":{"type":"Point","coordinates":[6.81667,46.55]}} +,{"name":"Chervony Kut","id":"5342","nametype":"Valid","recclass":"Eucrite-mmict","mass":"1700","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"50.833330","reclong":"34.000000","geolocation":{"type":"Point","coordinates":[34,50.83333]}} +,{"name":"Chetrinahatti","id":"5344","nametype":"Valid","recclass":"Stone-uncl","mass":"72","fall":"Fell","year":"1880-01-01T00:00:00.000","reclat":"14.500000","reclong":"76.500000","geolocation":{"type":"Point","coordinates":[76.5,14.5]}} +,{"name":"Chiang Khan","id":"5345","nametype":"Valid","recclass":"H6","mass":"367","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"17.900000","reclong":"101.633330","geolocation":{"type":"Point","coordinates":[101.63333,17.9]}} +,{"name":"Chicora","id":"5349","nametype":"Valid","recclass":"LL6","mass":"303","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"40.933330","reclong":"-79.733330","geolocation":{"type":"Point","coordinates":[-79.73333,40.93333]},":@computed_region_cbhk_fwbd":"48",":@computed_region_nnqa_25f4":"2459"} +,{"name":"Chisenga","id":"5355","nametype":"Valid","recclass":"Iron, IIIAB","mass":"3920","fall":"Fell","year":"1988-01-01T00:00:00.000","reclat":"-10.059440","reclong":"33.395000","geolocation":{"type":"Point","coordinates":[33.395,-10.05944]}} +,{"name":"Chitado","id":"5356","nametype":"Valid","recclass":"L6","fall":"Fell","year":"1966-01-01T00:00:00.000","reclat":"-17.350000","reclong":"13.966670","geolocation":{"type":"Point","coordinates":[13.96667,-17.35]}} +,{"name":"Chitenay","id":"5357","nametype":"Valid","recclass":"L6","mass":"4000","fall":"Fell","year":"1978-01-01T00:00:00.000","reclat":"47.470830","reclong":"0.976670","geolocation":{"type":"Point","coordinates":[0.97667,47.47083]}} +,{"name":"Cilimus","id":"5364","nametype":"Valid","recclass":"L5","mass":"1600","fall":"Fell","year":"1979-01-01T00:00:00.000","reclat":"-6.950000","reclong":"108.100000","geolocation":{"type":"Point","coordinates":[108.1,-6.95]}} +,{"name":"Claxton","id":"5374","nametype":"Valid","recclass":"L6","mass":"1455","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"32.102500","reclong":"-81.872780","geolocation":{"type":"Point","coordinates":[-81.87278,32.1025]},":@computed_region_cbhk_fwbd":"31",":@computed_region_nnqa_25f4":"67"} +,{"name":"Clohars","id":"5383","nametype":"Valid","recclass":"L4","mass":"48.6","fall":"Fell","year":"1822-01-01T00:00:00.000"} +,{"name":"Colby (Wisconsin)","id":"5395","nametype":"Valid","recclass":"L6","mass":"104000","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"44.900000","reclong":"-90.283330","geolocation":{"type":"Point","coordinates":[-90.28333,44.9]},":@computed_region_cbhk_fwbd":"41",":@computed_region_nnqa_25f4":"877"} +,{"name":"Cold Bokkeveld","id":"5397","nametype":"Valid","recclass":"CM2","mass":"5200","fall":"Fell","year":"1838-01-01T00:00:00.000","reclat":"-33.133330","reclong":"19.383330","geolocation":{"type":"Point","coordinates":[19.38333,-33.13333]}} +,{"name":"Coleman","id":"5401","nametype":"Valid","recclass":"L6","mass":"469","fall":"Fell","year":"1994-01-01T00:00:00.000","reclat":"43.761110","reclong":"-84.507780","geolocation":{"type":"Point","coordinates":[-84.50778,43.76111]},":@computed_region_cbhk_fwbd":"50",":@computed_region_nnqa_25f4":"356"} +,{"name":"Collescipoli","id":"5403","nametype":"Valid","recclass":"H5","mass":"5000","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"42.533330","reclong":"12.616670","geolocation":{"type":"Point","coordinates":[12.61667,42.53333]}} +,{"name":"Conquista","id":"5418","nametype":"Valid","recclass":"H4","mass":"20350","fall":"Fell","year":"1965-01-01T00:00:00.000","reclat":"-19.850000","reclong":"-47.550000","geolocation":{"type":"Point","coordinates":[-47.55,-19.85]}} +,{"name":"Cosina","id":"5451","nametype":"Valid","recclass":"H5","mass":"1200","fall":"Fell","year":"1844-01-01T00:00:00.000","reclat":"21.166670","reclong":"-100.866670","geolocation":{"type":"Point","coordinates":[-100.86667,21.16667]}} +,{"name":"Cranganore","id":"5465","nametype":"Valid","recclass":"L6","mass":"1460","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"10.200000","reclong":"76.266670","geolocation":{"type":"Point","coordinates":[76.26667,10.2]}} +,{"name":"Crescent","id":"5470","nametype":"Valid","recclass":"CM2","mass":"78.400000000000006","fall":"Fell","year":"1936-01-01T00:00:00.000","reclat":"35.950000","reclong":"-97.583330","geolocation":{"type":"Point","coordinates":[-97.58333,35.95]},":@computed_region_cbhk_fwbd":"20",":@computed_region_nnqa_25f4":"2201"} +,{"name":"Cronstad","id":"5474","nametype":"Valid","recclass":"H5","mass":"3650","fall":"Fell","year":"1877-01-01T00:00:00.000","reclat":"-27.700000","reclong":"27.300000","geolocation":{"type":"Point","coordinates":[27.3,-27.7]}} +,{"name":"Cross Roads","id":"5476","nametype":"Valid","recclass":"H5","mass":"167","fall":"Fell","year":"1892-01-01T00:00:00.000","reclat":"35.633330","reclong":"-78.133330","geolocation":{"type":"Point","coordinates":[-78.13333,35.63333]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"2332"} +,{"name":"Crumlin","id":"5477","nametype":"Valid","recclass":"L5","mass":"4255","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"54.616670","reclong":"-6.216670","geolocation":{"type":"Point","coordinates":[-6.21667,54.61667]}} +,{"name":"Cumberland Falls","id":"5496","nametype":"Valid","recclass":"Aubrite","mass":"17000","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"36.833330","reclong":"-84.350000","geolocation":{"type":"Point","coordinates":[-84.35,36.83333]},":@computed_region_cbhk_fwbd":"36",":@computed_region_nnqa_25f4":"1426"} +,{"name":"Cynthiana","id":"5500","nametype":"Valid","recclass":"L/LL4","mass":"6000","fall":"Fell","year":"1877-01-01T00:00:00.000","reclat":"38.400000","reclong":"-84.250000","geolocation":{"type":"Point","coordinates":[-84.25,38.4]},":@computed_region_cbhk_fwbd":"36",":@computed_region_nnqa_25f4":"244"} +,{"name":"Dahmani","id":"5504","nametype":"Valid","recclass":"LL6","mass":"18000","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"35.616670","reclong":"8.833330","geolocation":{"type":"Point","coordinates":[8.83333,35.61667]}} +,{"name":"Dandapur","id":"5511","nametype":"Valid","recclass":"L6","mass":"5650","fall":"Fell","year":"1878-01-01T00:00:00.000","reclat":"26.916670","reclong":"83.966670","geolocation":{"type":"Point","coordinates":[83.96667,26.91667]}} +,{"name":"Daniel's Kuil","id":"5513","nametype":"Valid","recclass":"EL6","mass":"1064","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"-28.200000","reclong":"24.566670","geolocation":{"type":"Point","coordinates":[24.56667,-28.2]}} +,{"name":"Danville","id":"5514","nametype":"Valid","recclass":"L6","mass":"2000","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"34.400000","reclong":"-87.066670","geolocation":{"type":"Point","coordinates":[-87.06667,34.4]},":@computed_region_cbhk_fwbd":"29",":@computed_region_nnqa_25f4":"103"} +,{"name":"Darmstadt","id":"6603","nametype":"Valid","recclass":"H5","mass":"100","fall":"Fell","year":"1804-01-01T00:00:00.000","reclat":"49.866670","reclong":"8.650000","geolocation":{"type":"Point","coordinates":[8.65,49.86667]}} +,{"name":"Dashoguz","id":"6604","nametype":"Valid","recclass":"H5","mass":"7000","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"41.984440","reclong":"59.685000","geolocation":{"type":"Point","coordinates":[59.685,41.98444]}} +,{"name":"Daule","id":"51559","nametype":"Valid","recclass":"L5","mass":"6580","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"-1.870890","reclong":"-79.957560","geolocation":{"type":"Point","coordinates":[-79.95756,-1.87089]}} +,{"name":"De Cewsville","id":"6621","nametype":"Valid","recclass":"H6","mass":"340","fall":"Fell","year":"1887-01-01T00:00:00.000","reclat":"43.000000","reclong":"-80.000000","geolocation":{"type":"Point","coordinates":[-80,43]}} +,{"name":"Deal","id":"6634","nametype":"Valid","recclass":"L6","mass":"28","fall":"Fell","year":"1829-01-01T00:00:00.000","reclat":"40.250000","reclong":"-74.000000","geolocation":{"type":"Point","coordinates":[-74,40.25]},":@computed_region_nnqa_25f4":"2491"} +,{"name":"Delhi","id":"6642","nametype":"Valid","recclass":"L5","mass":"0.8","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"28.566670","reclong":"77.250000","geolocation":{"type":"Point","coordinates":[77.25,28.56667]}} +,{"name":"Demina","id":"6649","nametype":"Valid","recclass":"L6","mass":"16400","fall":"Fell","year":"1911-01-01T00:00:00.000","reclat":"51.466670","reclong":"84.766670","geolocation":{"type":"Point","coordinates":[84.76667,51.46667]}} +,{"name":"Denver","id":"6660","nametype":"Valid","recclass":"L6","mass":"230","fall":"Fell","year":"1967-01-01T00:00:00.000","reclat":"39.782500","reclong":"-104.930560","geolocation":{"type":"Point","coordinates":[-104.93056,39.7825]},":@computed_region_cbhk_fwbd":"9",":@computed_region_nnqa_25f4":"1444"} +,{"name":"Dergaon","id":"6664","nametype":"Valid","recclass":"H5","mass":"12500","fall":"Fell","year":"2001-01-01T00:00:00.000","reclat":"26.683330","reclong":"93.866670","geolocation":{"type":"Point","coordinates":[93.86667,26.68333]}} +,{"name":"Desuri","id":"6693","nametype":"Valid","recclass":"H6","mass":"25400","fall":"Fell","year":"1962-01-01T00:00:00.000","reclat":"25.733330","reclong":"73.616670","geolocation":{"type":"Point","coordinates":[73.61667,25.73333]}} +,{"name":"Devgaon","id":"6694","nametype":"Valid","recclass":"H3.8","mass":"12000","fall":"Fell","year":"2001-01-01T00:00:00.000","reclat":"19.000000","reclong":"81.000000","geolocation":{"type":"Point","coordinates":[81,19]}} +,{"name":"Devri-Khera","id":"6696","nametype":"Valid","recclass":"L6","mass":"1140","fall":"Fell","year":"1994-01-01T00:00:00.000","reclat":"24.225000","reclong":"76.525000","geolocation":{"type":"Point","coordinates":[76.525,24.225]}} +,{"name":"Dhajala","id":"6698","nametype":"Valid","recclass":"H3.8","mass":"45000","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"22.377780","reclong":"71.427220","geolocation":{"type":"Point","coordinates":[71.42722,22.37778]}} +,{"name":"Dharwar","id":"6699","nametype":"Valid","recclass":"OC","mass":"1800","fall":"Fell","year":"1848-01-01T00:00:00.000","reclat":"14.883330","reclong":"75.600000","geolocation":{"type":"Point","coordinates":[75.6,14.88333]}} +,{"name":"Dhurmsala","id":"7640","nametype":"Valid","recclass":"LL6","mass":"32000","fall":"Fell","year":"1860-01-01T00:00:00.000","reclat":"32.233330","reclong":"76.466670","geolocation":{"type":"Point","coordinates":[76.46667,32.23333]}} +,{"name":"Didim","id":"47350","nametype":"Valid","recclass":"H3-5","mass":"3396","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"37.351720","reclong":"27.329970","geolocation":{"type":"Point","coordinates":[27.32997,37.35172]}} +,{"name":"Diep River","id":"7642","nametype":"Valid","recclass":"L6","mass":"1000","fall":"Fell","year":"1906-01-01T00:00:00.000","reclat":"-33.750000","reclong":"18.566670","geolocation":{"type":"Point","coordinates":[18.56667,-33.75]}} +,{"name":"Distrito Quebracho","id":"7649","nametype":"Valid","recclass":"H4","mass":"400","fall":"Fell","year":"1957-01-01T00:00:00.000","reclat":"-31.883330","reclong":"-60.466670","geolocation":{"type":"Point","coordinates":[-60.46667,-31.88333]}} +,{"name":"Djati-Pengilon","id":"7652","nametype":"Valid","recclass":"H6","mass":"166000","fall":"Fell","year":"1884-01-01T00:00:00.000","reclat":"-7.500000","reclong":"111.500000","geolocation":{"type":"Point","coordinates":[111.5,-7.5]}} +,{"name":"Djermaia","id":"7656","nametype":"Valid","recclass":"H","mass":"3950","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"12.733330","reclong":"15.050000","geolocation":{"type":"Point","coordinates":[15.05,12.73333]}} +,{"name":"Djoumine","id":"7657","nametype":"Valid","recclass":"H5-6","mass":"10000","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"36.950000","reclong":"9.550000","geolocation":{"type":"Point","coordinates":[9.55,36.95]}} +,{"name":"Dokachi","id":"7658","nametype":"Valid","recclass":"H5","mass":"3840","fall":"Fell","year":"1903-01-01T00:00:00.000","reclat":"23.500000","reclong":"90.333330","geolocation":{"type":"Point","coordinates":[90.33333,23.5]}} +,{"name":"Dolgovoli","id":"7659","nametype":"Valid","recclass":"L6","mass":"1600","fall":"Fell","year":"1864-01-01T00:00:00.000","reclat":"50.750000","reclong":"25.300000","geolocation":{"type":"Point","coordinates":[25.3,50.75]}} +,{"name":"Domanitch","id":"7661","nametype":"Valid","recclass":"L5","mass":"438","fall":"Fell","year":"1907-01-01T00:00:00.000","reclat":"40.000000","reclong":"29.000000","geolocation":{"type":"Point","coordinates":[29,40]}} +,{"name":"Dong Ujimqin Qi","id":"7706","nametype":"Valid","recclass":"Mesosiderite","mass":"128800","fall":"Fell","year":"1995-01-01T00:00:00.000","reclat":"45.500000","reclong":"119.033330","geolocation":{"type":"Point","coordinates":[119.03333,45.5]}} +,{"name":"Donga Kohrod","id":"7707","nametype":"Valid","recclass":"H6","mass":"230","fall":"Fell","year":"1899-01-01T00:00:00.000","reclat":"21.866670","reclong":"82.450000","geolocation":{"type":"Point","coordinates":[82.45,21.86667]}} +,{"name":"Dongtai","id":"7708","nametype":"Valid","recclass":"LL6","mass":"5500","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"32.916670","reclong":"120.783330","geolocation":{"type":"Point","coordinates":[120.78333,32.91667]}} +,{"name":"Doroninsk","id":"7718","nametype":"Valid","recclass":"H5-7","mass":"3891","fall":"Fell","year":"1805-01-01T00:00:00.000","reclat":"51.200000","reclong":"112.300000","geolocation":{"type":"Point","coordinates":[112.3,51.2]}} +,{"name":"Dosso","id":"7722","nametype":"Valid","recclass":"L6","mass":"1250","fall":"Fell","year":"1962-01-01T00:00:00.000","reclat":"13.050000","reclong":"3.166670","geolocation":{"type":"Point","coordinates":[3.16667,13.05]}} +,{"name":"Douar Mghila","id":"7723","nametype":"Valid","recclass":"LL6","mass":"1161","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"32.333330","reclong":"-6.300000","geolocation":{"type":"Point","coordinates":[-6.3,32.33333]}} +,{"name":"Dowa","id":"7725","nametype":"Valid","recclass":"Stone-uncl","mass":"642","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"-13.666670","reclong":"33.916670","geolocation":{"type":"Point","coordinates":[33.91667,-13.66667]}} +,{"name":"Drake Creek","id":"7728","nametype":"Valid","recclass":"L6","mass":"5000","fall":"Fell","year":"1827-01-01T00:00:00.000","reclat":"36.400000","reclong":"-86.500000","geolocation":{"type":"Point","coordinates":[-86.5,36.4]},":@computed_region_cbhk_fwbd":"39",":@computed_region_nnqa_25f4":"2115"} +,{"name":"Dresden (Ontario)","id":"7731","nametype":"Valid","recclass":"H6","mass":"47700","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"42.520000","reclong":"-82.260000","geolocation":{"type":"Point","coordinates":[-82.26,42.52]}} +,{"name":"Dubrovnik","id":"7736","nametype":"Valid","recclass":"L3-6","mass":"1900","fall":"Fell","year":"1951-01-01T00:00:00.000","reclat":"42.458330","reclong":"18.441670","geolocation":{"type":"Point","coordinates":[18.44167,42.45833]}} +,{"name":"Dunbogan","id":"7743","nametype":"Valid","recclass":"L6","mass":"30","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"-31.666670","reclong":"152.833330","geolocation":{"type":"Point","coordinates":[152.83333,-31.66667]}} +,{"name":"Dundrum","id":"7745","nametype":"Valid","recclass":"H5","mass":"2270","fall":"Fell","year":"1865-01-01T00:00:00.000","reclat":"52.550000","reclong":"-8.033330","geolocation":{"type":"Point","coordinates":[-8.03333,52.55]}} +,{"name":"Dunhua","id":"7749","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"43.333330","reclong":"128.250000","geolocation":{"type":"Point","coordinates":[128.25,43.33333]}} +,{"name":"Durala","id":"7750","nametype":"Valid","recclass":"L6","mass":"13200","fall":"Fell","year":"1815-01-01T00:00:00.000","reclat":"30.300000","reclong":"76.633330","geolocation":{"type":"Point","coordinates":[76.63333,30.3]}} +,{"name":"Duruma","id":"7752","nametype":"Valid","recclass":"L6","mass":"577","fall":"Fell","year":"1853-01-01T00:00:00.000","reclat":"-4.000000","reclong":"39.500000","geolocation":{"type":"Point","coordinates":[39.5,-4]}} +,{"name":"Duwun","id":"7754","nametype":"Valid","recclass":"L6","mass":"2117","fall":"Fell","year":"1943-01-01T00:00:00.000","reclat":"33.433330","reclong":"127.266670","geolocation":{"type":"Point","coordinates":[127.26667,33.43333]}} +,{"name":"Dwaleni","id":"7755","nametype":"Valid","recclass":"H4-6","mass":"3230","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"-27.200000","reclong":"31.316670","geolocation":{"type":"Point","coordinates":[31.31667,-27.2]}} +,{"name":"Dyalpur","id":"7757","nametype":"Valid","recclass":"Ureilite","mass":"300","fall":"Fell","year":"1872-01-01T00:00:00.000","reclat":"26.250000","reclong":"82.000000","geolocation":{"type":"Point","coordinates":[82,26.25]}} +,{"name":"Dyarrl Island","id":"7758","nametype":"Valid","recclass":"Mesosiderite-A1","mass":"188","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"-3.000000","reclong":"151.000000","geolocation":{"type":"Point","coordinates":[151,-3]}} +,{"name":"Eagle","id":"7760","nametype":"Valid","recclass":"EL6","mass":"10000","fall":"Fell","year":"1947-01-01T00:00:00.000","reclat":"40.781670","reclong":"-96.471670","geolocation":{"type":"Point","coordinates":[-96.47167,40.78167]},":@computed_region_cbhk_fwbd":"19",":@computed_region_nnqa_25f4":"462"} +,{"name":"Ehole","id":"7774","nametype":"Valid","recclass":"H5","mass":"2400","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"-17.300000","reclong":"15.833330","geolocation":{"type":"Point","coordinates":[15.83333,-17.3]}} +,{"name":"Eichstädt","id":"7775","nametype":"Valid","recclass":"H5","mass":"3000","fall":"Fell","year":"1785-01-01T00:00:00.000","reclat":"48.900000","reclong":"11.216670","geolocation":{"type":"Point","coordinates":[11.21667,48.9]}} +,{"name":"Ekeby","id":"7776","nametype":"Valid","recclass":"H4","mass":"3336","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"56.033330","reclong":"13.000000","geolocation":{"type":"Point","coordinates":[13,56.03333]}} +,{"name":"Ekh Khera","id":"7777","nametype":"Valid","recclass":"H6","mass":"840","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"28.266670","reclong":"78.783330","geolocation":{"type":"Point","coordinates":[78.78333,28.26667]}} +,{"name":"El Idrissia","id":"7807","nametype":"Valid","recclass":"L6","mass":"10000","fall":"Fell","year":"1989-01-01T00:00:00.000","reclat":"34.416670","reclong":"3.250000","geolocation":{"type":"Point","coordinates":[3.25,34.41667]}} +,{"name":"El Paso de Aguila","id":"45977","nametype":"Valid","recclass":"H5","mass":"17226","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"25.370000","reclong":"-97.370000","geolocation":{"type":"Point","coordinates":[-97.37,25.37]}} +,{"name":"El Tigre","id":"7819","nametype":"Valid","recclass":"L6","mass":"5000","fall":"Fell","year":"1993-01-01T00:00:00.000","reclat":"19.967220","reclong":"-103.051670","geolocation":{"type":"Point","coordinates":[-103.05167,19.96722]}} +,{"name":"Elbert","id":"7822","nametype":"Valid","recclass":"LL6","mass":"680.5","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"39.246670","reclong":"-104.588170","geolocation":{"type":"Point","coordinates":[-104.58817,39.24667]},":@computed_region_cbhk_fwbd":"9",":@computed_region_nnqa_25f4":"88"} +,{"name":"Elbogen","id":"7823","nametype":"Valid","recclass":"Iron, IID","mass":"107000","fall":"Fell","year":"1400-01-01T00:00:00.000","reclat":"50.183330","reclong":"12.733330","geolocation":{"type":"Point","coordinates":[12.73333,50.18333]}} +,{"name":"Elenovka","id":"7824","nametype":"Valid","recclass":"L5","mass":"54640","fall":"Fell","year":"1951-01-01T00:00:00.000","reclat":"47.833330","reclong":"37.666670","geolocation":{"type":"Point","coordinates":[37.66667,47.83333]}} +,{"name":"Ellemeet","id":"10019","nametype":"Valid","recclass":"Diogenite","mass":"1470","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"51.750000","reclong":"4.000000","geolocation":{"type":"Point","coordinates":[4,51.75]}} +,{"name":"Emmaville","id":"10033","nametype":"Valid","recclass":"Eucrite-mmict","mass":"127","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"-29.466670","reclong":"151.616670","geolocation":{"type":"Point","coordinates":[151.61667,-29.46667]}} +,{"name":"Enshi","id":"10038","nametype":"Valid","recclass":"H5","mass":"8000","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"30.300000","reclong":"109.500000","geolocation":{"type":"Point","coordinates":[109.5,30.3]}} +,{"name":"Ensisheim","id":"10039","nametype":"Valid","recclass":"LL6","mass":"127000","fall":"Fell","year":"1492-01-01T00:00:00.000","reclat":"47.866670","reclong":"7.350000","geolocation":{"type":"Point","coordinates":[7.35,47.86667]}} +,{"name":"Épinal","id":"10041","nametype":"Valid","recclass":"H5","mass":"277","fall":"Fell","year":"1822-01-01T00:00:00.000","reclat":"48.183330","reclong":"6.466670","geolocation":{"type":"Point","coordinates":[6.46667,48.18333]}} +,{"name":"Erakot","id":"10042","nametype":"Valid","recclass":"CM2","mass":"113","fall":"Fell","year":"1940-01-01T00:00:00.000","reclat":"19.033330","reclong":"81.891670","geolocation":{"type":"Point","coordinates":[81.89167,19.03333]}} +,{"name":"Erevan","id":"10043","nametype":"Valid","recclass":"Howardite","mass":"107.2","fall":"Fell","year":"1911-01-01T00:00:00.000","reclat":"40.300000","reclong":"44.500000","geolocation":{"type":"Point","coordinates":[44.5,40.3]}} +,{"name":"Ergheo","id":"10044","nametype":"Valid","recclass":"L5","mass":"20000","fall":"Fell","year":"1889-01-01T00:00:00.000","reclat":"1.166670","reclong":"44.166670","geolocation":{"type":"Point","coordinates":[44.16667,1.16667]}} +,{"name":"Erxleben","id":"10049","nametype":"Valid","recclass":"H6","mass":"2250","fall":"Fell","year":"1812-01-01T00:00:00.000","reclat":"52.216670","reclong":"11.250000","geolocation":{"type":"Point","coordinates":[11.25,52.21667]}} +,{"name":"Esnandes","id":"10051","nametype":"Valid","recclass":"L6","mass":"1500","fall":"Fell","year":"1837-01-01T00:00:00.000","reclat":"46.250000","reclong":"-1.100000","geolocation":{"type":"Point","coordinates":[-1.1,46.25]}} +,{"name":"Essebi","id":"10055","nametype":"Valid","recclass":"C2-ung","mass":"500","fall":"Fell","year":"1957-01-01T00:00:00.000","reclat":"2.883330","reclong":"30.833330","geolocation":{"type":"Point","coordinates":[30.83333,2.88333]}} +,{"name":"Estherville","id":"10059","nametype":"Valid","recclass":"Mesosiderite-A3/4","mass":"320000","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"43.416670","reclong":"-94.833330","geolocation":{"type":"Point","coordinates":[-94.83333,43.41667]},":@computed_region_cbhk_fwbd":"16",":@computed_region_nnqa_25f4":"277"} +,{"name":"Farmington","id":"10074","nametype":"Valid","recclass":"L5","mass":"89400","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"39.750000","reclong":"-97.033330","geolocation":{"type":"Point","coordinates":[-97.03333,39.75]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1300"} +,{"name":"Farmville","id":"10075","nametype":"Valid","recclass":"H4","mass":"56000","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"35.550000","reclong":"-77.533330","geolocation":{"type":"Point","coordinates":[-77.53333,35.55]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"2439"} +,{"name":"Favars","id":"10078","nametype":"Valid","recclass":"H5","mass":"1500","fall":"Fell","year":"1844-01-01T00:00:00.000","reclat":"44.383330","reclong":"2.816670","geolocation":{"type":"Point","coordinates":[2.81667,44.38333]}} +,{"name":"Fayetteville","id":"10079","nametype":"Valid","recclass":"H4","mass":"2360","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"36.050000","reclong":"-94.166670","geolocation":{"type":"Point","coordinates":[-94.16667,36.05]},":@computed_region_cbhk_fwbd":"15",":@computed_region_nnqa_25f4":"70"} +,{"name":"Feid Chair","id":"10080","nametype":"Valid","recclass":"H4","mass":"380","fall":"Fell","year":"1875-01-01T00:00:00.000","reclat":"36.883330","reclong":"8.450000","geolocation":{"type":"Point","coordinates":[8.45,36.88333]}} +,{"name":"Felix","id":"10081","nametype":"Valid","recclass":"CO3.3","mass":"3200","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"32.533330","reclong":"-87.166670","geolocation":{"type":"Point","coordinates":[-87.16667,32.53333]},":@computed_region_cbhk_fwbd":"29",":@computed_region_nnqa_25f4":"1631"} +,{"name":"Fenghsien-Ku","id":"10086","nametype":"Valid","recclass":"H5","mass":"82","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"34.600000","reclong":"116.750000","geolocation":{"type":"Point","coordinates":[116.75,34.6]}} +,{"name":"Ferguson","id":"10088","nametype":"Valid","recclass":"OC","mass":"220","fall":"Fell","year":"1889-01-01T00:00:00.000","reclat":"36.100000","reclong":"-81.416670","geolocation":{"type":"Point","coordinates":[-81.41667,36.1]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"2331"} +,{"name":"Fermo","id":"10091","nametype":"Valid","recclass":"H3-5","mass":"10200","fall":"Fell","year":"1996-01-01T00:00:00.000","reclat":"43.181110","reclong":"13.753330","geolocation":{"type":"Point","coordinates":[13.75333,43.18111]}} +,{"name":"Fisher","id":"10107","nametype":"Valid","recclass":"L6","mass":"17600","fall":"Fell","year":"1894-01-01T00:00:00.000","reclat":"47.816670","reclong":"-96.850000","geolocation":{"type":"Point","coordinates":[-96.85,47.81667]},":@computed_region_cbhk_fwbd":"1",":@computed_region_nnqa_25f4":"385"} +,{"name":"Florence","id":"10111","nametype":"Valid","recclass":"H3","mass":"3640","fall":"Fell","year":"1922-01-01T00:00:00.000","reclat":"30.833330","reclong":"-97.766670","geolocation":{"type":"Point","coordinates":[-97.76667,30.83333]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"807"} +,{"name":"Forest City","id":"10119","nametype":"Valid","recclass":"H5","mass":"152000","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"43.250000","reclong":"-93.666670","geolocation":{"type":"Point","coordinates":[-93.66667,43.25]},":@computed_region_cbhk_fwbd":"16",":@computed_region_nnqa_25f4":"1785"} +,{"name":"Forest Vale","id":"10120","nametype":"Valid","recclass":"H4","mass":"26000","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"-33.350000","reclong":"146.858330","geolocation":{"type":"Point","coordinates":[146.85833,-33.35]}} +,{"name":"Forksville","id":"10123","nametype":"Valid","recclass":"L6","mass":"6067","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"36.783330","reclong":"-78.083330","geolocation":{"type":"Point","coordinates":[-78.08333,36.78333]},":@computed_region_cbhk_fwbd":"40",":@computed_region_nnqa_25f4":"2839"} +,{"name":"Forsbach","id":"10163","nametype":"Valid","recclass":"H6","mass":"240","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"50.950000","reclong":"7.316670","geolocation":{"type":"Point","coordinates":[7.31667,50.95]}} +,{"name":"Forsyth","id":"10164","nametype":"Valid","recclass":"L6","mass":"16300","fall":"Fell","year":"1829-01-01T00:00:00.000","reclat":"33.016670","reclong":"-83.966670","geolocation":{"type":"Point","coordinates":[-83.96667,33.01667]},":@computed_region_cbhk_fwbd":"31",":@computed_region_nnqa_25f4":"1470"} +,{"name":"Fort Flatters","id":"10166","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1944-01-01T00:00:00.000","reclat":"28.250000","reclong":"7.000000","geolocation":{"type":"Point","coordinates":[7,28.25]}} +,{"name":"Frankfort (stone)","id":"10177","nametype":"Valid","recclass":"Howardite","mass":"650","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"34.483330","reclong":"-87.833330","geolocation":{"type":"Point","coordinates":[-87.83333,34.48333]},":@computed_region_cbhk_fwbd":"29",":@computed_region_nnqa_25f4":"99"} +,{"name":"Fuhe","id":"52412","nametype":"Valid","recclass":"L5","mass":"23000","fall":"Fell","year":"1945-01-01T00:00:00.000","reclat":"31.475560","reclong":"113.566940","geolocation":{"type":"Point","coordinates":[113.56694,31.47556]}} +,{"name":"Fukutomi","id":"10836","nametype":"Valid","recclass":"L5","mass":"11620","fall":"Fell","year":"1882-01-01T00:00:00.000","reclat":"33.183330","reclong":"130.200000","geolocation":{"type":"Point","coordinates":[130.2,33.18333]}} +,{"name":"Fünen","id":"10838","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1654-01-01T00:00:00.000","reclat":"55.333330","reclong":"10.333330","geolocation":{"type":"Point","coordinates":[10.33333,55.33333]}} +,{"name":"Futtehpur","id":"10839","nametype":"Valid","recclass":"L6","mass":"4000","fall":"Fell","year":"1822-01-01T00:00:00.000","reclat":"25.950000","reclong":"80.816670","geolocation":{"type":"Point","coordinates":[80.81667,25.95]}} +,{"name":"Fuyang","id":"10840","nametype":"Valid","recclass":"Stone-uncl","mass":"2500","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"32.900000","reclong":"115.900000","geolocation":{"type":"Point","coordinates":[115.9,32.9]}} +,{"name":"Galapian","id":"10846","nametype":"Valid","recclass":"H6","mass":"132.69999999999999","fall":"Fell","year":"1826-01-01T00:00:00.000","reclat":"44.300000","reclong":"0.400000","geolocation":{"type":"Point","coordinates":[0.4,44.3]}} +,{"name":"Galim (a)","id":"10848","nametype":"Valid","recclass":"LL6","mass":"36.1","fall":"Fell","year":"1952-01-01T00:00:00.000","reclat":"7.050000","reclong":"12.433330","geolocation":{"type":"Point","coordinates":[12.43333,7.05]}} +,{"name":"Galim (b)","id":"10849","nametype":"Valid","recclass":"EH3/4-an","mass":"28","fall":"Fell","year":"1952-01-01T00:00:00.000","reclat":"7.050000","reclong":"12.433330","geolocation":{"type":"Point","coordinates":[12.43333,7.05]}} +,{"name":"Galkiv","id":"10850","nametype":"Valid","recclass":"H4","mass":"5000","fall":"Fell","year":"1995-01-01T00:00:00.000","reclat":"51.683330","reclong":"30.783330","geolocation":{"type":"Point","coordinates":[30.78333,51.68333]}} +,{"name":"Gambat","id":"10851","nametype":"Valid","recclass":"L6","mass":"6400","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"27.350000","reclong":"68.533330","geolocation":{"type":"Point","coordinates":[68.53333,27.35]}} +,{"name":"Gao-Guenie","id":"10854","nametype":"Valid","recclass":"H5","fall":"Fell","year":"1960-01-01T00:00:00.000","reclat":"11.650000","reclong":"-2.183330","geolocation":{"type":"Point","coordinates":[-2.18333,11.65]}} +,{"name":"Garhi Yasin","id":"10860","nametype":"Valid","recclass":"Iron, IIE","mass":"380","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"27.883330","reclong":"68.533330","geolocation":{"type":"Point","coordinates":[68.53333,27.88333]}} +,{"name":"Garland","id":"10861","nametype":"Valid","recclass":"Diogenite-pm","mass":"102","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"41.683330","reclong":"-112.133330","geolocation":{"type":"Point","coordinates":[-112.13333,41.68333]},":@computed_region_cbhk_fwbd":"13",":@computed_region_nnqa_25f4":"2985"} +,{"name":"Gashua","id":"44882","nametype":"Valid","recclass":"L6","mass":"4162","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"12.850000","reclong":"11.033330","geolocation":{"type":"Point","coordinates":[11.03333,12.85]}} +,{"name":"Gasseltepaoua","id":"10866","nametype":"Valid","recclass":"H5","fall":"Fell","year":"2000-01-01T00:00:00.000","reclat":"14.150830","reclong":"-2.041670","geolocation":{"type":"Point","coordinates":[-2.04167,14.15083]}} +,{"name":"Geidam","id":"10870","nametype":"Valid","recclass":"H5","mass":"725","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"12.916670","reclong":"11.916670","geolocation":{"type":"Point","coordinates":[11.91667,12.91667]}} +,{"name":"Gifu","id":"10914","nametype":"Valid","recclass":"L6","mass":"14290","fall":"Fell","year":"1909-01-01T00:00:00.000","reclat":"35.533330","reclong":"136.883330","geolocation":{"type":"Point","coordinates":[136.88333,35.53333]}} +,{"name":"Girgenti","id":"10917","nametype":"Valid","recclass":"L6","mass":"18000","fall":"Fell","year":"1853-01-01T00:00:00.000","reclat":"37.316670","reclong":"13.566670","geolocation":{"type":"Point","coordinates":[13.56667,37.31667]}} +,{"name":"Git-Git","id":"10919","nametype":"Valid","recclass":"L6","mass":"480","fall":"Fell","year":"1947-01-01T00:00:00.000","reclat":"9.600000","reclong":"9.916670","geolocation":{"type":"Point","coordinates":[9.91667,9.6]}} +,{"name":"Glanerbrug","id":"10923","nametype":"Valid","recclass":"L/LL5","mass":"670","fall":"Fell","year":"1990-01-01T00:00:00.000","reclat":"52.200000","reclong":"6.866670","geolocation":{"type":"Point","coordinates":[6.86667,52.2]}} +,{"name":"Glanggang","id":"10924","nametype":"Valid","recclass":"H5-6","mass":"1303","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"-7.250000","reclong":"107.700000","geolocation":{"type":"Point","coordinates":[107.7,-7.25]}} +,{"name":"Glasatovo","id":"10926","nametype":"Valid","recclass":"H4","mass":"152000","fall":"Fell","year":"1918-01-01T00:00:00.000","reclat":"57.350000","reclong":"37.616670","geolocation":{"type":"Point","coordinates":[37.61667,57.35]}} +,{"name":"Glatton","id":"10930","nametype":"Valid","recclass":"L6","mass":"767","fall":"Fell","year":"1991-01-01T00:00:00.000","reclat":"52.459720","reclong":"-0.300000","geolocation":{"type":"Point","coordinates":[-0.3,52.45972]}} +,{"name":"Gnadenfrei","id":"10936","nametype":"Valid","recclass":"H5","mass":"1750","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"50.666670","reclong":"16.766670","geolocation":{"type":"Point","coordinates":[16.76667,50.66667]}} +,{"name":"Gopalpur","id":"10948","nametype":"Valid","recclass":"H6","mass":"1600","fall":"Fell","year":"1865-01-01T00:00:00.000","reclat":"24.233330","reclong":"89.050000","geolocation":{"type":"Point","coordinates":[89.05,24.23333]}} +,{"name":"Gorlovka","id":"10949","nametype":"Valid","recclass":"H3.7","mass":"3618","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"48.283330","reclong":"38.083330","geolocation":{"type":"Point","coordinates":[38.08333,48.28333]}} +,{"name":"Granes","id":"10956","nametype":"Valid","recclass":"L6","mass":"9000","fall":"Fell","year":"1964-01-01T00:00:00.000","reclat":"42.900000","reclong":"2.250000","geolocation":{"type":"Point","coordinates":[2.25,42.9]}} +,{"name":"Grefsheim","id":"11196","nametype":"Valid","recclass":"L5","mass":"45.5","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"60.666670","reclong":"11.000000","geolocation":{"type":"Point","coordinates":[11,60.66667]}} +,{"name":"Grimsby","id":"50911","nametype":"Valid","recclass":"H5","mass":"215","fall":"Fell","year":"2009-01-01T00:00:00.000","reclat":"43.200000","reclong":"-79.616670","geolocation":{"type":"Point","coordinates":[-79.61667,43.2]}} +,{"name":"Grosnaja","id":"11206","nametype":"Valid","recclass":"CV3","mass":"3500","fall":"Fell","year":"1861-01-01T00:00:00.000","reclat":"43.666670","reclong":"45.383330","geolocation":{"type":"Point","coordinates":[45.38333,43.66667]}} +,{"name":"Gross-Divina","id":"11207","nametype":"Valid","recclass":"H5","mass":"10500","fall":"Fell","year":"1837-01-01T00:00:00.000","reclat":"49.266670","reclong":"18.716670","geolocation":{"type":"Point","coordinates":[18.71667,49.26667]}} +,{"name":"Grossliebenthal","id":"11208","nametype":"Valid","recclass":"L6","mass":"8000","fall":"Fell","year":"1881-01-01T00:00:00.000","reclat":"46.350000","reclong":"30.583330","geolocation":{"type":"Point","coordinates":[30.58333,46.35]}} +,{"name":"Grüneberg","id":"11426","nametype":"Valid","recclass":"H4","mass":"1000","fall":"Fell","year":"1841-01-01T00:00:00.000","reclat":"51.933330","reclong":"15.500000","geolocation":{"type":"Point","coordinates":[15.5,51.93333]}} +,{"name":"Grzempach","id":"11429","nametype":"Valid","recclass":"H5","mass":"690","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"52.866670","reclong":"16.633330","geolocation":{"type":"Point","coordinates":[16.63333,52.86667]}} +,{"name":"Gualeguaychú","id":"11432","nametype":"Valid","recclass":"H6","mass":"22000","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"-33.000000","reclong":"-58.616670","geolocation":{"type":"Point","coordinates":[-58.61667,-33]}} +,{"name":"Guangmingshan","id":"11435","nametype":"Valid","recclass":"H5","mass":"2910","fall":"Fell","year":"1996-01-01T00:00:00.000","reclat":"39.804170","reclong":"122.763890","geolocation":{"type":"Point","coordinates":[122.76389,39.80417]}} +,{"name":"Guangnan","id":"11436","nametype":"Valid","recclass":"L6","fall":"Fell","year":"1983-01-01T00:00:00.000","reclat":"24.100000","reclong":"105.000000","geolocation":{"type":"Point","coordinates":[105,24.1]}} +,{"name":"Guangrao","id":"11437","nametype":"Valid","recclass":"L6","mass":"1900","fall":"Fell","year":"1980-01-01T00:00:00.000","reclat":"37.100000","reclong":"118.400000","geolocation":{"type":"Point","coordinates":[118.4,37.1]}} +,{"name":"Guareña","id":"11439","nametype":"Valid","recclass":"H6","mass":"39000","fall":"Fell","year":"1892-01-01T00:00:00.000","reclat":"38.733330","reclong":"-6.016670","geolocation":{"type":"Point","coordinates":[-6.01667,38.73333]}} +,{"name":"Guêa","id":"11440","nametype":"Valid","recclass":"Stone-uncl","mass":"1915","fall":"Fell","year":"1891-01-01T00:00:00.000","reclat":"43.766670","reclong":"20.233330","geolocation":{"type":"Point","coordinates":[20.23333,43.76667]}} +,{"name":"Guibga","id":"11442","nametype":"Valid","recclass":"L5","mass":"288","fall":"Fell","year":"1972-01-01T00:00:00.000","reclat":"13.500000","reclong":"-0.683330","geolocation":{"type":"Point","coordinates":[-0.68333,13.5]}} +,{"name":"Guidder","id":"11443","nametype":"Valid","recclass":"LL5","mass":"968","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"9.916670","reclong":"13.983330","geolocation":{"type":"Point","coordinates":[13.98333,9.91667]}} +,{"name":"Gujargaon","id":"11448","nametype":"Valid","recclass":"H5","mass":"2449","fall":"Fell","year":"1982-01-01T00:00:00.000","reclat":"22.983330","reclong":"76.050000","geolocation":{"type":"Point","coordinates":[76.05,22.98333]}} +,{"name":"Gujba","id":"11449","nametype":"Valid","recclass":"CBa","mass":"100000","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"11.491670","reclong":"11.658330","geolocation":{"type":"Point","coordinates":[11.65833,11.49167]}} +,{"name":"Gumoschnik","id":"11450","nametype":"Valid","recclass":"H5","mass":"5700","fall":"Fell","year":"1904-01-01T00:00:00.000","reclat":"42.900000","reclong":"24.700000","geolocation":{"type":"Point","coordinates":[24.7,42.9]}} +,{"name":"Gurram Konda","id":"11464","nametype":"Valid","recclass":"L6","mass":"28","fall":"Fell","year":"1814-01-01T00:00:00.000","reclat":"13.783330","reclong":"78.566670","geolocation":{"type":"Point","coordinates":[78.56667,13.78333]}} +,{"name":"Gursum","id":"11465","nametype":"Valid","recclass":"H4/5","mass":"34650","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"9.366670","reclong":"42.416670","geolocation":{"type":"Point","coordinates":[42.41667,9.36667]}} +,{"name":"Gütersloh","id":"11466","nametype":"Valid","recclass":"H3/4","mass":"1000","fall":"Fell","year":"1851-01-01T00:00:00.000","reclat":"51.916670","reclong":"8.383330","geolocation":{"type":"Point","coordinates":[8.38333,51.91667]}} +,{"name":"Gyokukei","id":"11467","nametype":"Valid","recclass":"OC","mass":"1320","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"35.000000","reclong":"127.500000","geolocation":{"type":"Point","coordinates":[127.5,35]}} +,{"name":"Hachi-oji","id":"11468","nametype":"Valid","recclass":"H?","mass":"0.2","fall":"Fell","year":"1817-01-01T00:00:00.000","reclat":"35.650000","reclong":"139.333330","geolocation":{"type":"Point","coordinates":[139.33333,35.65]}} +,{"name":"Hainaut","id":"11472","nametype":"Valid","recclass":"H3-6","mass":"9000","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"50.316670","reclong":"3.733330","geolocation":{"type":"Point","coordinates":[3.73333,50.31667]}} +,{"name":"Hallingeberg","id":"11479","nametype":"Valid","recclass":"L3.4","mass":"1456","fall":"Fell","year":"1944-01-01T00:00:00.000","reclat":"57.816670","reclong":"16.233330","geolocation":{"type":"Point","coordinates":[16.23333,57.81667]}} +,{"name":"Hamlet","id":"11485","nametype":"Valid","recclass":"LL4","mass":"3710","fall":"Fell","year":"1959-01-01T00:00:00.000","reclat":"41.383330","reclong":"-86.600000","geolocation":{"type":"Point","coordinates":[-86.6,41.38333]},":@computed_region_cbhk_fwbd":"35",":@computed_region_nnqa_25f4":"1205"} +,{"name":"Haraiya","id":"11824","nametype":"Valid","recclass":"Eucrite-mmict","mass":"1000","fall":"Fell","year":"1878-01-01T00:00:00.000","reclat":"26.800000","reclong":"82.533330","geolocation":{"type":"Point","coordinates":[82.53333,26.8]}} +,{"name":"Haripura","id":"11829","nametype":"Valid","recclass":"CM2","mass":"315","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"28.383330","reclong":"75.783330","geolocation":{"type":"Point","coordinates":[75.78333,28.38333]}} +,{"name":"Harleton","id":"11830","nametype":"Valid","recclass":"L6","mass":"8360","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"32.675000","reclong":"-94.511670","geolocation":{"type":"Point","coordinates":[-94.51167,32.675]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"2025"} +,{"name":"Harrison County","id":"11842","nametype":"Valid","recclass":"L6","mass":"680","fall":"Fell","year":"1859-01-01T00:00:00.000","reclat":"38.250000","reclong":"-86.166670","geolocation":{"type":"Point","coordinates":[-86.16667,38.25]},":@computed_region_cbhk_fwbd":"35",":@computed_region_nnqa_25f4":"1855"} +,{"name":"Hashima","id":"11848","nametype":"Valid","recclass":"H4","mass":"1110.5999999999999","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"35.294500","reclong":"136.700330","geolocation":{"type":"Point","coordinates":[136.70033,35.2945]}} +,{"name":"Hassi-Jekna","id":"11852","nametype":"Valid","recclass":"Iron, IAB-sHL","mass":"1250","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"28.950000","reclong":"0.816670","geolocation":{"type":"Point","coordinates":[0.81667,28.95]}} +,{"name":"Hatford","id":"11855","nametype":"Valid","recclass":"Stone-uncl","mass":"29000","fall":"Fell","year":"1628-01-01T00:00:00.000","reclat":"51.650000","reclong":"-1.516670","geolocation":{"type":"Point","coordinates":[-1.51667,51.65]}} +,{"name":"Haverö","id":"11859","nametype":"Valid","recclass":"Ureilite","mass":"1544","fall":"Fell","year":"1971-01-01T00:00:00.000","reclat":"60.245560","reclong":"22.061940","geolocation":{"type":"Point","coordinates":[22.06194,60.24556]}} +,{"name":"Hedeskoga","id":"11869","nametype":"Valid","recclass":"H5","mass":"3500","fall":"Fell","year":"1922-01-01T00:00:00.000","reclat":"55.466670","reclong":"13.783330","geolocation":{"type":"Point","coordinates":[13.78333,55.46667]}} +,{"name":"Hedjaz","id":"11870","nametype":"Valid","recclass":"L3.7-6","mass":"6100","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"27.333330","reclong":"35.666670","geolocation":{"type":"Point","coordinates":[35.66667,27.33333]}} +,{"name":"Heredia","id":"11875","nametype":"Valid","recclass":"H5","mass":"1000","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"10.000000","reclong":"-84.100000","geolocation":{"type":"Point","coordinates":[-84.1,10]}} +,{"name":"Hessle","id":"11878","nametype":"Valid","recclass":"H5","mass":"20000","fall":"Fell","year":"1869-01-01T00:00:00.000","reclat":"59.850000","reclong":"17.666670","geolocation":{"type":"Point","coordinates":[17.66667,59.85]}} +,{"name":"Higashi-koen","id":"11883","nametype":"Valid","recclass":"H5","mass":"750","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"33.600000","reclong":"130.433330","geolocation":{"type":"Point","coordinates":[130.43333,33.6]}} +,{"name":"High Possil","id":"11884","nametype":"Valid","recclass":"L6","mass":"4500","fall":"Fell","year":"1804-01-01T00:00:00.000","reclat":"55.900000","reclong":"-4.233330","geolocation":{"type":"Point","coordinates":[-4.23333,55.9]}} +,{"name":"Hiroshima","id":"11889","nametype":"Valid","recclass":"H5","mass":"414","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"34.450000","reclong":"132.383330","geolocation":{"type":"Point","coordinates":[132.38333,34.45]}} +,{"name":"Hoima","id":"44714","nametype":"Valid","recclass":"H6","mass":"167.7","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"1.345000","reclong":"31.472780","geolocation":{"type":"Point","coordinates":[31.47278,1.345]}} +,{"name":"Hökmark","id":"11893","nametype":"Valid","recclass":"L4","mass":"305.5","fall":"Fell","year":"1954-01-01T00:00:00.000","reclat":"64.433330","reclong":"21.200000","geolocation":{"type":"Point","coordinates":[21.2,64.43333]}} +,{"name":"Holbrook","id":"11894","nametype":"Valid","recclass":"L/LL6","mass":"220000","fall":"Fell","year":"1912-01-01T00:00:00.000","reclat":"34.900000","reclong":"-110.183330","geolocation":{"type":"Point","coordinates":[-110.18333,34.9]},":@computed_region_cbhk_fwbd":"7",":@computed_region_nnqa_25f4":"990"} +,{"name":"Holetta","id":"11895","nametype":"Valid","recclass":"Stone-uncl","mass":"1415","fall":"Fell","year":"1923-01-01T00:00:00.000","reclat":"9.066670","reclong":"38.416670","geolocation":{"type":"Point","coordinates":[38.41667,9.06667]}} +,{"name":"Homestead","id":"11901","nametype":"Valid","recclass":"L5","mass":"230000","fall":"Fell","year":"1875-01-01T00:00:00.000","reclat":"41.800000","reclong":"-91.866670","geolocation":{"type":"Point","coordinates":[-91.86667,41.8]},":@computed_region_cbhk_fwbd":"16",":@computed_region_nnqa_25f4":"284"} +,{"name":"Honolulu","id":"11904","nametype":"Valid","recclass":"L5","mass":"2420","fall":"Fell","year":"1825-01-01T00:00:00.000","reclat":"21.300000","reclong":"-157.866670","geolocation":{"type":"Point","coordinates":[-157.86667,21.3]},":@computed_region_cbhk_fwbd":"4",":@computed_region_nnqa_25f4":"1657"} +,{"name":"Hotse","id":"11913","nametype":"Valid","recclass":"L6","mass":"180","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"35.666670","reclong":"115.500000","geolocation":{"type":"Point","coordinates":[115.5,35.66667]}} +,{"name":"Hoxie","id":"11915","nametype":"Valid","recclass":"OC","mass":"266.10000000000002","fall":"Fell","year":"1963-01-01T00:00:00.000","reclat":"39.350000","reclong":"-100.450000","geolocation":{"type":"Point","coordinates":[-100.45,39.35]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1293"} +,{"name":"Hraschina","id":"11916","nametype":"Valid","recclass":"Iron, IID","mass":"49000","fall":"Fell","year":"1751-01-01T00:00:00.000","reclat":"46.100000","reclong":"16.333330","geolocation":{"type":"Point","coordinates":[16.33333,46.1]}} +,{"name":"Huaxi","id":"54719","nametype":"Valid","recclass":"H5","mass":"1600","fall":"Fell","year":"2010-01-01T00:00:00.000","reclat":"26.464690","reclong":"106.632410","geolocation":{"type":"Point","coordinates":[106.63241,26.46469]}} +,{"name":"Hungen","id":"11986","nametype":"Valid","recclass":"H6","mass":"112","fall":"Fell","year":"1877-01-01T00:00:00.000","reclat":"50.300000","reclong":"8.916670","geolocation":{"type":"Point","coordinates":[8.91667,50.3]}} +,{"name":"Hvittis","id":"11989","nametype":"Valid","recclass":"EL6","mass":"14000","fall":"Fell","year":"1901-01-01T00:00:00.000","reclat":"61.183330","reclong":"22.683330","geolocation":{"type":"Point","coordinates":[22.68333,61.18333]}} +,{"name":"Ibbenbüren","id":"11992","nametype":"Valid","recclass":"Diogenite","mass":"2000","fall":"Fell","year":"1870-01-01T00:00:00.000","reclat":"52.283330","reclong":"7.700000","geolocation":{"type":"Point","coordinates":[7.7,52.28333]}} +,{"name":"Ibitira","id":"11993","nametype":"Valid","recclass":"Eucrite-mmict","mass":"2500","fall":"Fell","year":"1957-01-01T00:00:00.000","reclat":"-20.000000","reclong":"-45.000000","geolocation":{"type":"Point","coordinates":[-45,-20]}} +,{"name":"Ibrisim","id":"11994","nametype":"Valid","recclass":"OC","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"38.000000","reclong":"35.000000","geolocation":{"type":"Point","coordinates":[35,38]}} +,{"name":"Ichkala","id":"11995","nametype":"Valid","recclass":"H6","mass":"3973","fall":"Fell","year":"1936-01-01T00:00:00.000","reclat":"58.200000","reclong":"82.933330","geolocation":{"type":"Point","coordinates":[82.93333,58.2]}} +,{"name":"Idutywa","id":"12000","nametype":"Valid","recclass":"H5","mass":"3457","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"-32.100000","reclong":"28.333330","geolocation":{"type":"Point","coordinates":[28.33333,-32.1]}} +,{"name":"Iguaracu","id":"12003","nametype":"Valid","recclass":"H5","mass":"1200","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"-23.200000","reclong":"-51.833330","geolocation":{"type":"Point","coordinates":[-51.83333,-23.2]}} +,{"name":"Ijopega","id":"12004","nametype":"Valid","recclass":"H6","mass":"7330","fall":"Fell","year":"1975-01-01T00:00:00.000","reclat":"-6.033330","reclong":"145.366670","geolocation":{"type":"Point","coordinates":[145.36667,-6.03333]}} +,{"name":"Indarch","id":"12027","nametype":"Valid","recclass":"EH4","mass":"27000","fall":"Fell","year":"1891-01-01T00:00:00.000","reclat":"39.750000","reclong":"46.666670","geolocation":{"type":"Point","coordinates":[46.66667,39.75]}} +,{"name":"Independence","id":"12028","nametype":"Valid","recclass":"L6","mass":"880","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"39.083330","reclong":"-94.400000","geolocation":{"type":"Point","coordinates":[-94.4,39.08333]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"525"} +,{"name":"Inner Mongolia","id":"12037","nametype":"Valid","recclass":"L6","mass":"3000","fall":"Fell","year":"1963-01-01T00:00:00.000","reclat":"41.000000","reclong":"112.000000","geolocation":{"type":"Point","coordinates":[112,41]}} +,{"name":"Innisfree","id":"12039","nametype":"Valid","recclass":"L5","mass":"4576","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"53.415000","reclong":"-111.337500","geolocation":{"type":"Point","coordinates":[-111.3375,53.415]}} +,{"name":"Ipiranga","id":"12043","nametype":"Valid","recclass":"H6","mass":"7000","fall":"Fell","year":"1972-01-01T00:00:00.000","reclat":"-25.500000","reclong":"-54.500000","geolocation":{"type":"Point","coordinates":[-54.5,-25.5]}} +,{"name":"Ishinga","id":"12049","nametype":"Valid","recclass":"H","mass":"1300","fall":"Fell","year":"1954-01-01T00:00:00.000","reclat":"-8.933330","reclong":"33.800000","geolocation":{"type":"Point","coordinates":[33.8,-8.93333]}} +,{"name":"Isthilart","id":"12053","nametype":"Valid","recclass":"H5","mass":"3050","fall":"Fell","year":"1928-01-01T00:00:00.000","reclat":"-31.183330","reclong":"-57.950000","geolocation":{"type":"Point","coordinates":[-57.95,-31.18333]}} +,{"name":"Itapicuru-Mirim","id":"12056","nametype":"Valid","recclass":"H5","mass":"2024","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"-3.400000","reclong":"-44.333330","geolocation":{"type":"Point","coordinates":[-44.33333,-3.4]}} +,{"name":"Itqiy","id":"12058","nametype":"Valid","recclass":"EH7-an","mass":"4720","fall":"Fell","year":"1990-01-01T00:00:00.000","reclat":"26.590830","reclong":"-12.952170","geolocation":{"type":"Point","coordinates":[-12.95217,26.59083]}} +,{"name":"Ivuna","id":"12063","nametype":"Valid","recclass":"CI1","mass":"704.5","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"-8.416670","reclong":"32.433330","geolocation":{"type":"Point","coordinates":[32.43333,-8.41667]}} +,{"name":"Jackalsfontein","id":"12065","nametype":"Valid","recclass":"L6","mass":"48000","fall":"Fell","year":"1903-01-01T00:00:00.000","reclat":"-32.500000","reclong":"21.900000","geolocation":{"type":"Point","coordinates":[21.9,-32.5]}} +,{"name":"Jajh deh Kot Lalu","id":"12067","nametype":"Valid","recclass":"EL6","mass":"973","fall":"Fell","year":"1926-01-01T00:00:00.000","reclat":"26.750000","reclong":"68.416670","geolocation":{"type":"Point","coordinates":[68.41667,26.75]}} +,{"name":"Jalanash","id":"12068","nametype":"Valid","recclass":"Ureilite","mass":"700","fall":"Fell","year":"1990-01-01T00:00:00.000"} +,{"name":"Jalandhar","id":"12069","nametype":"Valid","recclass":"Iron","mass":"1967","fall":"Fell","year":"1621-01-01T00:00:00.000","reclat":"31.000000","reclong":"75.000000","geolocation":{"type":"Point","coordinates":[75,31]}} +,{"name":"Jamkheir","id":"12072","nametype":"Valid","recclass":"H6","mass":"22","fall":"Fell","year":"1866-01-01T00:00:00.000","reclat":"18.750000","reclong":"75.333330","geolocation":{"type":"Point","coordinates":[75.33333,18.75]}} +,{"name":"Jartai","id":"12074","nametype":"Valid","recclass":"L6","mass":"20500","fall":"Fell","year":"1979-01-01T00:00:00.000","reclat":"39.700000","reclong":"105.800000","geolocation":{"type":"Point","coordinates":[105.8,39.7]}} +,{"name":"Jelica","id":"12078","nametype":"Valid","recclass":"LL6","mass":"34000","fall":"Fell","year":"1889-01-01T00:00:00.000","reclat":"43.833330","reclong":"20.441670","geolocation":{"type":"Point","coordinates":[20.44167,43.83333]}} +,{"name":"Jemlapur","id":"12079","nametype":"Valid","recclass":"L6","mass":"450","fall":"Fell","year":"1901-01-01T00:00:00.000"} +,{"name":"Jesenice","id":"51589","nametype":"Valid","recclass":"L6","mass":"3667","fall":"Fell","year":"2009-01-01T00:00:00.000","reclat":"46.421370","reclong":"14.052170","geolocation":{"type":"Point","coordinates":[14.05217,46.42137]}} +,{"name":"Jhung","id":"12085","nametype":"Valid","recclass":"L5","mass":"5900","fall":"Fell","year":"1873-01-01T00:00:00.000","reclat":"31.300000","reclong":"72.383330","geolocation":{"type":"Point","coordinates":[72.38333,31.3]}} +,{"name":"Jiange","id":"12086","nametype":"Valid","recclass":"H5","mass":"222","fall":"Fell","year":"1964-01-01T00:00:00.000","reclat":"31.916670","reclong":"104.916670","geolocation":{"type":"Point","coordinates":[104.91667,31.91667]}} +,{"name":"Jianshi","id":"12087","nametype":"Valid","recclass":"Iron, IIIAB","mass":"600000","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"30.808330","reclong":"109.500000","geolocation":{"type":"Point","coordinates":[109.5,30.80833]}} +,{"name":"Jilin","id":"12171","nametype":"Valid","recclass":"H5","mass":"4000000","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"44.050000","reclong":"126.166670","geolocation":{"type":"Point","coordinates":[126.16667,44.05]}} +,{"name":"Jodiya","id":"47362","nametype":"Valid","recclass":"L5","mass":"100","fall":"Fell","year":"2006-01-01T00:00:00.000","reclat":"22.680000","reclong":"70.313330","geolocation":{"type":"Point","coordinates":[70.31333,22.68]}} +,{"name":"Jodzie","id":"12173","nametype":"Valid","recclass":"Howardite","mass":"30","fall":"Fell","year":"1877-01-01T00:00:00.000","reclat":"55.700000","reclong":"24.400000","geolocation":{"type":"Point","coordinates":[24.4,55.7]}} +,{"name":"Johnstown","id":"12198","nametype":"Valid","recclass":"Diogenite","mass":"40300","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"40.350000","reclong":"-104.900000","geolocation":{"type":"Point","coordinates":[-104.9,40.35]},":@computed_region_cbhk_fwbd":"9",":@computed_region_nnqa_25f4":"1072"} +,{"name":"Jolomba","id":"12199","nametype":"Valid","recclass":"LL6","mass":"483","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"-11.850000","reclong":"15.833330","geolocation":{"type":"Point","coordinates":[15.83333,-11.85]}} +,{"name":"Jonzac","id":"12202","nametype":"Valid","recclass":"Eucrite-mmict","mass":"5000","fall":"Fell","year":"1819-01-01T00:00:00.000","reclat":"45.433330","reclong":"-0.450000","geolocation":{"type":"Point","coordinates":[-0.45,45.43333]}} +,{"name":"Juancheng","id":"12203","nametype":"Valid","recclass":"H5","mass":"100000","fall":"Fell","year":"1997-01-01T00:00:00.000","reclat":"35.500000","reclong":"115.416670","geolocation":{"type":"Point","coordinates":[115.41667,35.5]}} +,{"name":"Judesegeri","id":"12207","nametype":"Valid","recclass":"H6","mass":"680","fall":"Fell","year":"1876-01-01T00:00:00.000","reclat":"12.850000","reclong":"76.800000","geolocation":{"type":"Point","coordinates":[76.8,12.85]}} +,{"name":"Jumapalo","id":"12209","nametype":"Valid","recclass":"L6","mass":"32490","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"-7.716670","reclong":"111.200000","geolocation":{"type":"Point","coordinates":[111.2,-7.71667]}} +,{"name":"Junan","id":"12210","nametype":"Valid","recclass":"L6","mass":"950","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"35.200000","reclong":"118.800000","geolocation":{"type":"Point","coordinates":[118.8,35.2]}} +,{"name":"Juromenha","id":"12213","nametype":"Valid","recclass":"Iron, IIIAB","mass":"25250","fall":"Fell","year":"1968-01-01T00:00:00.000","reclat":"38.740280","reclong":"-7.270000","geolocation":{"type":"Point","coordinates":[-7.27,38.74028]}} +,{"name":"Juvinas","id":"12214","nametype":"Valid","recclass":"Eucrite-mmict","mass":"91000","fall":"Fell","year":"1821-01-01T00:00:00.000","reclat":"44.716670","reclong":"4.300000","geolocation":{"type":"Point","coordinates":[4.3,44.71667]}} +,{"name":"Kaba","id":"12218","nametype":"Valid","recclass":"CV3","mass":"3000","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"47.350000","reclong":"21.300000","geolocation":{"type":"Point","coordinates":[21.3,47.35]}} +,{"name":"Kabo","id":"12220","nametype":"Valid","recclass":"H4","mass":"13400","fall":"Fell","year":"1971-01-01T00:00:00.000","reclat":"11.850000","reclong":"8.216670","geolocation":{"type":"Point","coordinates":[8.21667,11.85]}} +,{"name":"Kadonah","id":"12221","nametype":"Valid","recclass":"H6","mass":"89","fall":"Fell","year":"1822-01-01T00:00:00.000","reclat":"27.083330","reclong":"78.333330","geolocation":{"type":"Point","coordinates":[78.33333,27.08333]}} +,{"name":"Kaee","id":"12222","nametype":"Valid","recclass":"H5","mass":"230","fall":"Fell","year":"1838-01-01T00:00:00.000","reclat":"27.250000","reclong":"79.966670","geolocation":{"type":"Point","coordinates":[79.96667,27.25]}} +,{"name":"Kagarlyk","id":"12227","nametype":"Valid","recclass":"L6","mass":"1900","fall":"Fell","year":"1908-01-01T00:00:00.000","reclat":"49.866670","reclong":"30.833330","geolocation":{"type":"Point","coordinates":[30.83333,49.86667]}} +,{"name":"Kaidun","id":"12228","nametype":"Valid","recclass":"CR2","mass":"2000","fall":"Fell","year":"1980-01-01T00:00:00.000","reclat":"15.000000","reclong":"48.300000","geolocation":{"type":"Point","coordinates":[48.3,15]}} +,{"name":"Kainsaz","id":"12229","nametype":"Valid","recclass":"CO3.2","mass":"200000","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"55.433330","reclong":"53.250000","geolocation":{"type":"Point","coordinates":[53.25,55.43333]}} +,{"name":"Kakangari","id":"12230","nametype":"Valid","recclass":"K3","mass":"350","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"12.383330","reclong":"78.516670","geolocation":{"type":"Point","coordinates":[78.51667,12.38333]}} +,{"name":"Kakowa","id":"12231","nametype":"Valid","recclass":"L6","mass":"577","fall":"Fell","year":"1858-01-01T00:00:00.000","reclat":"45.133330","reclong":"21.666670","geolocation":{"type":"Point","coordinates":[21.66667,45.13333]}} +,{"name":"Kalaba","id":"12232","nametype":"Valid","recclass":"H4","mass":"950","fall":"Fell","year":"1951-01-01T00:00:00.000","reclat":"-6.833330","reclong":"29.500000","geolocation":{"type":"Point","coordinates":[29.5,-6.83333]}} +,{"name":"Kalumbi","id":"12236","nametype":"Valid","recclass":"L6","mass":"4500","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"17.833330","reclong":"73.983330","geolocation":{"type":"Point","coordinates":[73.98333,17.83333]}} +,{"name":"Kamalpur","id":"12238","nametype":"Valid","recclass":"L6","mass":"2770","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"26.033330","reclong":"81.466670","geolocation":{"type":"Point","coordinates":[81.46667,26.03333]}} +,{"name":"Kamiomi","id":"12240","nametype":"Valid","recclass":"H5","mass":"448","fall":"Fell","year":"1913-01-01T00:00:00.000","reclat":"36.041670","reclong":"139.956670","geolocation":{"type":"Point","coordinates":[139.95667,36.04167]}} +,{"name":"Kamsagar","id":"12241","nametype":"Valid","recclass":"L6","mass":"1293","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"14.183330","reclong":"75.800000","geolocation":{"type":"Point","coordinates":[75.8,14.18333]}} +,{"name":"Kandahar (Afghanistan)","id":"12243","nametype":"Valid","recclass":"L6","mass":"299","fall":"Fell","year":"1959-01-01T00:00:00.000","reclat":"31.600000","reclong":"65.783330","geolocation":{"type":"Point","coordinates":[65.78333,31.6]}} +,{"name":"Kangean","id":"12245","nametype":"Valid","recclass":"H5","mass":"1630","fall":"Fell","year":"1908-01-01T00:00:00.000","reclat":"-7.000000","reclong":"115.500000","geolocation":{"type":"Point","coordinates":[115.5,-7]}} +,{"name":"Kangra Valley","id":"12246","nametype":"Valid","recclass":"H5","mass":"400","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"32.083330","reclong":"76.300000","geolocation":{"type":"Point","coordinates":[76.3,32.08333]}} +,{"name":"Kapoeta","id":"12251","nametype":"Valid","recclass":"Howardite","mass":"11355","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"4.700000","reclong":"33.633330","geolocation":{"type":"Point","coordinates":[33.63333,4.7]}} +,{"name":"Kaprada","id":"47357","nametype":"Valid","recclass":"L5/6","mass":"1600","fall":"Fell","year":"2004-01-01T00:00:00.000","reclat":"20.339160","reclong":"73.223290","geolocation":{"type":"Point","coordinates":[73.22329,20.33916]}} +,{"name":"Kaptal-Aryk","id":"12253","nametype":"Valid","recclass":"L6","mass":"3500","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"42.450000","reclong":"73.366670","geolocation":{"type":"Point","coordinates":[73.36667,42.45]}} +,{"name":"Karakol","id":"12256","nametype":"Valid","recclass":"LL6","mass":"3000","fall":"Fell","year":"1840-01-01T00:00:00.000","reclat":"47.216670","reclong":"81.016670","geolocation":{"type":"Point","coordinates":[81.01667,47.21667]}} +,{"name":"Karatu","id":"12258","nametype":"Valid","recclass":"LL6","mass":"2220","fall":"Fell","year":"1963-01-01T00:00:00.000","reclat":"-3.500000","reclong":"35.583330","geolocation":{"type":"Point","coordinates":[35.58333,-3.5]}} +,{"name":"Karewar","id":"12260","nametype":"Valid","recclass":"L6","mass":"180","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"12.900000","reclong":"7.150000","geolocation":{"type":"Point","coordinates":[7.15,12.9]}} +,{"name":"Karkh","id":"12262","nametype":"Valid","recclass":"L6","mass":"22000","fall":"Fell","year":"1905-01-01T00:00:00.000","reclat":"27.800000","reclong":"67.166670","geolocation":{"type":"Point","coordinates":[67.16667,27.8]}} +,{"name":"Karloowala","id":"12263","nametype":"Valid","recclass":"L6","mass":"2950","fall":"Fell","year":"1955-01-01T00:00:00.000","reclat":"31.583330","reclong":"71.600000","geolocation":{"type":"Point","coordinates":[71.6,31.58333]}} +,{"name":"Karoonda","id":"12264","nametype":"Valid","recclass":"CK4","mass":"41730","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"-35.083330","reclong":"139.916670","geolocation":{"type":"Point","coordinates":[139.91667,-35.08333]}} +,{"name":"Kasamatsu","id":"12266","nametype":"Valid","recclass":"H","mass":"710","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"35.366670","reclong":"136.766670","geolocation":{"type":"Point","coordinates":[136.76667,35.36667]}} +,{"name":"Kasauli","id":"30740","nametype":"Valid","recclass":"H4","mass":"16820","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"29.583330","reclong":"77.583330","geolocation":{"type":"Point","coordinates":[77.58333,29.58333]}} +,{"name":"Katagum","id":"35465","nametype":"Valid","recclass":"L6","mass":"1500","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"11.333330","reclong":"10.083330","geolocation":{"type":"Point","coordinates":[10.08333,11.33333]}} +,{"name":"Kavarpura","id":"47351","nametype":"Valid","recclass":"Iron, IIE-an","mass":"6800","fall":"Fell","year":"2006-01-01T00:00:00.000","reclat":"25.143330","reclong":"75.813330","geolocation":{"type":"Point","coordinates":[75.81333,25.14333]}} +,{"name":"Kayakent","id":"12268","nametype":"Valid","recclass":"Iron, IIIAB","mass":"85000","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"39.263330","reclong":"31.780000","geolocation":{"type":"Point","coordinates":[31.78,39.26333]}} +,{"name":"Kediri","id":"12270","nametype":"Valid","recclass":"L4","mass":"3300","fall":"Fell","year":"1940-01-01T00:00:00.000","reclat":"-7.750000","reclong":"112.016670","geolocation":{"type":"Point","coordinates":[112.01667,-7.75]}} +,{"name":"Kemer","id":"53654","nametype":"Valid","recclass":"L4","mass":"5760","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"36.541940","reclong":"29.418220","geolocation":{"type":"Point","coordinates":[29.41822,36.54194]}} +,{"name":"Kendleton","id":"12275","nametype":"Valid","recclass":"L4","mass":"6937","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"29.450000","reclong":"-96.000000","geolocation":{"type":"Point","coordinates":[-96,29.45]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"3190"} +,{"name":"Kendrapara","id":"12276","nametype":"Valid","recclass":"H4-5","mass":"6669.2","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"20.462500","reclong":"86.702780","geolocation":{"type":"Point","coordinates":[86.70278,20.4625]}} +,{"name":"Kerilis","id":"12282","nametype":"Valid","recclass":"H5","mass":"5000","fall":"Fell","year":"1874-01-01T00:00:00.000","reclat":"48.400000","reclong":"-3.300000","geolocation":{"type":"Point","coordinates":[-3.3,48.4]}} +,{"name":"Kernouve","id":"12284","nametype":"Valid","recclass":"H6","mass":"80000","fall":"Fell","year":"1869-01-01T00:00:00.000","reclat":"48.116670","reclong":"-3.083330","geolocation":{"type":"Point","coordinates":[-3.08333,48.11667]}} +,{"name":"Kesen","id":"12286","nametype":"Valid","recclass":"H4","mass":"135000","fall":"Fell","year":"1850-01-01T00:00:00.000","reclat":"38.983330","reclong":"141.616670","geolocation":{"type":"Point","coordinates":[141.61667,38.98333]}} +,{"name":"Khairpur","id":"12288","nametype":"Valid","recclass":"EL6","mass":"13600","fall":"Fell","year":"1873-01-01T00:00:00.000","reclat":"29.533330","reclong":"72.300000","geolocation":{"type":"Point","coordinates":[72.3,29.53333]}} +,{"name":"Khanpur","id":"12289","nametype":"Valid","recclass":"LL5","mass":"3698","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"25.550000","reclong":"83.116670","geolocation":{"type":"Point","coordinates":[83.11667,25.55]}} +,{"name":"Kharkov","id":"12291","nametype":"Valid","recclass":"L6","mass":"1500","fall":"Fell","year":"1787-01-01T00:00:00.000","reclat":"50.625000","reclong":"35.075000","geolocation":{"type":"Point","coordinates":[35.075,50.625]}} +,{"name":"Kheragur","id":"12294","nametype":"Valid","recclass":"L6","mass":"450","fall":"Fell","year":"1860-01-01T00:00:00.000","reclat":"26.950000","reclong":"77.883330","geolocation":{"type":"Point","coordinates":[77.88333,26.95]}} +,{"name":"Khetri","id":"12296","nametype":"Valid","recclass":"H6","mass":"100","fall":"Fell","year":"1867-01-01T00:00:00.000","reclat":"28.016670","reclong":"75.816670","geolocation":{"type":"Point","coordinates":[75.81667,28.01667]}} +,{"name":"Khmelevka","id":"12297","nametype":"Valid","recclass":"L5","mass":"6109","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"56.750000","reclong":"75.333330","geolocation":{"type":"Point","coordinates":[75.33333,56.75]}} +,{"name":"Khohar","id":"12298","nametype":"Valid","recclass":"L3.6","mass":"9700","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"25.100000","reclong":"81.533330","geolocation":{"type":"Point","coordinates":[81.53333,25.1]}} +,{"name":"Khor Temiki","id":"12299","nametype":"Valid","recclass":"Aubrite","mass":"3200","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"16.000000","reclong":"36.000000","geolocation":{"type":"Point","coordinates":[36,16]}} +,{"name":"Kidairat","id":"12300","nametype":"Valid","recclass":"H6","mass":"100000","fall":"Fell","year":"1983-01-01T00:00:00.000","reclat":"14.000000","reclong":"28.000000","geolocation":{"type":"Point","coordinates":[28,14]}} +,{"name":"Kiel","id":"12301","nametype":"Valid","recclass":"L6","mass":"737.6","fall":"Fell","year":"1962-01-01T00:00:00.000","reclat":"54.400000","reclong":"10.150000","geolocation":{"type":"Point","coordinates":[10.15,54.4]}} +,{"name":"Kiffa","id":"12303","nametype":"Valid","recclass":"H5","mass":"1500","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"16.583330","reclong":"-11.333330","geolocation":{"type":"Point","coordinates":[-11.33333,16.58333]}} +,{"name":"Kijima (1906)","id":"12305","nametype":"Valid","recclass":"Stone-uncl","mass":"331","fall":"Fell","year":"1906-01-01T00:00:00.000","reclat":"36.850000","reclong":"138.383330","geolocation":{"type":"Point","coordinates":[138.38333,36.85]}} +,{"name":"Kikino","id":"12306","nametype":"Valid","recclass":"H6","mass":"195","fall":"Fell","year":"1809-01-01T00:00:00.000","reclat":"55.000000","reclong":"34.000000","geolocation":{"type":"Point","coordinates":[34,55]}} +,{"name":"Kilabo","id":"12307","nametype":"Valid","recclass":"LL6","mass":"19000","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"12.766670","reclong":"9.800000","geolocation":{"type":"Point","coordinates":[9.8,12.76667]}} +,{"name":"Kilbourn","id":"12308","nametype":"Valid","recclass":"H5","mass":"772","fall":"Fell","year":"1911-01-01T00:00:00.000","reclat":"43.583330","reclong":"-89.600000","geolocation":{"type":"Point","coordinates":[-89.6,43.58333]},":@computed_region_cbhk_fwbd":"41",":@computed_region_nnqa_25f4":"2971"} +,{"name":"Killeter","id":"12309","nametype":"Valid","recclass":"H6","mass":"140","fall":"Fell","year":"1844-01-01T00:00:00.000","reclat":"54.666670","reclong":"-7.666670","geolocation":{"type":"Point","coordinates":[-7.66667,54.66667]}} +,{"name":"Kingai","id":"12316","nametype":"Valid","recclass":"H6","mass":"67.400000000000006","fall":"Fell","year":"1967-01-01T00:00:00.000","reclat":"11.633330","reclong":"24.683330","geolocation":{"type":"Point","coordinates":[24.68333,11.63333]}} +,{"name":"Kirbyville","id":"12321","nametype":"Valid","recclass":"Eucrite-mmict","mass":"97.7","fall":"Fell","year":"1906-01-01T00:00:00.000","reclat":"30.750000","reclong":"-95.950000","geolocation":{"type":"Point","coordinates":[-95.95,30.75]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"2018"} +,{"name":"Kisvarsány","id":"12325","nametype":"Valid","recclass":"L6","mass":"1550","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"48.166670","reclong":"22.308330","geolocation":{"type":"Point","coordinates":[22.30833,48.16667]}} +,{"name":"Kitchener","id":"12326","nametype":"Valid","recclass":"L6","mass":"202.6","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"43.383330","reclong":"-80.383330","geolocation":{"type":"Point","coordinates":[-80.38333,43.38333]}} +,{"name":"Klein-Wenden","id":"12332","nametype":"Valid","recclass":"H6","mass":"3250","fall":"Fell","year":"1843-01-01T00:00:00.000","reclat":"51.600000","reclong":"10.800000","geolocation":{"type":"Point","coordinates":[10.8,51.6]}} +,{"name":"Knyahinya","id":"12335","nametype":"Valid","recclass":"L/LL5","mass":"500000","fall":"Fell","year":"1866-01-01T00:00:00.000","reclat":"48.900000","reclong":"22.400000","geolocation":{"type":"Point","coordinates":[22.4,48.9]}} +,{"name":"Kobe","id":"12336","nametype":"Valid","recclass":"CK4","mass":"136","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"34.733330","reclong":"135.166670","geolocation":{"type":"Point","coordinates":[135.16667,34.73333]}} +,{"name":"Kokubunji","id":"12342","nametype":"Valid","recclass":"L6","mass":"11510","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"34.300000","reclong":"133.950000","geolocation":{"type":"Point","coordinates":[133.95,34.3]}} +,{"name":"Komagome","id":"12343","nametype":"Valid","recclass":"Iron","mass":"238","fall":"Fell","year":"1926-01-01T00:00:00.000","reclat":"35.733330","reclong":"139.750000","geolocation":{"type":"Point","coordinates":[139.75,35.73333]}} +,{"name":"Konovo","id":"12344","nametype":"Valid","recclass":"LL5","mass":"90","fall":"Fell","year":"1931-01-01T00:00:00.000","reclat":"42.516670","reclong":"26.166670","geolocation":{"type":"Point","coordinates":[26.16667,42.51667]}} +,{"name":"Košice","id":"53810","nametype":"Valid","recclass":"H5","mass":"4300","fall":"Fell","year":"2010-01-01T00:00:00.000","reclat":"48.763670","reclong":"21.176330","geolocation":{"type":"Point","coordinates":[21.17633,48.76367]}} +,{"name":"Krähenberg","id":"12353","nametype":"Valid","recclass":"LL5","mass":"16500","fall":"Fell","year":"1869-01-01T00:00:00.000","reclat":"49.326940","reclong":"7.464720","geolocation":{"type":"Point","coordinates":[7.46472,49.32694]}} +,{"name":"Krasnoi-Ugol","id":"12355","nametype":"Valid","recclass":"L6","mass":"2440","fall":"Fell","year":"1829-01-01T00:00:00.000","reclat":"54.033330","reclong":"40.900000","geolocation":{"type":"Point","coordinates":[40.9,54.03333]}} +,{"name":"Krasnyi Klyuch","id":"12357","nametype":"Valid","recclass":"H5","mass":"4000","fall":"Fell","year":"1946-01-01T00:00:00.000","reclat":"54.333330","reclong":"56.083330","geolocation":{"type":"Point","coordinates":[56.08333,54.33333]}} +,{"name":"Krutikha","id":"12363","nametype":"Valid","recclass":"OC","mass":"845.2","fall":"Fell","year":"1906-01-01T00:00:00.000","reclat":"56.800000","reclong":"77.000000","geolocation":{"type":"Point","coordinates":[77,56.8]}} +,{"name":"Krymka","id":"12364","nametype":"Valid","recclass":"LL3.2","mass":"50000","fall":"Fell","year":"1946-01-01T00:00:00.000","reclat":"47.833330","reclong":"30.766670","geolocation":{"type":"Point","coordinates":[30.76667,47.83333]}} +,{"name":"Kukschin","id":"12368","nametype":"Valid","recclass":"L6","mass":"2250","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"51.150000","reclong":"31.700000","geolocation":{"type":"Point","coordinates":[31.7,51.15]}} +,{"name":"Kulak","id":"12369","nametype":"Valid","recclass":"L5","mass":"453.6","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"30.731110","reclong":"66.802220","geolocation":{"type":"Point","coordinates":[66.80222,30.73111]}} +,{"name":"Kuleschovka","id":"12370","nametype":"Valid","recclass":"L6","mass":"6000","fall":"Fell","year":"1811-01-01T00:00:00.000","reclat":"50.750000","reclong":"33.500000","geolocation":{"type":"Point","coordinates":[33.5,50.75]}} +,{"name":"Kulp","id":"12373","nametype":"Valid","recclass":"H6","mass":"3719","fall":"Fell","year":"1906-01-01T00:00:00.000","reclat":"41.116670","reclong":"45.000000","geolocation":{"type":"Point","coordinates":[45,41.11667]}} +,{"name":"Kunashak","id":"12377","nametype":"Valid","recclass":"L6","mass":"200000","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"55.783330","reclong":"61.366670","geolocation":{"type":"Point","coordinates":[61.36667,55.78333]}} +,{"name":"Kunya-Urgench","id":"12379","nametype":"Valid","recclass":"H5","mass":"1100000","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"42.250000","reclong":"59.200000","geolocation":{"type":"Point","coordinates":[59.2,42.25]}} +,{"name":"Kushiike","id":"12381","nametype":"Valid","recclass":"OC","mass":"4460","fall":"Fell","year":"1920-01-01T00:00:00.000","reclat":"37.050000","reclong":"138.383330","geolocation":{"type":"Point","coordinates":[138.38333,37.05]}} +,{"name":"Kusiali","id":"12382","nametype":"Valid","recclass":"L6","mass":"5","fall":"Fell","year":"1860-01-01T00:00:00.000","reclat":"29.683330","reclong":"78.383330","geolocation":{"type":"Point","coordinates":[78.38333,29.68333]}} +,{"name":"Kutais","id":"12383","nametype":"Valid","recclass":"H5","mass":"23","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"44.516670","reclong":"39.300000","geolocation":{"type":"Point","coordinates":[39.3,44.51667]}} +,{"name":"Kuttippuram","id":"12384","nametype":"Valid","recclass":"L6","mass":"45000","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"10.833330","reclong":"76.033330","geolocation":{"type":"Point","coordinates":[76.03333,10.83333]}} +,{"name":"Kuznetzovo","id":"12385","nametype":"Valid","recclass":"L6","mass":"4047","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"55.200000","reclong":"75.333330","geolocation":{"type":"Point","coordinates":[75.33333,55.2]}} +,{"name":"Kyushu","id":"12390","nametype":"Valid","recclass":"L6","mass":"45000","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"32.033330","reclong":"130.633330","geolocation":{"type":"Point","coordinates":[130.63333,32.03333]}} +,{"name":"La Bécasse","id":"12392","nametype":"Valid","recclass":"L6","mass":"2800","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"47.083330","reclong":"1.750000","geolocation":{"type":"Point","coordinates":[1.75,47.08333]}} +,{"name":"La Charca","id":"12394","nametype":"Valid","recclass":"OC","mass":"399","fall":"Fell","year":"1878-01-01T00:00:00.000","reclat":"20.666670","reclong":"-101.283330","geolocation":{"type":"Point","coordinates":[-101.28333,20.66667]}} +,{"name":"La Colina","id":"12395","nametype":"Valid","recclass":"H5","mass":"2000","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"-37.333330","reclong":"-61.533330","geolocation":{"type":"Point","coordinates":[-61.53333,-37.33333]}} +,{"name":"La Criolla","id":"12396","nametype":"Valid","recclass":"L6","mass":"45000","fall":"Fell","year":"1985-01-01T00:00:00.000","reclat":"-31.233330","reclong":"-58.166670","geolocation":{"type":"Point","coordinates":[-58.16667,-31.23333]}} +,{"name":"Laborel","id":"12408","nametype":"Valid","recclass":"H5","mass":"3833","fall":"Fell","year":"1871-01-01T00:00:00.000","reclat":"44.283330","reclong":"5.583330","geolocation":{"type":"Point","coordinates":[5.58333,44.28333]}} +,{"name":"Lahrauli","id":"12433","nametype":"Valid","recclass":"Ureilite","mass":"900","fall":"Fell","year":"1955-01-01T00:00:00.000","reclat":"26.783330","reclong":"82.716670","geolocation":{"type":"Point","coordinates":[82.71667,26.78333]}} +,{"name":"L'Aigle","id":"12434","nametype":"Valid","recclass":"L6","mass":"37000","fall":"Fell","year":"1803-01-01T00:00:00.000","reclat":"48.766670","reclong":"0.633330","geolocation":{"type":"Point","coordinates":[0.63333,48.76667]}} +,{"name":"Cumulus Hills 04075","id":"32531","nametype":"Valid","recclass":"Pallasite","mass":"9.6","fall":"Found","year":"2003-01-01T00:00:00.000"} +,{"name":"Lakangaon","id":"12435","nametype":"Valid","recclass":"Eucrite-mmict","mass":"212.5","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"21.866670","reclong":"76.033330","geolocation":{"type":"Point","coordinates":[76.03333,21.86667]}} +,{"name":"Lalitpur","id":"12451","nametype":"Valid","recclass":"L6","mass":"372","fall":"Fell","year":"1887-01-01T00:00:00.000","reclat":"24.450000","reclong":"78.566670","geolocation":{"type":"Point","coordinates":[78.56667,24.45]}} +,{"name":"Lancé","id":"12455","nametype":"Valid","recclass":"CO3.5","mass":"51700","fall":"Fell","year":"1872-01-01T00:00:00.000","reclat":"47.700000","reclong":"1.066670","geolocation":{"type":"Point","coordinates":[1.06667,47.7]}} +,{"name":"Lancon","id":"12456","nametype":"Valid","recclass":"H6","mass":"7000","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"43.750000","reclong":"5.116670","geolocation":{"type":"Point","coordinates":[5.11667,43.75]}} +,{"name":"Långhalsen","id":"12461","nametype":"Valid","recclass":"L6","mass":"2300","fall":"Fell","year":"1947-01-01T00:00:00.000","reclat":"58.850000","reclong":"16.733330","geolocation":{"type":"Point","coordinates":[16.73333,58.85]}} +,{"name":"Lanxi","id":"12464","nametype":"Valid","recclass":"L6","mass":"1282","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"46.241670","reclong":"126.196110","geolocation":{"type":"Point","coordinates":[126.19611,46.24167]}} +,{"name":"Lanzenkirchen","id":"12465","nametype":"Valid","recclass":"L4","mass":"7000","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"47.750000","reclong":"16.233330","geolocation":{"type":"Point","coordinates":[16.23333,47.75]}} +,{"name":"Laochenzhen","id":"12466","nametype":"Valid","recclass":"H5","mass":"14250","fall":"Fell","year":"1987-01-01T00:00:00.000","reclat":"33.133330","reclong":"115.166670","geolocation":{"type":"Point","coordinates":[115.16667,33.13333]}} +,{"name":"Launton","id":"12740","nametype":"Valid","recclass":"L6","mass":"1060","fall":"Fell","year":"1830-01-01T00:00:00.000","reclat":"51.900000","reclong":"-1.116670","geolocation":{"type":"Point","coordinates":[-1.11667,51.9]}} +,{"name":"Lavrentievka","id":"12743","nametype":"Valid","recclass":"L6","mass":"800","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"52.450000","reclong":"51.566670","geolocation":{"type":"Point","coordinates":[51.56667,52.45]}} +,{"name":"Le Pressoir","id":"12748","nametype":"Valid","recclass":"H5","mass":"3000","fall":"Fell","year":"1845-01-01T00:00:00.000","reclat":"47.166670","reclong":"0.433330","geolocation":{"type":"Point","coordinates":[0.43333,47.16667]}} +,{"name":"Le Teilleul","id":"12749","nametype":"Valid","recclass":"Howardite","mass":"780","fall":"Fell","year":"1845-01-01T00:00:00.000","reclat":"48.533330","reclong":"-0.866670","geolocation":{"type":"Point","coordinates":[-0.86667,48.53333]}} +,{"name":"Leedey","id":"12755","nametype":"Valid","recclass":"L6","mass":"51500","fall":"Fell","year":"1943-01-01T00:00:00.000","reclat":"35.883330","reclong":"-99.333330","geolocation":{"type":"Point","coordinates":[-99.33333,35.88333]},":@computed_region_cbhk_fwbd":"20",":@computed_region_nnqa_25f4":"608"} +,{"name":"Leeuwfontein","id":"12756","nametype":"Valid","recclass":"L6","mass":"460","fall":"Fell","year":"1912-01-01T00:00:00.000","reclat":"-25.666670","reclong":"28.366670","geolocation":{"type":"Point","coordinates":[28.36667,-25.66667]}} +,{"name":"Leighlinbridge","id":"12759","nametype":"Valid","recclass":"L6","mass":"271.39999999999998","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"52.666670","reclong":"-6.966670","geolocation":{"type":"Point","coordinates":[-6.96667,52.66667]}} +,{"name":"Leighton","id":"12760","nametype":"Valid","recclass":"H5","mass":"877","fall":"Fell","year":"1907-01-01T00:00:00.000","reclat":"34.583330","reclong":"-87.500000","geolocation":{"type":"Point","coordinates":[-87.5,34.58333]},":@computed_region_cbhk_fwbd":"29",":@computed_region_nnqa_25f4":"1585"} +,{"name":"Leonovka","id":"12765","nametype":"Valid","recclass":"L6","mass":"700","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"52.266670","reclong":"32.850000","geolocation":{"type":"Point","coordinates":[32.85,52.26667]}} +,{"name":"Les Ormes","id":"12769","nametype":"Valid","recclass":"L6","mass":"125","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"48.350000","reclong":"3.250000","geolocation":{"type":"Point","coordinates":[3.25,48.35]}} +,{"name":"Lesves","id":"12772","nametype":"Valid","recclass":"L6","mass":"2000","fall":"Fell","year":"1896-01-01T00:00:00.000","reclat":"50.366670","reclong":"4.733330","geolocation":{"type":"Point","coordinates":[4.73333,50.36667]}} +,{"name":"Lichtenberg","id":"14646","nametype":"Valid","recclass":"H6","mass":"4000","fall":"Fell","year":"1973-01-01T00:00:00.000","reclat":"-26.150000","reclong":"26.183330","geolocation":{"type":"Point","coordinates":[26.18333,-26.15]}} +,{"name":"Lillaverke","id":"14650","nametype":"Valid","recclass":"H5","mass":"6862","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"56.650000","reclong":"15.866670","geolocation":{"type":"Point","coordinates":[15.86667,56.65]}} +,{"name":"Limerick","id":"14652","nametype":"Valid","recclass":"H5","mass":"50000","fall":"Fell","year":"1813-01-01T00:00:00.000","reclat":"52.566670","reclong":"-8.783330","geolocation":{"type":"Point","coordinates":[-8.78333,52.56667]}} +,{"name":"Linum","id":"14655","nametype":"Valid","recclass":"L6","mass":"1862","fall":"Fell","year":"1854-01-01T00:00:00.000","reclat":"52.750000","reclong":"12.900000","geolocation":{"type":"Point","coordinates":[12.9,52.75]}} +,{"name":"Lishui","id":"14659","nametype":"Valid","recclass":"L5","mass":"498","fall":"Fell","year":"1978-01-01T00:00:00.000","reclat":"31.633330","reclong":"118.983330","geolocation":{"type":"Point","coordinates":[118.98333,31.63333]}} +,{"name":"Lissa","id":"14661","nametype":"Valid","recclass":"L6","mass":"12800","fall":"Fell","year":"1808-01-01T00:00:00.000","reclat":"50.200000","reclong":"14.850000","geolocation":{"type":"Point","coordinates":[14.85,50.2]}} +,{"name":"Little Piney","id":"14664","nametype":"Valid","recclass":"L5","mass":"491","fall":"Fell","year":"1839-01-01T00:00:00.000","reclat":"37.916670","reclong":"-92.083330","geolocation":{"type":"Point","coordinates":[-92.08333,37.91667]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"2171"} +,{"name":"Lixna","id":"14670","nametype":"Valid","recclass":"H4","mass":"5213","fall":"Fell","year":"1820-01-01T00:00:00.000","reclat":"56.000000","reclong":"26.433330","geolocation":{"type":"Point","coordinates":[26.43333,56]}} +,{"name":"Lodran","id":"14675","nametype":"Valid","recclass":"Lodranite","mass":"1000","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"29.533330","reclong":"71.800000","geolocation":{"type":"Point","coordinates":[71.8,29.53333]}} +,{"name":"Lohawat","id":"14678","nametype":"Valid","recclass":"Howardite","mass":"40000","fall":"Fell","year":"1994-01-01T00:00:00.000","reclat":"26.965560","reclong":"72.626670","geolocation":{"type":"Point","coordinates":[72.62667,26.96556]}} +,{"name":"Lorton","id":"52843","nametype":"Valid","recclass":"L6","mass":"329.7","fall":"Fell","year":"2010-01-01T00:00:00.000","reclat":"38.700660","reclong":"-77.211630","geolocation":{"type":"Point","coordinates":[-77.21163,38.70066]},":@computed_region_cbhk_fwbd":"40",":@computed_region_nnqa_25f4":"2770"} +,{"name":"Los Martinez","id":"14708","nametype":"Valid","recclass":"L6","mass":"25","fall":"Fell","year":"1894-01-01T00:00:00.000","reclat":"38.000000","reclong":"-0.833330","geolocation":{"type":"Point","coordinates":[-0.83333,38]}} +,{"name":"Lost City","id":"14711","nametype":"Valid","recclass":"H5","mass":"17000","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"36.008330","reclong":"-95.150000","geolocation":{"type":"Point","coordinates":[-95.15,36.00833]},":@computed_region_cbhk_fwbd":"20",":@computed_region_nnqa_25f4":"2711"} +,{"name":"Louisville","id":"14716","nametype":"Valid","recclass":"L6","mass":"1300","fall":"Fell","year":"1977-01-01T00:00:00.000","reclat":"38.250000","reclong":"-85.750000","geolocation":{"type":"Point","coordinates":[-85.75,38.25]},":@computed_region_cbhk_fwbd":"36",":@computed_region_nnqa_25f4":"1327"} +,{"name":"Łowicz","id":"14718","nametype":"Valid","recclass":"Mesosiderite-A3","mass":"59000","fall":"Fell","year":"1935-01-01T00:00:00.000","reclat":"52.000000","reclong":"19.916670","geolocation":{"type":"Point","coordinates":[19.91667,52]}} +,{"name":"Lua","id":"14721","nametype":"Valid","recclass":"L5","mass":"9241","fall":"Fell","year":"1926-01-01T00:00:00.000","reclat":"24.950000","reclong":"75.150000","geolocation":{"type":"Point","coordinates":[75.15,24.95]}} +,{"name":"Lucé","id":"14724","nametype":"Valid","recclass":"L6","mass":"3500","fall":"Fell","year":"1768-01-01T00:00:00.000","reclat":"47.850000","reclong":"0.483330","geolocation":{"type":"Point","coordinates":[0.48333,47.85]}} +,{"name":"Lumpkin","id":"14753","nametype":"Valid","recclass":"L6","mass":"340","fall":"Fell","year":"1869-01-01T00:00:00.000","reclat":"32.033330","reclong":"-84.766670","geolocation":{"type":"Point","coordinates":[-84.76667,32.03333]},":@computed_region_cbhk_fwbd":"31",":@computed_region_nnqa_25f4":"1567"} +,{"name":"Lunan","id":"14754","nametype":"Valid","recclass":"H6","mass":"2520","fall":"Fell","year":"1980-01-01T00:00:00.000","reclat":"24.800000","reclong":"103.300000","geolocation":{"type":"Point","coordinates":[103.3,24.8]}} +,{"name":"Lundsgård","id":"14755","nametype":"Valid","recclass":"L6","mass":"11000","fall":"Fell","year":"1889-01-01T00:00:00.000","reclat":"56.216670","reclong":"13.033330","geolocation":{"type":"Point","coordinates":[13.03333,56.21667]}} +,{"name":"Luotolax","id":"14756","nametype":"Valid","recclass":"Howardite","mass":"885","fall":"Fell","year":"1813-01-01T00:00:00.000","reclat":"61.200000","reclong":"27.700000","geolocation":{"type":"Point","coordinates":[27.7,61.2]}} +,{"name":"Luponnas","id":"14757","nametype":"Valid","recclass":"H3-5","mass":"14000","fall":"Fell","year":"1753-01-01T00:00:00.000","reclat":"46.216670","reclong":"5.000000","geolocation":{"type":"Point","coordinates":[5,46.21667]}} +,{"name":"Lusaka","id":"14759","nametype":"Valid","recclass":"Unknown","fall":"Fell","year":"1951-01-01T00:00:00.000","reclat":"-7.216670","reclong":"29.433330","geolocation":{"type":"Point","coordinates":[29.43333,-7.21667]}} +,{"name":"Mabwe-Khoywa","id":"14764","nametype":"Valid","recclass":"L5","mass":"540","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"19.000000","reclong":"97.000000","geolocation":{"type":"Point","coordinates":[97,19]}} +,{"name":"Macau","id":"15370","nametype":"Valid","recclass":"H5","mass":"1500","fall":"Fell","year":"1836-01-01T00:00:00.000","reclat":"-5.200000","reclong":"-36.666670","geolocation":{"type":"Point","coordinates":[-36.66667,-5.2]}} +,{"name":"Machinga","id":"15371","nametype":"Valid","recclass":"L6","mass":"93200","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"-15.212220","reclong":"35.242220","geolocation":{"type":"Point","coordinates":[35.24222,-15.21222]}} +,{"name":"Macibini","id":"15372","nametype":"Valid","recclass":"Eucrite-pmict","mass":"1995","fall":"Fell","year":"1936-01-01T00:00:00.000","reclat":"-28.833330","reclong":"31.950000","geolocation":{"type":"Point","coordinates":[31.95,-28.83333]}} +,{"name":"Madhipura","id":"15379","nametype":"Valid","recclass":"L","mass":"1000","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"25.916670","reclong":"86.366670","geolocation":{"type":"Point","coordinates":[86.36667,25.91667]}} +,{"name":"Madiun","id":"15380","nametype":"Valid","recclass":"L6","mass":"400","fall":"Fell","year":"1935-01-01T00:00:00.000","reclat":"-7.750000","reclong":"111.533330","geolocation":{"type":"Point","coordinates":[111.53333,-7.75]}} +,{"name":"Madrid","id":"15382","nametype":"Valid","recclass":"L6","mass":"400","fall":"Fell","year":"1896-01-01T00:00:00.000","reclat":"40.416670","reclong":"-3.716670","geolocation":{"type":"Point","coordinates":[-3.71667,40.41667]}} +,{"name":"Mafra","id":"15383","nametype":"Valid","recclass":"L3-4","mass":"600","fall":"Fell","year":"1941-01-01T00:00:00.000","reclat":"-26.166670","reclong":"-49.933330","geolocation":{"type":"Point","coordinates":[-49.93333,-26.16667]}} +,{"name":"Magnesia","id":"15386","nametype":"Valid","recclass":"Iron, IAB-sHL","mass":"5000","fall":"Fell","year":"1899-01-01T00:00:00.000","reclat":"37.866670","reclong":"27.516670","geolocation":{"type":"Point","coordinates":[27.51667,37.86667]}} +,{"name":"Magombedze","id":"15387","nametype":"Valid","recclass":"H3-5","mass":"666.6","fall":"Fell","year":"1990-01-01T00:00:00.000","reclat":"-19.483330","reclong":"31.650000","geolocation":{"type":"Point","coordinates":[31.65,-19.48333]}} +,{"name":"Mahadevpur","id":"47361","nametype":"Valid","recclass":"H4/5","mass":"70500","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"27.666670","reclong":"95.783330","geolocation":{"type":"Point","coordinates":[95.78333,27.66667]}} +,{"name":"Maigatari-Danduma","id":"30751","nametype":"Valid","recclass":"H5/6","mass":"4629","fall":"Fell","year":"2004-01-01T00:00:00.000","reclat":"12.833330","reclong":"9.383330","geolocation":{"type":"Point","coordinates":[9.38333,12.83333]}} +,{"name":"Malaga","id":"15393","nametype":"Valid","recclass":"OC","mass":"150","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"32.216670","reclong":"-104.000000","geolocation":{"type":"Point","coordinates":[-104,32.21667]},":@computed_region_cbhk_fwbd":"11",":@computed_region_nnqa_25f4":"611"} +,{"name":"Malakal","id":"15394","nametype":"Valid","recclass":"L5","mass":"2000","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"9.500000","reclong":"31.750000","geolocation":{"type":"Point","coordinates":[31.75,9.5]}} +,{"name":"Malampaka","id":"15395","nametype":"Valid","recclass":"H","mass":"470","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"-3.133330","reclong":"33.516670","geolocation":{"type":"Point","coordinates":[33.51667,-3.13333]}} +,{"name":"Malotas","id":"15397","nametype":"Valid","recclass":"H5","fall":"Fell","year":"1931-01-01T00:00:00.000","reclat":"-28.933330","reclong":"-63.233330","geolocation":{"type":"Point","coordinates":[-63.23333,-28.93333]}} +,{"name":"Malvern","id":"15400","nametype":"Valid","recclass":"Eucrite-pmict","mass":"807","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"-29.450000","reclong":"26.766670","geolocation":{"type":"Point","coordinates":[26.76667,-29.45]}} +,{"name":"Mamra Springs","id":"15401","nametype":"Valid","recclass":"L6","mass":"1000","fall":"Fell","year":"1927-01-01T00:00:00.000","reclat":"45.216670","reclong":"62.083330","geolocation":{"type":"Point","coordinates":[62.08333,45.21667]}} +,{"name":"Manbhoom","id":"15402","nametype":"Valid","recclass":"LL6","mass":"1700","fall":"Fell","year":"1863-01-01T00:00:00.000","reclat":"23.050000","reclong":"86.700000","geolocation":{"type":"Point","coordinates":[86.7,23.05]}} +,{"name":"Manegaon","id":"15403","nametype":"Valid","recclass":"Diogenite","mass":"50","fall":"Fell","year":"1843-01-01T00:00:00.000","reclat":"20.966670","reclong":"76.100000","geolocation":{"type":"Point","coordinates":[76.1,20.96667]}} +,{"name":"Mangwendi","id":"15405","nametype":"Valid","recclass":"LL6","mass":"22300","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"-17.650000","reclong":"31.600000","geolocation":{"type":"Point","coordinates":[31.6,-17.65]}} +,{"name":"Manych","id":"15409","nametype":"Valid","recclass":"LL3.4","mass":"3555","fall":"Fell","year":"1951-01-01T00:00:00.000","reclat":"45.816670","reclong":"44.633330","geolocation":{"type":"Point","coordinates":[44.63333,45.81667]}} +,{"name":"Mardan","id":"15414","nametype":"Valid","recclass":"H5","mass":"4500","fall":"Fell","year":"1948-01-01T00:00:00.000","reclat":"34.233330","reclong":"72.083330","geolocation":{"type":"Point","coordinates":[72.08333,34.23333]}} +,{"name":"Maria Linden","id":"15418","nametype":"Valid","recclass":"L4","mass":"114","fall":"Fell","year":"1925-01-01T00:00:00.000"} +,{"name":"Mariaville","id":"15419","nametype":"Valid","recclass":"Iron","mass":"340","fall":"Fell","year":"1898-01-01T00:00:00.000","reclat":"42.716670","reclong":"-99.383330","geolocation":{"type":"Point","coordinates":[-99.38333,42.71667]},":@computed_region_cbhk_fwbd":"19",":@computed_region_nnqa_25f4":"471"} +,{"name":"Maribo","id":"48973","nametype":"Valid","recclass":"CM2","mass":"25.81","fall":"Fell","year":"2009-01-01T00:00:00.000","reclat":"54.761830","reclong":"11.467450","geolocation":{"type":"Point","coordinates":[11.46745,54.76183]}} +,{"name":"Maridi","id":"15421","nametype":"Valid","recclass":"H6","mass":"3200","fall":"Fell","year":"1941-01-01T00:00:00.000","reclat":"4.666670","reclong":"29.250000","geolocation":{"type":"Point","coordinates":[29.25,4.66667]}} +,{"name":"Marilia","id":"15422","nametype":"Valid","recclass":"H4","mass":"2500","fall":"Fell","year":"1971-01-01T00:00:00.000","reclat":"-22.250000","reclong":"-49.933330","geolocation":{"type":"Point","coordinates":[-49.93333,-22.25]}} +,{"name":"Marion (Iowa)","id":"15424","nametype":"Valid","recclass":"L6","mass":"28400","fall":"Fell","year":"1847-01-01T00:00:00.000","reclat":"41.900000","reclong":"-91.600000","geolocation":{"type":"Point","coordinates":[-91.6,41.9]},":@computed_region_cbhk_fwbd":"16",":@computed_region_nnqa_25f4":"287"} +,{"name":"Marjalahti","id":"15426","nametype":"Valid","recclass":"Pallasite, PMG","mass":"45000","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"61.500000","reclong":"30.500000","geolocation":{"type":"Point","coordinates":[30.5,61.5]}} +,{"name":"Marmande","id":"15429","nametype":"Valid","recclass":"L5","mass":"3000","fall":"Fell","year":"1848-01-01T00:00:00.000","reclat":"44.500000","reclong":"0.150000","geolocation":{"type":"Point","coordinates":[0.15,44.5]}} +,{"name":"Maromandia","id":"15430","nametype":"Valid","recclass":"L6","mass":"6000","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"-14.200000","reclong":"48.100000","geolocation":{"type":"Point","coordinates":[48.1,-14.2]}} +,{"name":"Maryville","id":"15436","nametype":"Valid","recclass":"L6","mass":"1443","fall":"Fell","year":"1983-01-01T00:00:00.000","reclat":"35.800000","reclong":"-84.100000","geolocation":{"type":"Point","coordinates":[-84.1,35.8]},":@computed_region_cbhk_fwbd":"39",":@computed_region_nnqa_25f4":"2740"} +,{"name":"Mascombes","id":"15438","nametype":"Valid","recclass":"L6","mass":"1000","fall":"Fell","year":"1836-01-01T00:00:00.000","reclat":"45.366670","reclong":"1.866670","geolocation":{"type":"Point","coordinates":[1.86667,45.36667]}} +,{"name":"Mason Gully","id":"53653","nametype":"Valid","recclass":"H5","mass":"24.54","fall":"Fell","year":"2010-01-01T00:00:00.000","reclat":"0.000000","reclong":"0.000000","geolocation":{"type":"Point","coordinates":[0,0]}} +,{"name":"Mässing","id":"15443","nametype":"Valid","recclass":"Howardite","mass":"1600","fall":"Fell","year":"1803-01-01T00:00:00.000","reclat":"48.133330","reclong":"12.616670","geolocation":{"type":"Point","coordinates":[12.61667,48.13333]}} +,{"name":"Mauerkirchen","id":"15446","nametype":"Valid","recclass":"L6","mass":"19000","fall":"Fell","year":"1768-01-01T00:00:00.000","reclat":"48.183330","reclong":"13.133330","geolocation":{"type":"Point","coordinates":[13.13333,48.18333]}} +,{"name":"Mauritius","id":"15447","nametype":"Valid","recclass":"L6","mass":"220","fall":"Fell","year":"1801-01-01T00:00:00.000","reclat":"-20.000000","reclong":"57.000000","geolocation":{"type":"Point","coordinates":[57,-20]}} +,{"name":"Mayo Belwa","id":"15451","nametype":"Valid","recclass":"Aubrite","mass":"4850","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"8.966670","reclong":"12.083330","geolocation":{"type":"Point","coordinates":[12.08333,8.96667]}} +,{"name":"Mazapil","id":"15453","nametype":"Valid","recclass":"Iron, IAB-sLL","mass":"4000","fall":"Fell","year":"1885-01-01T00:00:00.000","reclat":"24.683330","reclong":"-101.683330","geolocation":{"type":"Point","coordinates":[-101.68333,24.68333]}} +,{"name":"Maziba","id":"15454","nametype":"Valid","recclass":"L6","mass":"4975","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"-1.216670","reclong":"30.000000","geolocation":{"type":"Point","coordinates":[30,-1.21667]}} +,{"name":"Mbale","id":"15455","nametype":"Valid","recclass":"L5/6","mass":"150000","fall":"Fell","year":"1992-01-01T00:00:00.000","reclat":"1.066670","reclong":"34.166670","geolocation":{"type":"Point","coordinates":[34.16667,1.06667]}} +,{"name":"Medanitos","id":"15467","nametype":"Valid","recclass":"Eucrite-cm","mass":"31","fall":"Fell","year":"1953-01-01T00:00:00.000","reclat":"-27.250000","reclong":"-67.500000","geolocation":{"type":"Point","coordinates":[-67.5,-27.25]}} +,{"name":"Meerut","id":"15469","nametype":"Valid","recclass":"H5","mass":"22","fall":"Fell","year":"1861-01-01T00:00:00.000","reclat":"29.016670","reclong":"77.800000","geolocation":{"type":"Point","coordinates":[77.8,29.01667]}} +,{"name":"Meester-Cornelis","id":"15470","nametype":"Valid","recclass":"H5","mass":"24750","fall":"Fell","year":"1915-01-01T00:00:00.000","reclat":"-6.233330","reclong":"106.883330","geolocation":{"type":"Point","coordinates":[106.88333,-6.23333]}} +,{"name":"Menow","id":"15485","nametype":"Valid","recclass":"H4","mass":"10500","fall":"Fell","year":"1862-01-01T00:00:00.000","reclat":"53.183330","reclong":"13.150000","geolocation":{"type":"Point","coordinates":[13.15,53.18333]}} +,{"name":"Menziswyl","id":"15486","nametype":"Valid","recclass":"L5","mass":"28.9","fall":"Fell","year":"1903-01-01T00:00:00.000","reclat":"46.818670","reclong":"7.218170","geolocation":{"type":"Point","coordinates":[7.21817,46.81867]}} +,{"name":"Mern","id":"15489","nametype":"Valid","recclass":"L6","mass":"4000","fall":"Fell","year":"1878-01-01T00:00:00.000","reclat":"55.050000","reclong":"12.066670","geolocation":{"type":"Point","coordinates":[12.06667,55.05]}} +,{"name":"Meru","id":"15491","nametype":"Valid","recclass":"LL6","mass":"6000","fall":"Fell","year":"1945-01-01T00:00:00.000","reclat":"0.000000","reclong":"37.666670","geolocation":{"type":"Point","coordinates":[37.66667,0]}} +,{"name":"Merua","id":"15492","nametype":"Valid","recclass":"H5","mass":"71400","fall":"Fell","year":"1920-01-01T00:00:00.000","reclat":"25.483330","reclong":"81.983330","geolocation":{"type":"Point","coordinates":[81.98333,25.48333]}} +,{"name":"Messina","id":"15495","nametype":"Valid","recclass":"L5","mass":"2405","fall":"Fell","year":"1955-01-01T00:00:00.000","reclat":"38.183330","reclong":"15.566670","geolocation":{"type":"Point","coordinates":[15.56667,38.18333]}} +,{"name":"Meuselbach","id":"16626","nametype":"Valid","recclass":"L6","mass":"870","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"50.583330","reclong":"11.100000","geolocation":{"type":"Point","coordinates":[11.1,50.58333]}} +,{"name":"Mezel","id":"16627","nametype":"Valid","recclass":"L6","mass":"1300","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"45.766670","reclong":"3.250000","geolocation":{"type":"Point","coordinates":[3.25,45.76667]}} +,{"name":"Mezö-Madaras","id":"16628","nametype":"Valid","recclass":"L3.7","mass":"22700","fall":"Fell","year":"1852-01-01T00:00:00.000","reclat":"46.500000","reclong":"25.733330","geolocation":{"type":"Point","coordinates":[25.73333,46.5]}} +,{"name":"Mhow","id":"16629","nametype":"Valid","recclass":"L6","mass":"350","fall":"Fell","year":"1827-01-01T00:00:00.000","reclat":"25.900000","reclong":"83.616670","geolocation":{"type":"Point","coordinates":[83.61667,25.9]}} +,{"name":"Mianchi","id":"16631","nametype":"Valid","recclass":"H5","mass":"1100","fall":"Fell","year":"1980-01-01T00:00:00.000","reclat":"34.800000","reclong":"111.700000","geolocation":{"type":"Point","coordinates":[111.7,34.8]}} +,{"name":"Middlesbrough","id":"16632","nametype":"Valid","recclass":"L6","mass":"1600","fall":"Fell","year":"1881-01-01T00:00:00.000","reclat":"54.566670","reclong":"-1.166670","geolocation":{"type":"Point","coordinates":[-1.16667,54.56667]}} +,{"name":"Mifflin","id":"52090","nametype":"Valid","recclass":"L5","mass":"3584","fall":"Fell","year":"2010-01-01T00:00:00.000","reclat":"42.907500","reclong":"-90.365560","geolocation":{"type":"Point","coordinates":[-90.36556,42.9075]},":@computed_region_cbhk_fwbd":"41",":@computed_region_nnqa_25f4":"2996"} +,{"name":"Mighei","id":"16634","nametype":"Valid","recclass":"CM2","mass":"8000","fall":"Fell","year":"1889-01-01T00:00:00.000","reclat":"48.066670","reclong":"30.966670","geolocation":{"type":"Point","coordinates":[30.96667,48.06667]}} +,{"name":"Mihonoseki","id":"16635","nametype":"Valid","recclass":"L6","mass":"6380","fall":"Fell","year":"1992-01-01T00:00:00.000","reclat":"35.568330","reclong":"133.220000","geolocation":{"type":"Point","coordinates":[133.22,35.56833]}} +,{"name":"Mike","id":"16636","nametype":"Valid","recclass":"L6","mass":"224.2","fall":"Fell","year":"1944-01-01T00:00:00.000","reclat":"46.233330","reclong":"17.533330","geolocation":{"type":"Point","coordinates":[17.53333,46.23333]}} +,{"name":"Milena","id":"16640","nametype":"Valid","recclass":"L6","mass":"10000","fall":"Fell","year":"1842-01-01T00:00:00.000","reclat":"46.183330","reclong":"16.100000","geolocation":{"type":"Point","coordinates":[16.1,46.18333]}} +,{"name":"Millbillillie","id":"16643","nametype":"Valid","recclass":"Eucrite-mmict","mass":"330000","fall":"Fell","year":"1960-01-01T00:00:00.000","reclat":"-26.450000","reclong":"120.366670","geolocation":{"type":"Point","coordinates":[120.36667,-26.45]}} +,{"name":"Miller (Arkansas)","id":"16645","nametype":"Valid","recclass":"H5","mass":"16700","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"35.400000","reclong":"-92.050000","geolocation":{"type":"Point","coordinates":[-92.05,35.4]},":@computed_region_cbhk_fwbd":"15",":@computed_region_nnqa_25f4":"11"} +,{"name":"Minamino","id":"16692","nametype":"Valid","recclass":"L","mass":"1040","fall":"Fell","year":"1632-01-01T00:00:00.000","reclat":"35.078330","reclong":"136.933330","geolocation":{"type":"Point","coordinates":[136.93333,35.07833]}} +,{"name":"Mineo","id":"16696","nametype":"Valid","recclass":"Pallasite","mass":"42","fall":"Fell","year":"1826-01-01T00:00:00.000","reclat":"37.283330","reclong":"14.700000","geolocation":{"type":"Point","coordinates":[14.7,37.28333]}} +,{"name":"Min-Fan-Zhun","id":"16697","nametype":"Valid","recclass":"LL6","mass":"5500","fall":"Fell","year":"1952-01-01T00:00:00.000","reclat":"32.333330","reclong":"120.666670","geolocation":{"type":"Point","coordinates":[120.66667,32.33333]}} +,{"name":"Minnichhof","id":"16700","nametype":"Valid","recclass":"OC","mass":"550","fall":"Fell","year":"1905-01-01T00:00:00.000","reclat":"47.700000","reclong":"16.600000","geolocation":{"type":"Point","coordinates":[16.6,47.7]}} +,{"name":"Mirzapur","id":"16701","nametype":"Valid","recclass":"L5","mass":"8510","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"25.683330","reclong":"83.250000","geolocation":{"type":"Point","coordinates":[83.25,25.68333]}} +,{"name":"Misshof","id":"16703","nametype":"Valid","recclass":"H5","mass":"5800","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"56.666670","reclong":"23.000000","geolocation":{"type":"Point","coordinates":[23,56.66667]}} +,{"name":"Mjelleim","id":"16707","nametype":"Valid","recclass":"H","mass":"100.7","fall":"Fell","year":"1898-01-01T00:00:00.000","reclat":"61.733330","reclong":"5.933330","geolocation":{"type":"Point","coordinates":[5.93333,61.73333]}} +,{"name":"Mocs","id":"16709","nametype":"Valid","recclass":"L5-6","mass":"300000","fall":"Fell","year":"1882-01-01T00:00:00.000","reclat":"46.800000","reclong":"24.033330","geolocation":{"type":"Point","coordinates":[24.03333,46.8]}} +,{"name":"Modoc (1905)","id":"16711","nametype":"Valid","recclass":"L6","mass":"35000","fall":"Fell","year":"1905-01-01T00:00:00.000","reclat":"38.500000","reclong":"-101.100000","geolocation":{"type":"Point","coordinates":[-101.1,38.5]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1290"} +,{"name":"Mokoia","id":"16713","nametype":"Valid","recclass":"CV3","mass":"4500","fall":"Fell","year":"1908-01-01T00:00:00.000","reclat":"-39.633330","reclong":"174.400000","geolocation":{"type":"Point","coordinates":[174.4,-39.63333]}} +,{"name":"Molina","id":"16715","nametype":"Valid","recclass":"H5","mass":"144000","fall":"Fell","year":"1858-01-01T00:00:00.000","reclat":"38.116670","reclong":"-1.166670","geolocation":{"type":"Point","coordinates":[-1.16667,38.11667]}} +,{"name":"Molteno","id":"16717","nametype":"Valid","recclass":"Howardite","mass":"150","fall":"Fell","year":"1953-01-01T00:00:00.000","reclat":"-31.250000","reclong":"26.466670","geolocation":{"type":"Point","coordinates":[26.46667,-31.25]}} +,{"name":"Monahans (1998)","id":"16719","nametype":"Valid","recclass":"H5","mass":"2587","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"31.608330","reclong":"-102.858330","geolocation":{"type":"Point","coordinates":[-102.85833,31.60833]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"2957"} +,{"name":"Monroe","id":"16720","nametype":"Valid","recclass":"H4","mass":"8600","fall":"Fell","year":"1849-01-01T00:00:00.000","reclat":"35.250000","reclong":"-80.500000","geolocation":{"type":"Point","coordinates":[-80.5,35.25]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"636"} +,{"name":"Monte das Fortes","id":"16725","nametype":"Valid","recclass":"L5","mass":"4885","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"38.016670","reclong":"-8.250000","geolocation":{"type":"Point","coordinates":[-8.25,38.01667]}} +,{"name":"Monte Milone","id":"16726","nametype":"Valid","recclass":"L5","mass":"3130","fall":"Fell","year":"1846-01-01T00:00:00.000","reclat":"43.266670","reclong":"13.350000","geolocation":{"type":"Point","coordinates":[13.35,43.26667]}} +,{"name":"Montferré","id":"16727","nametype":"Valid","recclass":"H5","mass":"149000","fall":"Fell","year":"1923-01-01T00:00:00.000","reclat":"43.390560","reclong":"1.962500","geolocation":{"type":"Point","coordinates":[1.9625,43.39056]}} +,{"name":"Montlivault","id":"16729","nametype":"Valid","recclass":"L6","mass":"500","fall":"Fell","year":"1838-01-01T00:00:00.000","reclat":"47.633330","reclong":"1.583330","geolocation":{"type":"Point","coordinates":[1.58333,47.63333]}} +,{"name":"Monze","id":"16733","nametype":"Valid","recclass":"L6","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"-15.966670","reclong":"27.350000","geolocation":{"type":"Point","coordinates":[27.35,-15.96667]}} +,{"name":"Moore County","id":"16736","nametype":"Valid","recclass":"Eucrite-cm","mass":"1880","fall":"Fell","year":"1913-01-01T00:00:00.000","reclat":"35.416670","reclong":"-79.383330","geolocation":{"type":"Point","coordinates":[-79.38333,35.41667]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"2431"} +,{"name":"Mooresfort","id":"16737","nametype":"Valid","recclass":"H5","mass":"3520","fall":"Fell","year":"1810-01-01T00:00:00.000","reclat":"52.450000","reclong":"-8.333330","geolocation":{"type":"Point","coordinates":[-8.33333,52.45]}} +,{"name":"Moorleah","id":"16738","nametype":"Valid","recclass":"L6","mass":"8887.5","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"-40.975000","reclong":"145.600000","geolocation":{"type":"Point","coordinates":[145.6,-40.975]}} +,{"name":"Moradabad","id":"16740","nametype":"Valid","recclass":"L6","mass":"70","fall":"Fell","year":"1808-01-01T00:00:00.000","reclat":"28.783330","reclong":"78.833330","geolocation":{"type":"Point","coordinates":[78.83333,28.78333]}} +,{"name":"Morávka","id":"16742","nametype":"Valid","recclass":"H5","mass":"633","fall":"Fell","year":"2000-01-01T00:00:00.000","reclat":"49.600000","reclong":"18.533330","geolocation":{"type":"Point","coordinates":[18.53333,49.6]}} +,{"name":"Mornans","id":"16747","nametype":"Valid","recclass":"H5","mass":"1300","fall":"Fell","year":"1875-01-01T00:00:00.000","reclat":"44.600000","reclong":"5.133330","geolocation":{"type":"Point","coordinates":[5.13333,44.6]}} +,{"name":"Moss","id":"36592","nametype":"Valid","recclass":"CO3.6","mass":"3763","fall":"Fell","year":"2006-01-01T00:00:00.000","reclat":"59.433330","reclong":"10.700000","geolocation":{"type":"Point","coordinates":[10.7,59.43333]}} +,{"name":"Moti-ka-nagla","id":"16759","nametype":"Valid","recclass":"H6","mass":"1500","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"26.833330","reclong":"77.333330","geolocation":{"type":"Point","coordinates":[77.33333,26.83333]}} +,{"name":"Motta di Conti","id":"16762","nametype":"Valid","recclass":"H4","mass":"9150","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"45.200000","reclong":"8.500000","geolocation":{"type":"Point","coordinates":[8.5,45.2]}} +,{"name":"Mount Browne","id":"16766","nametype":"Valid","recclass":"H6","mass":"11300","fall":"Fell","year":"1902-01-01T00:00:00.000","reclat":"-29.800000","reclong":"141.700000","geolocation":{"type":"Point","coordinates":[141.7,-29.8]}} +,{"name":"Mount Tazerzait","id":"16804","nametype":"Valid","recclass":"L5","mass":"110000","fall":"Fell","year":"1991-01-01T00:00:00.000","reclat":"18.700000","reclong":"4.800000","geolocation":{"type":"Point","coordinates":[4.8,18.7]}} +,{"name":"Mount Vaisi","id":"16805","nametype":"Valid","recclass":"Stone-uncl","mass":"17000","fall":"Fell","year":"1637-01-01T00:00:00.000","reclat":"44.083330","reclong":"6.866670","geolocation":{"type":"Point","coordinates":[6.86667,44.08333]}} +,{"name":"Mtola","id":"16820","nametype":"Valid","recclass":"Stone-uncl","mass":"1100","fall":"Fell","year":"1944-01-01T00:00:00.000","reclat":"-11.500000","reclong":"33.500000","geolocation":{"type":"Point","coordinates":[33.5,-11.5]}} +,{"name":"Muddoor","id":"16841","nametype":"Valid","recclass":"L5","mass":"4400","fall":"Fell","year":"1865-01-01T00:00:00.000","reclat":"12.633330","reclong":"77.016670","geolocation":{"type":"Point","coordinates":[77.01667,12.63333]}} +,{"name":"Mulletiwu","id":"16851","nametype":"Valid","recclass":"L","mass":"25.5","fall":"Fell","year":"1795-01-01T00:00:00.000","reclat":"9.333330","reclong":"80.833330","geolocation":{"type":"Point","coordinates":[80.83333,9.33333]}} +,{"name":"Muraid","id":"16874","nametype":"Valid","recclass":"L6","mass":"4703","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"24.500000","reclong":"90.216670","geolocation":{"type":"Point","coordinates":[90.21667,24.5]}} +,{"name":"Murchison","id":"16875","nametype":"Valid","recclass":"CM2","mass":"100000","fall":"Fell","year":"1969-01-01T00:00:00.000","reclat":"-36.616670","reclong":"145.200000","geolocation":{"type":"Point","coordinates":[145.2,-36.61667]}} +,{"name":"Murray","id":"16882","nametype":"Valid","recclass":"CM2","mass":"12600","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"36.600000","reclong":"-88.100000","geolocation":{"type":"Point","coordinates":[-88.1,36.6]},":@computed_region_cbhk_fwbd":"36",":@computed_region_nnqa_25f4":"237"} +,{"name":"Muzaffarpur","id":"16885","nametype":"Valid","recclass":"Iron, IAB-sHL","mass":"1245","fall":"Fell","year":"1964-01-01T00:00:00.000","reclat":"26.133330","reclong":"85.533330","geolocation":{"type":"Point","coordinates":[85.53333,26.13333]}} +,{"name":"Myhee Caunta","id":"16887","nametype":"Valid","recclass":"OC","fall":"Fell","year":"1842-01-01T00:00:00.000","reclat":"23.050000","reclong":"72.633330","geolocation":{"type":"Point","coordinates":[72.63333,23.05]}} +,{"name":"Nadiabondi","id":"16889","nametype":"Valid","recclass":"H5","mass":"8165","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"12.000000","reclong":"1.000000","geolocation":{"type":"Point","coordinates":[1,12]}} +,{"name":"Nagai","id":"16890","nametype":"Valid","recclass":"L6","mass":"1810","fall":"Fell","year":"1922-01-01T00:00:00.000","reclat":"38.121670","reclong":"140.061670","geolocation":{"type":"Point","coordinates":[140.06167,38.12167]}} +,{"name":"Nagaria","id":"16892","nametype":"Valid","recclass":"Eucrite-cm","mass":"20","fall":"Fell","year":"1875-01-01T00:00:00.000","reclat":"26.983330","reclong":"78.216670","geolocation":{"type":"Point","coordinates":[78.21667,26.98333]}} +,{"name":"Nagy-Borové","id":"16893","nametype":"Valid","recclass":"L5","mass":"6100","fall":"Fell","year":"1895-01-01T00:00:00.000","reclat":"49.166670","reclong":"19.500000","geolocation":{"type":"Point","coordinates":[19.5,49.16667]}} +,{"name":"Nakhla","id":"16898","nametype":"Valid","recclass":"Martian (nakhlite)","mass":"10000","fall":"Fell","year":"1911-01-01T00:00:00.000","reclat":"31.316670","reclong":"30.350000","geolocation":{"type":"Point","coordinates":[30.35,31.31667]}} +,{"name":"Nakhon Pathom","id":"16899","nametype":"Valid","recclass":"L6","mass":"23200","fall":"Fell","year":"1923-01-01T00:00:00.000","reclat":"13.733330","reclong":"100.083330","geolocation":{"type":"Point","coordinates":[100.08333,13.73333]}} +,{"name":"Nammianthal","id":"16902","nametype":"Valid","recclass":"H5","mass":"4500","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"12.283330","reclong":"79.200000","geolocation":{"type":"Point","coordinates":[79.2,12.28333]}} +,{"name":"Nan Yang Pao","id":"16903","nametype":"Valid","recclass":"L6","mass":"52900","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"35.666670","reclong":"103.500000","geolocation":{"type":"Point","coordinates":[103.5,35.66667]}} +,{"name":"Nanjemoy","id":"16904","nametype":"Valid","recclass":"H6","mass":"7500","fall":"Fell","year":"1825-01-01T00:00:00.000","reclat":"38.416670","reclong":"-77.166670","geolocation":{"type":"Point","coordinates":[-77.16667,38.41667]},":@computed_region_cbhk_fwbd":"45",":@computed_region_nnqa_25f4":"419"} +,{"name":"Nantong","id":"16907","nametype":"Valid","recclass":"H6","mass":"529","fall":"Fell","year":"1984-01-01T00:00:00.000","reclat":"32.116670","reclong":"121.800000","geolocation":{"type":"Point","coordinates":[121.8,32.11667]}} +,{"name":"Naoki","id":"16908","nametype":"Valid","recclass":"H6","mass":"17000","fall":"Fell","year":"1928-01-01T00:00:00.000","reclat":"19.250000","reclong":"77.000000","geolocation":{"type":"Point","coordinates":[77,19.25]}} +,{"name":"Naragh","id":"16909","nametype":"Valid","recclass":"H6","mass":"2700","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"33.750000","reclong":"51.500000","geolocation":{"type":"Point","coordinates":[51.5,33.75]}} +,{"name":"Narellan","id":"16912","nametype":"Valid","recclass":"L6","mass":"367.5","fall":"Fell","year":"1928-01-01T00:00:00.000","reclat":"-34.050000","reclong":"150.688890","geolocation":{"type":"Point","coordinates":[150.68889,-34.05]}} +,{"name":"Narni","id":"16914","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"0921-01-01T00:00:00.000","reclat":"42.516670","reclong":"12.516670","geolocation":{"type":"Point","coordinates":[12.51667,42.51667]}} +,{"name":"Nassirah","id":"16922","nametype":"Valid","recclass":"H4","mass":"347","fall":"Fell","year":"1936-01-01T00:00:00.000","reclat":"-21.733330","reclong":"165.900000","geolocation":{"type":"Point","coordinates":[165.9,-21.73333]}} +,{"name":"Natal","id":"16923","nametype":"Valid","recclass":"Stone-uncl","mass":"1.4","fall":"Fell","year":"1973-01-01T00:00:00.000"} +,{"name":"Nawapali","id":"16927","nametype":"Valid","recclass":"CM2","mass":"105","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"21.250000","reclong":"83.666670","geolocation":{"type":"Point","coordinates":[83.66667,21.25]}} +,{"name":"Neagari","id":"16934","nametype":"Valid","recclass":"L6","mass":"420","fall":"Fell","year":"1995-01-01T00:00:00.000","reclat":"36.449170","reclong":"136.465280","geolocation":{"type":"Point","coordinates":[136.46528,36.44917]}} +,{"name":"Nedagolla","id":"16935","nametype":"Valid","recclass":"Iron, ungrouped","mass":"4500","fall":"Fell","year":"1870-01-01T00:00:00.000","reclat":"18.683330","reclong":"83.483330","geolocation":{"type":"Point","coordinates":[83.48333,18.68333]}} +,{"name":"Nejo","id":"16941","nametype":"Valid","recclass":"L6","mass":"2450","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"9.500000","reclong":"35.333330","geolocation":{"type":"Point","coordinates":[35.33333,9.5]}} +,{"name":"Nerft","id":"16945","nametype":"Valid","recclass":"L6","mass":"10250","fall":"Fell","year":"1864-01-01T00:00:00.000","reclat":"56.500000","reclong":"21.500000","geolocation":{"type":"Point","coordinates":[21.5,56.5]}} +,{"name":"Neuschwanstein","id":"16950","nametype":"Valid","recclass":"EL6","mass":"6189","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"47.525000","reclong":"10.808330","geolocation":{"type":"Point","coordinates":[10.80833,47.525]}} +,{"name":"New Concord","id":"16953","nametype":"Valid","recclass":"L6","mass":"230000","fall":"Fell","year":"1860-01-01T00:00:00.000","reclat":"40.000000","reclong":"-81.766670","geolocation":{"type":"Point","coordinates":[-81.76667,40]},":@computed_region_cbhk_fwbd":"38",":@computed_region_nnqa_25f4":"2615"} +,{"name":"New Halfa","id":"16954","nametype":"Valid","recclass":"L4","mass":"12000","fall":"Fell","year":"1994-01-01T00:00:00.000","reclat":"15.366670","reclong":"35.683330","geolocation":{"type":"Point","coordinates":[35.68333,15.36667]}} +,{"name":"New Orleans","id":"16960","nametype":"Valid","recclass":"H5","mass":"19256","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"29.947180","reclong":"-90.109760","geolocation":{"type":"Point","coordinates":[-90.10976,29.94718]},":@computed_region_cbhk_fwbd":"22",":@computed_region_nnqa_25f4":"1667"} +,{"name":"Ngawi","id":"16966","nametype":"Valid","recclass":"LL3.6","mass":"1393","fall":"Fell","year":"1883-01-01T00:00:00.000","reclat":"-7.450000","reclong":"111.416670","geolocation":{"type":"Point","coordinates":[111.41667,-7.45]}} +,{"name":"N'Goureyma","id":"16968","nametype":"Valid","recclass":"Iron, ungrouped","mass":"37500","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"13.850000","reclong":"-4.383330","geolocation":{"type":"Point","coordinates":[-4.38333,13.85]}} +,{"name":"Nicorps","id":"16970","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1750-01-01T00:00:00.000","reclat":"49.033330","reclong":"-1.433330","geolocation":{"type":"Point","coordinates":[-1.43333,49.03333]}} +,{"name":"Niger (L6)","id":"16974","nametype":"Valid","recclass":"L6","mass":"3.3","fall":"Fell","year":"1967-01-01T00:00:00.000"} +,{"name":"Niger (LL6)","id":"16975","nametype":"Valid","recclass":"LL6","mass":"3.3","fall":"Fell","year":"1967-01-01T00:00:00.000"} +,{"name":"Nikolaevka","id":"16976","nametype":"Valid","recclass":"H4","mass":"3996","fall":"Fell","year":"1935-01-01T00:00:00.000","reclat":"52.450000","reclong":"78.633330","geolocation":{"type":"Point","coordinates":[78.63333,52.45]}} +,{"name":"Nikolskoe","id":"16977","nametype":"Valid","recclass":"L4","mass":"6000","fall":"Fell","year":"1954-01-01T00:00:00.000","reclat":"56.116670","reclong":"37.333330","geolocation":{"type":"Point","coordinates":[37.33333,56.11667]}} +,{"name":"Ningbo","id":"16980","nametype":"Valid","recclass":"Iron, IVA","mass":"14250","fall":"Fell","year":"1975-01-01T00:00:00.000","reclat":"29.866670","reclong":"121.483330","geolocation":{"type":"Point","coordinates":[121.48333,29.86667]}} +,{"name":"Ningqiang","id":"16981","nametype":"Valid","recclass":"C3-ung","mass":"4610","fall":"Fell","year":"1983-01-01T00:00:00.000","reclat":"32.925000","reclong":"105.906670","geolocation":{"type":"Point","coordinates":[105.90667,32.925]}} +,{"name":"Nio","id":"16982","nametype":"Valid","recclass":"H3-4","mass":"467","fall":"Fell","year":"1897-01-01T00:00:00.000","reclat":"34.200000","reclong":"131.566670","geolocation":{"type":"Point","coordinates":[131.56667,34.2]}} +,{"name":"N'Kandhla","id":"16983","nametype":"Valid","recclass":"Iron, IID","mass":"17200","fall":"Fell","year":"1912-01-01T00:00:00.000","reclat":"-28.566670","reclong":"30.700000","geolocation":{"type":"Point","coordinates":[30.7,-28.56667]}} +,{"name":"Nobleborough","id":"16984","nametype":"Valid","recclass":"Eucrite-pmict","mass":"2300","fall":"Fell","year":"1823-01-01T00:00:00.000","reclat":"44.083330","reclong":"-69.483330","geolocation":{"type":"Point","coordinates":[-69.48333,44.08333]},":@computed_region_cbhk_fwbd":"49",":@computed_region_nnqa_25f4":"1683"} +,{"name":"Noblesville","id":"16985","nametype":"Valid","recclass":"H4-6","mass":"483.7","fall":"Fell","year":"1991-01-01T00:00:00.000","reclat":"40.085280","reclong":"-86.055000","geolocation":{"type":"Point","coordinates":[-86.055,40.08528]},":@computed_region_cbhk_fwbd":"35",":@computed_region_nnqa_25f4":"2238"} +,{"name":"Nogata","id":"16988","nametype":"Valid","recclass":"L6","mass":"472","fall":"Fell","year":"0861-01-01T00:00:00.000","reclat":"33.725000","reclong":"130.750000","geolocation":{"type":"Point","coordinates":[130.75,33.725]}} +,{"name":"Nogoya","id":"16989","nametype":"Valid","recclass":"CM2","mass":"4000","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"-32.366670","reclong":"-59.833330","geolocation":{"type":"Point","coordinates":[-59.83333,-32.36667]}} +,{"name":"Norfork","id":"16994","nametype":"Valid","recclass":"Iron, IIIAB","mass":"1050","fall":"Fell","year":"1918-01-01T00:00:00.000","reclat":"36.216670","reclong":"-92.266670","geolocation":{"type":"Point","coordinates":[-92.26667,36.21667]},":@computed_region_cbhk_fwbd":"15",":@computed_region_nnqa_25f4":"10"} +,{"name":"Norton County","id":"17922","nametype":"Valid","recclass":"Aubrite","mass":"1100000","fall":"Fell","year":"1948-01-01T00:00:00.000","reclat":"39.683330","reclong":"-99.866670","geolocation":{"type":"Point","coordinates":[-99.86667,39.68333]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1252"} +,{"name":"Noventa Vicentina","id":"17930","nametype":"Valid","recclass":"H4","mass":"177","fall":"Fell","year":"1971-01-01T00:00:00.000","reclat":"45.291670","reclong":"11.527220","geolocation":{"type":"Point","coordinates":[11.52722,45.29167]}} +,{"name":"Novo-Urei","id":"17933","nametype":"Valid","recclass":"Ureilite","mass":"1900","fall":"Fell","year":"1886-01-01T00:00:00.000","reclat":"54.816670","reclong":"46.000000","geolocation":{"type":"Point","coordinates":[46,54.81667]}} +,{"name":"Novy-Ergi","id":"17934","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1662-01-01T00:00:00.000","reclat":"58.550000","reclong":"31.333330","geolocation":{"type":"Point","coordinates":[31.33333,58.55]}} +,{"name":"Novy-Projekt","id":"17935","nametype":"Valid","recclass":"OC","mass":"1001","fall":"Fell","year":"1908-01-01T00:00:00.000","reclat":"56.000000","reclong":"22.000000","geolocation":{"type":"Point","coordinates":[22,56]}} +,{"name":"Noyan-Bogdo","id":"17936","nametype":"Valid","recclass":"L6","mass":"250","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"42.916670","reclong":"102.466670","geolocation":{"type":"Point","coordinates":[102.46667,42.91667]}} +,{"name":"Nuevo Mercurio","id":"17938","nametype":"Valid","recclass":"H5","mass":"50000","fall":"Fell","year":"1978-01-01T00:00:00.000","reclat":"24.300000","reclong":"-102.133330","geolocation":{"type":"Point","coordinates":[-102.13333,24.3]}} +,{"name":"Nulles","id":"17959","nametype":"Valid","recclass":"H6","mass":"5000","fall":"Fell","year":"1851-01-01T00:00:00.000","reclat":"41.633330","reclong":"0.750000","geolocation":{"type":"Point","coordinates":[0.75,41.63333]}} +,{"name":"Numakai","id":"17960","nametype":"Valid","recclass":"H4","mass":"363","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"43.333330","reclong":"141.866670","geolocation":{"type":"Point","coordinates":[141.86667,43.33333]}} +,{"name":"Nyaung","id":"17969","nametype":"Valid","recclass":"Iron, IIIAB","mass":"737.6","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"21.208330","reclong":"94.916670","geolocation":{"type":"Point","coordinates":[94.91667,21.20833]}} +,{"name":"Nyirábrany","id":"17970","nametype":"Valid","recclass":"LL5","mass":"1100","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"47.550000","reclong":"22.025000","geolocation":{"type":"Point","coordinates":[22.025,47.55]}} +,{"name":"Ochansk","id":"17979","nametype":"Valid","recclass":"H4","mass":"500000","fall":"Fell","year":"1887-01-01T00:00:00.000","reclat":"57.783330","reclong":"55.266670","geolocation":{"type":"Point","coordinates":[55.26667,57.78333]}} +,{"name":"Oesede","id":"17988","nametype":"Valid","recclass":"H5","mass":"1400","fall":"Fell","year":"1927-01-01T00:00:00.000","reclat":"52.283330","reclong":"8.050000","geolocation":{"type":"Point","coordinates":[8.05,52.28333]}} +,{"name":"Oesel","id":"17989","nametype":"Valid","recclass":"L6","mass":"6000","fall":"Fell","year":"1855-01-01T00:00:00.000","reclat":"58.500000","reclong":"23.000000","geolocation":{"type":"Point","coordinates":[23,58.5]}} +,{"name":"Ofehértó","id":"17990","nametype":"Valid","recclass":"L6","mass":"3750","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"47.883330","reclong":"22.033330","geolocation":{"type":"Point","coordinates":[22.03333,47.88333]}} +,{"name":"Ogi","id":"17994","nametype":"Valid","recclass":"H6","mass":"14360","fall":"Fell","year":"1741-01-01T00:00:00.000","reclat":"33.283330","reclong":"130.200000","geolocation":{"type":"Point","coordinates":[130.2,33.28333]}} +,{"name":"Ohaba","id":"17995","nametype":"Valid","recclass":"H5","mass":"16250","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"46.066670","reclong":"23.583330","geolocation":{"type":"Point","coordinates":[23.58333,46.06667]}} +,{"name":"Ohuma","id":"17996","nametype":"Valid","recclass":"L5","mass":"7700","fall":"Fell","year":"1963-01-01T00:00:00.000","reclat":"6.750000","reclong":"8.500000","geolocation":{"type":"Point","coordinates":[8.5,6.75]}} +,{"name":"Ojuelos Altos","id":"17997","nametype":"Valid","recclass":"L6","mass":"5850","fall":"Fell","year":"1926-01-01T00:00:00.000","reclat":"38.183330","reclong":"-5.400000","geolocation":{"type":"Point","coordinates":[-5.4,38.18333]}} +,{"name":"Okabe","id":"17998","nametype":"Valid","recclass":"H5","mass":"194","fall":"Fell","year":"1958-01-01T00:00:00.000","reclat":"36.183330","reclong":"139.216670","geolocation":{"type":"Point","coordinates":[139.21667,36.18333]}} +,{"name":"Okano","id":"18000","nametype":"Valid","recclass":"Iron, IIAB","mass":"4742","fall":"Fell","year":"1904-01-01T00:00:00.000","reclat":"35.083330","reclong":"135.200000","geolocation":{"type":"Point","coordinates":[135.2,35.08333]}} +,{"name":"Okniny","id":"18002","nametype":"Valid","recclass":"LL6","mass":"12000","fall":"Fell","year":"1834-01-01T00:00:00.000","reclat":"50.833330","reclong":"25.500000","geolocation":{"type":"Point","coordinates":[25.5,50.83333]}} +,{"name":"Oldenburg (1930)","id":"18009","nametype":"Valid","recclass":"L6","mass":"16570","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"52.950000","reclong":"8.166670","geolocation":{"type":"Point","coordinates":[8.16667,52.95]}} +,{"name":"Oliva-Gandia","id":"18012","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1520-01-01T00:00:00.000","reclat":"39.000000","reclong":"-0.033330","geolocation":{"type":"Point","coordinates":[-0.03333,39]}} +,{"name":"Olivenza","id":"18013","nametype":"Valid","recclass":"LL5","mass":"150000","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"38.716670","reclong":"-7.066670","geolocation":{"type":"Point","coordinates":[-7.06667,38.71667]}} +,{"name":"Olmedilla de Alarcón","id":"18015","nametype":"Valid","recclass":"H5","mass":"40000","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"39.566670","reclong":"-2.100000","geolocation":{"type":"Point","coordinates":[-2.1,39.56667]}} +,{"name":"Omolon","id":"18019","nametype":"Valid","recclass":"Pallasite, PMG","mass":"250000","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"64.020000","reclong":"161.808330","geolocation":{"type":"Point","coordinates":[161.80833,64.02]}} +,{"name":"Orgueil","id":"18026","nametype":"Valid","recclass":"CI1","mass":"14000","fall":"Fell","year":"1864-01-01T00:00:00.000","reclat":"43.883330","reclong":"1.383330","geolocation":{"type":"Point","coordinates":[1.38333,43.88333]}} +,{"name":"Orlando","id":"34489","nametype":"Valid","recclass":"Eucrite","mass":"180","fall":"Fell","year":"2004-01-01T00:00:00.000","reclat":"28.547500","reclong":"-81.362220","geolocation":{"type":"Point","coordinates":[-81.36222,28.5475]},":@computed_region_cbhk_fwbd":"30",":@computed_region_nnqa_25f4":"1078"} +,{"name":"Ornans","id":"18030","nametype":"Valid","recclass":"CO3.4","mass":"6000","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"47.116670","reclong":"6.150000","geolocation":{"type":"Point","coordinates":[6.15,47.11667]}} +,{"name":"Ortenau","id":"18033","nametype":"Valid","recclass":"Stone-uncl","mass":"4500","fall":"Fell","year":"1671-01-01T00:00:00.000","reclat":"48.500000","reclong":"8.000000","geolocation":{"type":"Point","coordinates":[8,48.5]}} +,{"name":"Orvinio","id":"18034","nametype":"Valid","recclass":"H6","mass":"3400","fall":"Fell","year":"1872-01-01T00:00:00.000","reclat":"42.133330","reclong":"12.933330","geolocation":{"type":"Point","coordinates":[12.93333,42.13333]}} +,{"name":"Oterøy","id":"18042","nametype":"Valid","recclass":"L6","mass":"246","fall":"Fell","year":"1928-01-01T00:00:00.000","reclat":"58.883330","reclong":"9.400000","geolocation":{"type":"Point","coordinates":[9.4,58.88333]}} +,{"name":"Otomi","id":"18045","nametype":"Valid","recclass":"H","mass":"6510","fall":"Fell","year":"1867-01-01T00:00:00.000","reclat":"38.400000","reclong":"140.350000","geolocation":{"type":"Point","coordinates":[140.35,38.4]}} +,{"name":"Ottawa","id":"18046","nametype":"Valid","recclass":"LL6","mass":"840","fall":"Fell","year":"1896-01-01T00:00:00.000","reclat":"38.600000","reclong":"-95.216670","geolocation":{"type":"Point","coordinates":[-95.21667,38.6]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1947"} +,{"name":"Ouadangou","id":"56729","nametype":"Valid","recclass":"L5","mass":"4440","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"12.900000","reclong":"0.080000","geolocation":{"type":"Point","coordinates":[0.08,12.9]}} +,{"name":"Oued el Hadjar","id":"18050","nametype":"Valid","recclass":"LL6","mass":"1215.5","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"30.180000","reclong":"-6.577170","geolocation":{"type":"Point","coordinates":[-6.57717,30.18]}} +,{"name":"Oum Dreyga","id":"31282","nametype":"Valid","recclass":"H3-5","mass":"17000","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"24.300000","reclong":"-13.100000","geolocation":{"type":"Point","coordinates":[-13.1,24.3]}} +,{"name":"Ourique","id":"18052","nametype":"Valid","recclass":"H4","mass":"20000","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"37.608330","reclong":"-8.280000","geolocation":{"type":"Point","coordinates":[-8.28,37.60833]}} +,{"name":"Ovambo","id":"18055","nametype":"Valid","recclass":"L6","mass":"121.5","fall":"Fell","year":"1900-01-01T00:00:00.000","reclat":"-18.000000","reclong":"16.000000","geolocation":{"type":"Point","coordinates":[16,-18]}} +,{"name":"Oviedo","id":"18058","nametype":"Valid","recclass":"H5","mass":"205","fall":"Fell","year":"1856-01-01T00:00:00.000","reclat":"43.400000","reclong":"-5.866670","geolocation":{"type":"Point","coordinates":[-5.86667,43.4]}} +,{"name":"Owrucz","id":"18062","nametype":"Valid","recclass":"OC","fall":"Fell","year":"1775-01-01T00:00:00.000","reclat":"51.333330","reclong":"28.833330","geolocation":{"type":"Point","coordinates":[28.83333,51.33333]}} +,{"name":"Pacula","id":"18068","nametype":"Valid","recclass":"L6","mass":"3400","fall":"Fell","year":"1881-01-01T00:00:00.000","reclat":"21.050000","reclong":"-99.300000","geolocation":{"type":"Point","coordinates":[-99.3,21.05]}} +,{"name":"Padvarninkai","id":"18069","nametype":"Valid","recclass":"Eucrite-mmict","mass":"3858","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"55.666670","reclong":"25.000000","geolocation":{"type":"Point","coordinates":[25,55.66667]}} +,{"name":"Paitan","id":"18072","nametype":"Valid","recclass":"H6","mass":"515","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"17.743330","reclong":"120.455830","geolocation":{"type":"Point","coordinates":[120.45583,17.74333]}} +,{"name":"Palahatchie","id":"18073","nametype":"Valid","recclass":"OC","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"32.316670","reclong":"-89.716670","geolocation":{"type":"Point","coordinates":[-89.71667,32.31667]},":@computed_region_cbhk_fwbd":"32",":@computed_region_nnqa_25f4":"503"} +,{"name":"Palca de Aparzo","id":"18074","nametype":"Valid","recclass":"L5","mass":"1430","fall":"Fell","year":"1988-01-01T00:00:00.000","reclat":"-23.116670","reclong":"-65.100000","geolocation":{"type":"Point","coordinates":[-65.1,-23.11667]}} +,{"name":"Palinshih","id":"18077","nametype":"Valid","recclass":"Iron","mass":"18000","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"43.483330","reclong":"118.616670","geolocation":{"type":"Point","coordinates":[118.61667,43.48333]}} +,{"name":"Palmyra","id":"18079","nametype":"Valid","recclass":"L3","mass":"135","fall":"Fell","year":"1926-01-01T00:00:00.000","reclat":"39.800000","reclong":"-91.500000","geolocation":{"type":"Point","coordinates":[-91.5,39.8]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"2122"} +,{"name":"Palolo Valley","id":"18082","nametype":"Valid","recclass":"H5","mass":"682","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"21.300000","reclong":"-157.783330","geolocation":{"type":"Point","coordinates":[-157.78333,21.3]},":@computed_region_cbhk_fwbd":"4",":@computed_region_nnqa_25f4":"1657"} +,{"name":"Dominion Range 03239","id":"32591","nametype":"Valid","recclass":"L6","mass":"69.5","fall":"Found","year":"2002-01-01T00:00:00.000"} +,{"name":"Pampanga","id":"18093","nametype":"Valid","recclass":"L5","mass":"10500","fall":"Fell","year":"1859-01-01T00:00:00.000","reclat":"15.083330","reclong":"120.700000","geolocation":{"type":"Point","coordinates":[120.7,15.08333]}} +,{"name":"Pantar","id":"18098","nametype":"Valid","recclass":"H5","mass":"2130","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"8.066670","reclong":"124.283330","geolocation":{"type":"Point","coordinates":[124.28333,8.06667]}} +,{"name":"Paragould","id":"18101","nametype":"Valid","recclass":"LL5","mass":"408000","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"36.066670","reclong":"-90.500000","geolocation":{"type":"Point","coordinates":[-90.5,36.06667]},":@computed_region_cbhk_fwbd":"15",":@computed_region_nnqa_25f4":"1023"} +,{"name":"Parambu","id":"18102","nametype":"Valid","recclass":"LL5","mass":"2000","fall":"Fell","year":"1967-01-01T00:00:00.000","reclat":"-6.233330","reclong":"-40.700000","geolocation":{"type":"Point","coordinates":[-40.7,-6.23333]}} +,{"name":"Paranaiba","id":"18103","nametype":"Valid","recclass":"L6","mass":"100000","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"-19.133330","reclong":"-51.666670","geolocation":{"type":"Point","coordinates":[-51.66667,-19.13333]}} +,{"name":"Park Forest","id":"18106","nametype":"Valid","recclass":"L5","mass":"18000","fall":"Fell","year":"2003-01-01T00:00:00.000","reclat":"41.484720","reclong":"-87.679170","geolocation":{"type":"Point","coordinates":[-87.67917,41.48472]},":@computed_region_cbhk_fwbd":"34",":@computed_region_nnqa_25f4":"1863"} +,{"name":"Parnallee","id":"18108","nametype":"Valid","recclass":"LL3.6","mass":"77600","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"9.233330","reclong":"78.350000","geolocation":{"type":"Point","coordinates":[78.35,9.23333]}} +,{"name":"Parsa","id":"18109","nametype":"Valid","recclass":"EH3","mass":"800","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"26.200000","reclong":"85.400000","geolocation":{"type":"Point","coordinates":[85.4,26.2]}} +,{"name":"Pasamonte","id":"18110","nametype":"Valid","recclass":"Eucrite-pmict","mass":"5100","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"36.216670","reclong":"-103.400000","geolocation":{"type":"Point","coordinates":[-103.4,36.21667]},":@computed_region_cbhk_fwbd":"11",":@computed_region_nnqa_25f4":"1994"} +,{"name":"Patora","id":"18112","nametype":"Valid","recclass":"H6","mass":"4375","fall":"Fell","year":"1969-01-01T00:00:00.000","reclat":"20.936940","reclong":"82.050000","geolocation":{"type":"Point","coordinates":[82.05,20.93694]}} +,{"name":"Patrimonio","id":"18116","nametype":"Valid","recclass":"L6","mass":"2121","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"-19.533330","reclong":"-48.566670","geolocation":{"type":"Point","coordinates":[-48.56667,-19.53333]}} +,{"name":"Patti","id":"18118","nametype":"Valid","recclass":"Iron","mass":"12","fall":"Fell","year":"1922-01-01T00:00:00.000","reclat":"38.133330","reclong":"14.966670","geolocation":{"type":"Point","coordinates":[14.96667,38.13333]}} +,{"name":"Patwar","id":"18171","nametype":"Valid","recclass":"Mesosiderite-A1","mass":"37350","fall":"Fell","year":"1935-01-01T00:00:00.000","reclat":"23.150000","reclong":"91.183330","geolocation":{"type":"Point","coordinates":[91.18333,23.15]}} +,{"name":"Pavel","id":"18173","nametype":"Valid","recclass":"H5","mass":"2968","fall":"Fell","year":"1966-01-01T00:00:00.000","reclat":"43.466670","reclong":"25.516670","geolocation":{"type":"Point","coordinates":[25.51667,43.46667]}} +,{"name":"Pavlodar (stone)","id":"18175","nametype":"Valid","recclass":"H5","mass":"142.5","fall":"Fell","year":"1938-01-01T00:00:00.000","reclat":"52.300000","reclong":"77.033330","geolocation":{"type":"Point","coordinates":[77.03333,52.3]}} +,{"name":"Pavlograd","id":"18176","nametype":"Valid","recclass":"L6","mass":"40000","fall":"Fell","year":"1826-01-01T00:00:00.000","reclat":"48.533330","reclong":"35.983330","geolocation":{"type":"Point","coordinates":[35.98333,48.53333]}} +,{"name":"Pavlovka","id":"18177","nametype":"Valid","recclass":"Howardite","mass":"2000","fall":"Fell","year":"1882-01-01T00:00:00.000","reclat":"52.033330","reclong":"43.000000","geolocation":{"type":"Point","coordinates":[43,52.03333]}} +,{"name":"Pê","id":"18179","nametype":"Valid","recclass":"L6","fall":"Fell","year":"1989-01-01T00:00:00.000","reclat":"11.333670","reclong":"-3.542170","geolocation":{"type":"Point","coordinates":[-3.54217,11.33367]}} +,{"name":"Peace River","id":"18180","nametype":"Valid","recclass":"L6","mass":"45760","fall":"Fell","year":"1963-01-01T00:00:00.000","reclat":"56.133330","reclong":"-117.933330","geolocation":{"type":"Point","coordinates":[-117.93333,56.13333]}} +,{"name":"Peckelsheim","id":"18181","nametype":"Valid","recclass":"Diogenite-pm","mass":"117.8","fall":"Fell","year":"1953-01-01T00:00:00.000","reclat":"51.666670","reclong":"9.250000","geolocation":{"type":"Point","coordinates":[9.25,51.66667]}} +,{"name":"Peekskill","id":"18782","nametype":"Valid","recclass":"H6","mass":"12570","fall":"Fell","year":"1992-01-01T00:00:00.000","reclat":"41.283330","reclong":"-73.916670","geolocation":{"type":"Point","coordinates":[-73.91667,41.28333]},":@computed_region_cbhk_fwbd":"47",":@computed_region_nnqa_25f4":"2185"} +,{"name":"Peña Blanca Spring","id":"18786","nametype":"Valid","recclass":"Aubrite","mass":"70000","fall":"Fell","year":"1946-01-01T00:00:00.000","reclat":"30.125000","reclong":"-103.116670","geolocation":{"type":"Point","coordinates":[-103.11667,30.125]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"3062"} +,{"name":"Peramiho","id":"18792","nametype":"Valid","recclass":"Eucrite-mmict","mass":"165","fall":"Fell","year":"1899-01-01T00:00:00.000","reclat":"-10.666670","reclong":"35.500000","geolocation":{"type":"Point","coordinates":[35.5,-10.66667]}} +,{"name":"Perpeti","id":"18793","nametype":"Valid","recclass":"L6","mass":"23474","fall":"Fell","year":"1935-01-01T00:00:00.000","reclat":"23.325000","reclong":"91.000000","geolocation":{"type":"Point","coordinates":[91,23.325]}} +,{"name":"Perth","id":"18797","nametype":"Valid","recclass":"LL5","mass":"2","fall":"Fell","year":"1830-01-01T00:00:00.000","reclat":"56.400000","reclong":"-3.433330","geolocation":{"type":"Point","coordinates":[-3.43333,56.4]}} +,{"name":"Pervomaisky","id":"18798","nametype":"Valid","recclass":"L6","mass":"66000","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"56.633330","reclong":"39.433330","geolocation":{"type":"Point","coordinates":[39.43333,56.63333]}} +,{"name":"Pesyanoe","id":"18799","nametype":"Valid","recclass":"Aubrite","mass":"3393","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"55.500000","reclong":"66.083330","geolocation":{"type":"Point","coordinates":[66.08333,55.5]}} +,{"name":"Pétèlkolé","id":"18800","nametype":"Valid","recclass":"H5","mass":"189","fall":"Fell","year":"1995-01-01T00:00:00.000","reclat":"14.052000","reclong":"0.420000","geolocation":{"type":"Point","coordinates":[0.42,14.052]}} +,{"name":"Petersburg","id":"18801","nametype":"Valid","recclass":"Eucrite-pmict","mass":"1800","fall":"Fell","year":"1855-01-01T00:00:00.000","reclat":"35.300000","reclong":"-86.633330","geolocation":{"type":"Point","coordinates":[-86.63333,35.3]},":@computed_region_cbhk_fwbd":"39",":@computed_region_nnqa_25f4":"2017"} +,{"name":"Pettiswood","id":"18804","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1779-01-01T00:00:00.000","reclat":"53.533330","reclong":"-7.333330","geolocation":{"type":"Point","coordinates":[-7.33333,53.53333]}} +,{"name":"Phillips County (stone)","id":"18808","nametype":"Valid","recclass":"L6","mass":"57900","fall":"Fell","year":"1901-01-01T00:00:00.000","reclat":"40.000000","reclong":"-99.250000","geolocation":{"type":"Point","coordinates":[-99.25,40]},":@computed_region_cbhk_fwbd":"17",":@computed_region_nnqa_25f4":"1255"} +,{"name":"Phu Hong","id":"18809","nametype":"Valid","recclass":"H4","mass":"500","fall":"Fell","year":"1887-01-01T00:00:00.000","reclat":"11.250000","reclong":"108.583330","geolocation":{"type":"Point","coordinates":[108.58333,11.25]}} +,{"name":"Phum Sambo","id":"18811","nametype":"Valid","recclass":"H4","mass":"7800","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"12.000000","reclong":"105.483330","geolocation":{"type":"Point","coordinates":[105.48333,12]}} +,{"name":"Phuoc-Binh","id":"18812","nametype":"Valid","recclass":"L5","mass":"11000","fall":"Fell","year":"1941-01-01T00:00:00.000","reclat":"15.716670","reclong":"108.100000","geolocation":{"type":"Point","coordinates":[108.1,15.71667]}} +,{"name":"Piancaldoli","id":"18813","nametype":"Valid","recclass":"LL3.4","mass":"13.1","fall":"Fell","year":"1968-01-01T00:00:00.000","reclat":"44.244170","reclong":"11.502220","geolocation":{"type":"Point","coordinates":[11.50222,44.24417]}} +,{"name":"Picote","id":"18816","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1843-01-01T00:00:00.000","reclat":"41.366670","reclong":"-6.233330","geolocation":{"type":"Point","coordinates":[-6.23333,41.36667]}} +,{"name":"Pillistfer","id":"18822","nametype":"Valid","recclass":"EL6","mass":"23250","fall":"Fell","year":"1863-01-01T00:00:00.000","reclat":"58.666670","reclong":"25.733330","geolocation":{"type":"Point","coordinates":[25.73333,58.66667]}} +,{"name":"Piplia Kalan","id":"18831","nametype":"Valid","recclass":"Eucrite-mmict","mass":"42000","fall":"Fell","year":"1996-01-01T00:00:00.000","reclat":"26.034720","reclong":"73.941670","geolocation":{"type":"Point","coordinates":[73.94167,26.03472]}} +,{"name":"Piquetberg","id":"18832","nametype":"Valid","recclass":"H","mass":"37","fall":"Fell","year":"1881-01-01T00:00:00.000","reclat":"-32.866670","reclong":"18.716670","geolocation":{"type":"Point","coordinates":[18.71667,-32.86667]}} +,{"name":"Pirgunje","id":"18834","nametype":"Valid","recclass":"L6","mass":"842","fall":"Fell","year":"1882-01-01T00:00:00.000","reclat":"25.800000","reclong":"88.450000","geolocation":{"type":"Point","coordinates":[88.45,25.8]}} +,{"name":"Pirthalla","id":"18835","nametype":"Valid","recclass":"H6","mass":"1161","fall":"Fell","year":"1884-01-01T00:00:00.000","reclat":"29.583330","reclong":"76.000000","geolocation":{"type":"Point","coordinates":[76,29.58333]}} +,{"name":"Pitts","id":"18837","nametype":"Valid","recclass":"Iron, IAB-ung","mass":"3760","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"31.950000","reclong":"-83.516670","geolocation":{"type":"Point","coordinates":[-83.51667,31.95]},":@computed_region_cbhk_fwbd":"31",":@computed_region_nnqa_25f4":"207"} +,{"name":"Plantersville","id":"18846","nametype":"Valid","recclass":"H6","mass":"2085","fall":"Fell","year":"1930-01-01T00:00:00.000","reclat":"30.700000","reclong":"-96.116670","geolocation":{"type":"Point","coordinates":[-96.11667,30.7]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"2018"} +,{"name":"Pleşcoi","id":"51706","nametype":"Valid","recclass":"L5-6","mass":"6913","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"45.275000","reclong":"26.709720","geolocation":{"type":"Point","coordinates":[26.70972,45.275]}} +,{"name":"Ploschkovitz","id":"18849","nametype":"Valid","recclass":"L5","mass":"39","fall":"Fell","year":"1723-01-01T00:00:00.000","reclat":"50.533330","reclong":"14.116670","geolocation":{"type":"Point","coordinates":[14.11667,50.53333]}} +,{"name":"Pnompehn","id":"18851","nametype":"Valid","recclass":"L6","mass":"96","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"11.583330","reclong":"104.916670","geolocation":{"type":"Point","coordinates":[104.91667,11.58333]}} +,{"name":"Dominion Range 03240","id":"32592","nametype":"Valid","recclass":"LL5","mass":"290.89999999999998","fall":"Found","year":"2002-01-01T00:00:00.000"} +,{"name":"Pohlitz","id":"18853","nametype":"Valid","recclass":"L5","mass":"3000","fall":"Fell","year":"1819-01-01T00:00:00.000","reclat":"50.933330","reclong":"12.133330","geolocation":{"type":"Point","coordinates":[12.13333,50.93333]}} +,{"name":"Pokhra","id":"18858","nametype":"Valid","recclass":"H5","mass":"350","fall":"Fell","year":"1866-01-01T00:00:00.000","reclat":"26.716670","reclong":"82.666670","geolocation":{"type":"Point","coordinates":[82.66667,26.71667]}} +,{"name":"Pollen","id":"18860","nametype":"Valid","recclass":"CM2","mass":"253.6","fall":"Fell","year":"1942-01-01T00:00:00.000","reclat":"66.348330","reclong":"14.015000","geolocation":{"type":"Point","coordinates":[14.015,66.34833]}} +,{"name":"Pontlyfni","id":"18865","nametype":"Valid","recclass":"Winonaite","mass":"157","fall":"Fell","year":"1931-01-01T00:00:00.000","reclat":"53.036390","reclong":"-4.319440","geolocation":{"type":"Point","coordinates":[-4.31944,53.03639]}} +,{"name":"Portales Valley","id":"18874","nametype":"Valid","recclass":"H6","mass":"71400","fall":"Fell","year":"1998-01-01T00:00:00.000","reclat":"34.175000","reclong":"-103.295000","geolocation":{"type":"Point","coordinates":[-103.295,34.175]},":@computed_region_cbhk_fwbd":"11",":@computed_region_nnqa_25f4":"1987"} +,{"name":"Portugal","id":"18876","nametype":"Valid","recclass":"Stone-uncl","mass":"4500","fall":"Fell","year":"1796-01-01T00:00:00.000","reclat":"38.500000","reclong":"-8.000000","geolocation":{"type":"Point","coordinates":[-8,38.5]}} +,{"name":"Po-wang Chen","id":"18879","nametype":"Valid","recclass":"LL","mass":"665","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"31.416670","reclong":"118.500000","geolocation":{"type":"Point","coordinates":[118.5,31.41667]}} +,{"name":"Prambachkirchen","id":"18883","nametype":"Valid","recclass":"L6","mass":"2125","fall":"Fell","year":"1932-01-01T00:00:00.000","reclat":"48.302500","reclong":"13.940830","geolocation":{"type":"Point","coordinates":[13.94083,48.3025]}} +,{"name":"Pribram","id":"18887","nametype":"Valid","recclass":"H5","mass":"5555","fall":"Fell","year":"1959-01-01T00:00:00.000","reclat":"49.666670","reclong":"14.033330","geolocation":{"type":"Point","coordinates":[14.03333,49.66667]}} +,{"name":"Pricetown","id":"18888","nametype":"Valid","recclass":"L6","mass":"900","fall":"Fell","year":"1893-01-01T00:00:00.000","reclat":"39.116670","reclong":"-83.850000","geolocation":{"type":"Point","coordinates":[-83.85,39.11667]},":@computed_region_cbhk_fwbd":"38",":@computed_region_nnqa_25f4":"2566"} +,{"name":"Puerto Lápice","id":"45984","nametype":"Valid","recclass":"Eucrite-br","mass":"500","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"39.350000","reclong":"-3.516670","geolocation":{"type":"Point","coordinates":[-3.51667,39.35]}} +,{"name":"Pulsora","id":"18899","nametype":"Valid","recclass":"H5","mass":"560","fall":"Fell","year":"1863-01-01T00:00:00.000","reclat":"23.366670","reclong":"75.183330","geolocation":{"type":"Point","coordinates":[75.18333,23.36667]}} +,{"name":"Pultusk","id":"18901","nametype":"Valid","recclass":"H5","mass":"250000","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"52.766670","reclong":"21.266670","geolocation":{"type":"Point","coordinates":[21.26667,52.76667]}} +,{"name":"Punganaru","id":"18902","nametype":"Valid","recclass":"Stone-uncl","mass":"100","fall":"Fell","year":"1811-01-01T00:00:00.000","reclat":"13.333330","reclong":"78.950000","geolocation":{"type":"Point","coordinates":[78.95,13.33333]}} +,{"name":"Putinga","id":"18905","nametype":"Valid","recclass":"L6","mass":"300000","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"-29.033330","reclong":"-53.050000","geolocation":{"type":"Point","coordinates":[-53.05,-29.03333]}} +,{"name":"Qidong","id":"18907","nametype":"Valid","recclass":"L/LL5","mass":"1275","fall":"Fell","year":"1982-01-01T00:00:00.000","reclat":"32.083330","reclong":"121.500000","geolocation":{"type":"Point","coordinates":[121.5,32.08333]}} +,{"name":"Qingzhen","id":"18908","nametype":"Valid","recclass":"EH3","mass":"2600","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"26.533330","reclong":"106.466670","geolocation":{"type":"Point","coordinates":[106.46667,26.53333]}} +,{"name":"Queen's Mercy","id":"22357","nametype":"Valid","recclass":"H6","mass":"7000","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"-30.116670","reclong":"28.700000","geolocation":{"type":"Point","coordinates":[28.7,-30.11667]}} +,{"name":"Quenggouk","id":"22358","nametype":"Valid","recclass":"H4","mass":"6045","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"17.766670","reclong":"95.183330","geolocation":{"type":"Point","coordinates":[95.18333,17.76667]}} +,{"name":"Quesa","id":"22360","nametype":"Valid","recclass":"Iron, IAB-ung","mass":"10750","fall":"Fell","year":"1898-01-01T00:00:00.000","reclat":"39.000000","reclong":"-0.666670","geolocation":{"type":"Point","coordinates":[-0.66667,39]}} +,{"name":"Quija","id":"22361","nametype":"Valid","recclass":"H","mass":"17450","fall":"Fell","year":"1990-01-01T00:00:00.000","reclat":"44.616670","reclong":"126.133330","geolocation":{"type":"Point","coordinates":[126.13333,44.61667]}} +,{"name":"Quincay","id":"22363","nametype":"Valid","recclass":"L6","mass":"65","fall":"Fell","year":"1851-01-01T00:00:00.000","reclat":"46.600000","reclong":"0.250000","geolocation":{"type":"Point","coordinates":[0.25,46.6]}} +,{"name":"Raco","id":"22368","nametype":"Valid","recclass":"H5","mass":"5000","fall":"Fell","year":"1957-01-01T00:00:00.000","reclat":"-26.666670","reclong":"-65.450000","geolocation":{"type":"Point","coordinates":[-65.45,-26.66667]}} +,{"name":"Raghunathpura","id":"22371","nametype":"Valid","recclass":"Iron, IIAB","mass":"10200","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"27.725280","reclong":"76.465000","geolocation":{"type":"Point","coordinates":[76.465,27.72528]}} +,{"name":"Rahimyar Khan","id":"31302","nametype":"Valid","recclass":"L5","mass":"67225","fall":"Fell","year":"1983-01-01T00:00:00.000","reclat":"28.225000","reclong":"70.200000","geolocation":{"type":"Point","coordinates":[70.2,28.225]}} +,{"name":"Rakovka","id":"22376","nametype":"Valid","recclass":"L6","mass":"9000","fall":"Fell","year":"1878-01-01T00:00:00.000","reclat":"52.983330","reclong":"37.033330","geolocation":{"type":"Point","coordinates":[37.03333,52.98333]}} +,{"name":"Ramnagar","id":"22384","nametype":"Valid","recclass":"L6","mass":"3766","fall":"Fell","year":"1940-01-01T00:00:00.000","reclat":"26.450000","reclong":"82.900000","geolocation":{"type":"Point","coordinates":[82.9,26.45]}} +,{"name":"Rampurhat","id":"22385","nametype":"Valid","recclass":"LL","mass":"100","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"24.166670","reclong":"87.766670","geolocation":{"type":"Point","coordinates":[87.76667,24.16667]}} +,{"name":"Ramsdorf","id":"22386","nametype":"Valid","recclass":"L6","mass":"4682","fall":"Fell","year":"1958-01-01T00:00:00.000","reclat":"51.883330","reclong":"6.933330","geolocation":{"type":"Point","coordinates":[6.93333,51.88333]}} +,{"name":"Ranchapur","id":"22387","nametype":"Valid","recclass":"H4","mass":"290.39999999999998","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"23.983330","reclong":"87.083330","geolocation":{"type":"Point","coordinates":[87.08333,23.98333]}} +,{"name":"Rancho de la Presa","id":"22390","nametype":"Valid","recclass":"H5","mass":"300","fall":"Fell","year":"1899-01-01T00:00:00.000","reclat":"19.866670","reclong":"-100.816670","geolocation":{"type":"Point","coordinates":[-100.81667,19.86667]}} +,{"name":"Rangala","id":"22392","nametype":"Valid","recclass":"L6","mass":"3224.5","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"25.383330","reclong":"72.016670","geolocation":{"type":"Point","coordinates":[72.01667,25.38333]}} +,{"name":"Raoyang","id":"22394","nametype":"Valid","recclass":"L6","mass":"4910","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"38.200000","reclong":"115.700000","geolocation":{"type":"Point","coordinates":[115.7,38.2]}} +,{"name":"Ras Tanura","id":"22395","nametype":"Valid","recclass":"H6","mass":"6.1","fall":"Fell","year":"1961-01-01T00:00:00.000","reclat":"26.666670","reclong":"50.150000","geolocation":{"type":"Point","coordinates":[50.15,26.66667]}} +,{"name":"Rasgrad","id":"22396","nametype":"Valid","recclass":"Stone-uncl","mass":"24700","fall":"Fell","year":"1740-01-01T00:00:00.000","reclat":"43.500000","reclong":"26.533330","geolocation":{"type":"Point","coordinates":[26.53333,43.5]}} +,{"name":"Ratyn","id":"22398","nametype":"Valid","recclass":"Stone-uncl","mass":"910","fall":"Fell","year":"1880-01-01T00:00:00.000","reclat":"52.200000","reclong":"17.983330","geolocation":{"type":"Point","coordinates":[17.98333,52.2]}} +,{"name":"Red Canyon Lake","id":"53502","nametype":"Valid","recclass":"H5","mass":"18.41","fall":"Fell","year":"2007-01-01T00:00:00.000","reclat":"38.137420","reclong":"-119.758120","geolocation":{"type":"Point","coordinates":[-119.75812,38.13742]},":@computed_region_cbhk_fwbd":"8",":@computed_region_nnqa_25f4":"1391"} +,{"name":"Reliegos","id":"22584","nametype":"Valid","recclass":"L5","mass":"17300","fall":"Fell","year":"1947-01-01T00:00:00.000","reclat":"42.475000","reclong":"-5.333330","geolocation":{"type":"Point","coordinates":[-5.33333,42.475]}} +,{"name":"Rembang","id":"22585","nametype":"Valid","recclass":"Iron, IVA","mass":"10000","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"-6.733330","reclong":"111.366670","geolocation":{"type":"Point","coordinates":[111.36667,-6.73333]}} +,{"name":"Renazzo","id":"22586","nametype":"Valid","recclass":"CR2","mass":"1000","fall":"Fell","year":"1824-01-01T00:00:00.000","reclat":"44.766670","reclong":"11.283330","geolocation":{"type":"Point","coordinates":[11.28333,44.76667]}} +,{"name":"Renca","id":"22587","nametype":"Valid","recclass":"L5","mass":"300","fall":"Fell","year":"1925-01-01T00:00:00.000","reclat":"-32.750000","reclong":"-65.283330","geolocation":{"type":"Point","coordinates":[-65.28333,-32.75]}} +,{"name":"Renqiu","id":"22589","nametype":"Valid","recclass":"L6","mass":"355","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"38.666670","reclong":"116.133330","geolocation":{"type":"Point","coordinates":[116.13333,38.66667]}} +,{"name":"Repeev Khutor","id":"22590","nametype":"Valid","recclass":"Iron, IIF","mass":"7000","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"48.600000","reclong":"45.666670","geolocation":{"type":"Point","coordinates":[45.66667,48.6]}} +,{"name":"Revelstoke","id":"22592","nametype":"Valid","recclass":"CI1","mass":"1","fall":"Fell","year":"1965-01-01T00:00:00.000","reclat":"51.333330","reclong":"-118.950000","geolocation":{"type":"Point","coordinates":[-118.95,51.33333]}} +,{"name":"Rewari","id":"22593","nametype":"Valid","recclass":"L6","mass":"3332","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"28.200000","reclong":"76.666670","geolocation":{"type":"Point","coordinates":[76.66667,28.2]}} +,{"name":"Rich Mountain","id":"22597","nametype":"Valid","recclass":"L6","mass":"668","fall":"Fell","year":"1903-01-01T00:00:00.000","reclat":"35.033330","reclong":"-83.033330","geolocation":{"type":"Point","coordinates":[-83.03333,35.03333]},":@computed_region_cbhk_fwbd":"37",":@computed_region_nnqa_25f4":"2388"} +,{"name":"Uzcudun","id":"24140","nametype":"Valid","recclass":"L","mass":"20000","fall":"Fell","year":"1948-01-01T00:00:00.000","reclat":"-44.116670","reclong":"-66.150000","geolocation":{"type":"Point","coordinates":[-66.15,-44.11667]}} +,{"name":"Richardton","id":"22599","nametype":"Valid","recclass":"H5","mass":"90000","fall":"Fell","year":"1918-01-01T00:00:00.000","reclat":"46.883330","reclong":"-102.316670","geolocation":{"type":"Point","coordinates":[-102.31667,46.88333]},":@computed_region_cbhk_fwbd":"3",":@computed_region_nnqa_25f4":"569"} +,{"name":"Richland Springs","id":"22602","nametype":"Valid","recclass":"OC","mass":"1900","fall":"Fell","year":"1980-01-01T00:00:00.000","reclat":"31.250000","reclong":"-99.033330","geolocation":{"type":"Point","coordinates":[-99.03333,31.25]},":@computed_region_cbhk_fwbd":"23",":@computed_region_nnqa_25f4":"2885"} +,{"name":"Richmond","id":"22603","nametype":"Valid","recclass":"LL5","mass":"1800","fall":"Fell","year":"1828-01-01T00:00:00.000","reclat":"37.466670","reclong":"-77.500000","geolocation":{"type":"Point","coordinates":[-77.5,37.46667]},":@computed_region_cbhk_fwbd":"40",":@computed_region_nnqa_25f4":"2764"} +,{"name":"Rio Negro","id":"22611","nametype":"Valid","recclass":"L4","mass":"1310","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"-26.100000","reclong":"-49.800000","geolocation":{"type":"Point","coordinates":[-49.8,-26.1]}} +,{"name":"Rivolta de Bassi","id":"22614","nametype":"Valid","recclass":"Stone-uncl","mass":"103.3","fall":"Fell","year":"1491-01-01T00:00:00.000","reclat":"45.483330","reclong":"9.516670","geolocation":{"type":"Point","coordinates":[9.51667,45.48333]}} +,{"name":"Rochester","id":"22637","nametype":"Valid","recclass":"H6","mass":"340","fall":"Fell","year":"1876-01-01T00:00:00.000","reclat":"41.083330","reclong":"-86.283330","geolocation":{"type":"Point","coordinates":[-86.28333,41.08333]},":@computed_region_cbhk_fwbd":"35",":@computed_region_nnqa_25f4":"150"} +,{"name":"Rockhampton","id":"22640","nametype":"Valid","recclass":"Stone-uncl","mass":"1641","fall":"Fell","year":"1895-01-01T00:00:00.000","reclat":"-23.383330","reclong":"150.516670","geolocation":{"type":"Point","coordinates":[150.51667,-23.38333]}} +,{"name":"Roda","id":"22641","nametype":"Valid","recclass":"Diogenite","mass":"400","fall":"Fell","year":"1871-01-01T00:00:00.000","reclat":"42.300000","reclong":"0.550000","geolocation":{"type":"Point","coordinates":[0.55,42.3]}} +,{"name":"Rodach","id":"22642","nametype":"Valid","recclass":"Stone-uncl","mass":"2900","fall":"Fell","year":"1775-01-01T00:00:00.000","reclat":"50.350000","reclong":"10.800000","geolocation":{"type":"Point","coordinates":[10.8,50.35]}} +,{"name":"Rose City","id":"22766","nametype":"Valid","recclass":"H5","mass":"10600","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"44.516670","reclong":"-83.950000","geolocation":{"type":"Point","coordinates":[-83.95,44.51667]},":@computed_region_cbhk_fwbd":"50",":@computed_region_nnqa_25f4":"361"} +,{"name":"Rowton","id":"22773","nametype":"Valid","recclass":"Iron, IIIAB","mass":"3500","fall":"Fell","year":"1876-01-01T00:00:00.000","reclat":"52.766670","reclong":"-2.516670","geolocation":{"type":"Point","coordinates":[-2.51667,52.76667]}} +,{"name":"Ruhobobo","id":"22780","nametype":"Valid","recclass":"L6","mass":"465.5","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"-1.450000","reclong":"29.833330","geolocation":{"type":"Point","coordinates":[29.83333,-1.45]}} +,{"name":"Rumuruti","id":"22782","nametype":"Valid","recclass":"R3.8-6","mass":"67","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"0.266670","reclong":"36.533330","geolocation":{"type":"Point","coordinates":[36.53333,0.26667]}} +,{"name":"Rupota","id":"22783","nametype":"Valid","recclass":"L4-6","mass":"6000","fall":"Fell","year":"1949-01-01T00:00:00.000","reclat":"-10.266670","reclong":"38.766670","geolocation":{"type":"Point","coordinates":[38.76667,-10.26667]}} +,{"name":"Ryechki","id":"22791","nametype":"Valid","recclass":"L5","mass":"13000","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"51.133330","reclong":"34.500000","geolocation":{"type":"Point","coordinates":[34.5,51.13333]}} +,{"name":"Sabetmahet","id":"22792","nametype":"Valid","recclass":"H5","mass":"1250","fall":"Fell","year":"1855-01-01T00:00:00.000","reclat":"27.433330","reclong":"82.083330","geolocation":{"type":"Point","coordinates":[82.08333,27.43333]}} +,{"name":"Sabrum","id":"22793","nametype":"Valid","recclass":"LL6","mass":"478","fall":"Fell","year":"1999-01-01T00:00:00.000","reclat":"23.083330","reclong":"91.666670","geolocation":{"type":"Point","coordinates":[91.66667,23.08333]}} +,{"name":"Sagan","id":"22796","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1636-01-01T00:00:00.000","reclat":"51.533330","reclong":"14.883330","geolocation":{"type":"Point","coordinates":[14.88333,51.53333]}} +,{"name":"Saint-Sauveur","id":"23101","nametype":"Valid","recclass":"EH5","mass":"14000","fall":"Fell","year":"1914-01-01T00:00:00.000","reclat":"43.733330","reclong":"1.383330","geolocation":{"type":"Point","coordinates":[1.38333,43.73333]}} +,{"name":"Saint-Séverin","id":"23102","nametype":"Valid","recclass":"LL6","mass":"271000","fall":"Fell","year":"1966-01-01T00:00:00.000","reclat":"45.300000","reclong":"0.233330","geolocation":{"type":"Point","coordinates":[0.23333,45.3]}} +,{"name":"Sakauchi","id":"23103","nametype":"Valid","recclass":"Iron","mass":"4180","fall":"Fell","year":"1913-01-01T00:00:00.000","reclat":"35.666670","reclong":"136.300000","geolocation":{"type":"Point","coordinates":[136.3,35.66667]}} +,{"name":"Salem","id":"23107","nametype":"Valid","recclass":"L6","mass":"61.4","fall":"Fell","year":"1981-01-01T00:00:00.000","reclat":"44.979170","reclong":"-122.969440","geolocation":{"type":"Point","coordinates":[-122.96944,44.97917]},":@computed_region_cbhk_fwbd":"12",":@computed_region_nnqa_25f4":"2409"} +,{"name":"Salles","id":"23111","nametype":"Valid","recclass":"L5","mass":"9000","fall":"Fell","year":"1798-01-01T00:00:00.000","reclat":"46.050000","reclong":"4.633330","geolocation":{"type":"Point","coordinates":[4.63333,46.05]}} +,{"name":"Salzwedel","id":"23114","nametype":"Valid","recclass":"LL5","mass":"43","fall":"Fell","year":"1985-01-01T00:00:00.000","reclat":"52.750000","reclong":"11.050000","geolocation":{"type":"Point","coordinates":[11.05,52.75]}} +,{"name":"Samelia","id":"23115","nametype":"Valid","recclass":"Iron, IIIAB","mass":"2462","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"25.666670","reclong":"74.866670","geolocation":{"type":"Point","coordinates":[74.86667,25.66667]}} +,{"name":"San Juan Capistrano","id":"23128","nametype":"Valid","recclass":"H6","mass":"56","fall":"Fell","year":"1973-01-01T00:00:00.000","reclat":"33.484720","reclong":"-117.662500","geolocation":{"type":"Point","coordinates":[-117.6625,33.48472]},":@computed_region_cbhk_fwbd":"8",":@computed_region_nnqa_25f4":"1174"} +,{"name":"San Michele","id":"31315","nametype":"Valid","recclass":"L6","mass":"237","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"43.666670","reclong":"13.000000","geolocation":{"type":"Point","coordinates":[13,43.66667]}} +,{"name":"San Pedro de Quiles","id":"23130","nametype":"Valid","recclass":"L6","mass":"282","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"-31.016670","reclong":"-71.400000","geolocation":{"type":"Point","coordinates":[-71.4,-31.01667]}} +,{"name":"San Pedro Jacuaro","id":"34063","nametype":"Valid","recclass":"LL6","mass":"460","fall":"Fell","year":"1968-01-01T00:00:00.000","reclat":"19.766670","reclong":"-100.650000","geolocation":{"type":"Point","coordinates":[-100.65,19.76667]}} +,{"name":"Santa Barbara","id":"23161","nametype":"Valid","recclass":"L4","mass":"400","fall":"Fell","year":"1873-01-01T00:00:00.000","reclat":"-29.200000","reclong":"-51.866670","geolocation":{"type":"Point","coordinates":[-51.86667,-29.2]}} +,{"name":"Santa Cruz","id":"23164","nametype":"Valid","recclass":"CM2","mass":"60","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"24.166670","reclong":"-99.333330","geolocation":{"type":"Point","coordinates":[-99.33333,24.16667]}} +,{"name":"Santa Isabel","id":"23165","nametype":"Valid","recclass":"L6","mass":"5500","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"-33.900000","reclong":"-61.700000","geolocation":{"type":"Point","coordinates":[-61.7,-33.9]}} +,{"name":"Santa Lucia (2008)","id":"50909","nametype":"Valid","recclass":"L6","mass":"4000","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"-31.535556","reclong":"-68.489444","geolocation":{"type":"Point","coordinates":[-68.489444,-31.535556]}} +,{"name":"São Jose do Rio Preto","id":"23171","nametype":"Valid","recclass":"H4","mass":"927","fall":"Fell","year":"1962-01-01T00:00:00.000","reclat":"-20.810000","reclong":"-49.380560","geolocation":{"type":"Point","coordinates":[-49.38056,-20.81]}} +,{"name":"Saratov","id":"23176","nametype":"Valid","recclass":"L4","mass":"200000","fall":"Fell","year":"1918-01-01T00:00:00.000","reclat":"52.550000","reclong":"46.550000","geolocation":{"type":"Point","coordinates":[46.55,52.55]}} +,{"name":"Sasagase","id":"23187","nametype":"Valid","recclass":"H","mass":"695","fall":"Fell","year":"1688-01-01T00:00:00.000","reclat":"34.716670","reclong":"137.783330","geolocation":{"type":"Point","coordinates":[137.78333,34.71667]}} +,{"name":"Sauguis","id":"23188","nametype":"Valid","recclass":"L6","mass":"4000","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"43.150000","reclong":"-0.850000","geolocation":{"type":"Point","coordinates":[-0.85,43.15]}} +,{"name":"Savtschenskoje","id":"23190","nametype":"Valid","recclass":"LL4","mass":"2500","fall":"Fell","year":"1894-01-01T00:00:00.000","reclat":"47.216670","reclong":"29.866670","geolocation":{"type":"Point","coordinates":[29.86667,47.21667]}} +,{"name":"Sayama","id":"23192","nametype":"Valid","recclass":"CM2","mass":"430","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"35.866670","reclong":"139.400000","geolocation":{"type":"Point","coordinates":[139.4,35.86667]}} +,{"name":"Sazovice","id":"23455","nametype":"Valid","recclass":"L5","mass":"412","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"49.233330","reclong":"17.566670","geolocation":{"type":"Point","coordinates":[17.56667,49.23333]}} +,{"name":"Schellin","id":"23457","nametype":"Valid","recclass":"L","mass":"7000","fall":"Fell","year":"1715-01-01T00:00:00.000","reclat":"53.350000","reclong":"15.050000","geolocation":{"type":"Point","coordinates":[15.05,53.35]}} +,{"name":"Schenectady","id":"23458","nametype":"Valid","recclass":"H5","mass":"283.3","fall":"Fell","year":"1968-01-01T00:00:00.000","reclat":"42.860830","reclong":"-73.950280","geolocation":{"type":"Point","coordinates":[-73.95028,42.86083]},":@computed_region_cbhk_fwbd":"47",":@computed_region_nnqa_25f4":"2142"} +,{"name":"Schönenberg","id":"23460","nametype":"Valid","recclass":"L6","mass":"8000","fall":"Fell","year":"1846-01-01T00:00:00.000","reclat":"48.116670","reclong":"10.466670","geolocation":{"type":"Point","coordinates":[10.46667,48.11667]}} +,{"name":"Searsmont","id":"23472","nametype":"Valid","recclass":"H5","mass":"5400","fall":"Fell","year":"1871-01-01T00:00:00.000","reclat":"44.366670","reclong":"-69.200000","geolocation":{"type":"Point","coordinates":[-69.2,44.36667]},":@computed_region_cbhk_fwbd":"49",":@computed_region_nnqa_25f4":"1727"} +,{"name":"Sediköy","id":"23473","nametype":"Valid","recclass":"L6","mass":"240","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"38.300000","reclong":"27.133330","geolocation":{"type":"Point","coordinates":[27.13333,38.3]}} +,{"name":"Segowlie","id":"23476","nametype":"Valid","recclass":"LL6","mass":"6930","fall":"Fell","year":"1853-01-01T00:00:00.000","reclat":"26.750000","reclong":"84.783330","geolocation":{"type":"Point","coordinates":[84.78333,26.75]}} +,{"name":"Selakopi","id":"23481","nametype":"Valid","recclass":"H5","mass":"1590","fall":"Fell","year":"1939-01-01T00:00:00.000","reclat":"-7.233330","reclong":"107.333330","geolocation":{"type":"Point","coordinates":[107.33333,-7.23333]}} +,{"name":"Seldebourak","id":"23483","nametype":"Valid","recclass":"H5","mass":"150","fall":"Fell","year":"1947-01-01T00:00:00.000","reclat":"22.833330","reclong":"4.983330","geolocation":{"type":"Point","coordinates":[4.98333,22.83333]}} +,{"name":"Semarkona","id":"23487","nametype":"Valid","recclass":"LL3.00","mass":"691","fall":"Fell","year":"1940-01-01T00:00:00.000","reclat":"22.250000","reclong":"79.000000","geolocation":{"type":"Point","coordinates":[79,22.25]}} +,{"name":"Sena","id":"23495","nametype":"Valid","recclass":"H4","mass":"4000","fall":"Fell","year":"1773-01-01T00:00:00.000","reclat":"41.716670","reclong":"-0.050000","geolocation":{"type":"Point","coordinates":[-0.05,41.71667]}} +,{"name":"Senboku","id":"23496","nametype":"Valid","recclass":"H6","mass":"866","fall":"Fell","year":"1993-01-01T00:00:00.000","reclat":"39.438330","reclong":"140.511670","geolocation":{"type":"Point","coordinates":[140.51167,39.43833]}} +,{"name":"Seoni","id":"23500","nametype":"Valid","recclass":"H6","mass":"20000","fall":"Fell","year":"1966-01-01T00:00:00.000","reclat":"21.683890","reclong":"79.500830","geolocation":{"type":"Point","coordinates":[79.50083,21.68389]}} +,{"name":"Seres","id":"23501","nametype":"Valid","recclass":"H4","mass":"8500","fall":"Fell","year":"1818-01-01T00:00:00.000","reclat":"41.050000","reclong":"23.566670","geolocation":{"type":"Point","coordinates":[23.56667,41.05]}} +,{"name":"Serra de Magé","id":"23502","nametype":"Valid","recclass":"Eucrite-cm","mass":"1800","fall":"Fell","year":"1923-01-01T00:00:00.000","reclat":"-8.383330","reclong":"-36.766670","geolocation":{"type":"Point","coordinates":[-36.76667,-8.38333]}} +,{"name":"Sete Lagoas","id":"23504","nametype":"Valid","recclass":"H4","mass":"350","fall":"Fell","year":"1908-01-01T00:00:00.000","reclat":"-19.466670","reclong":"-44.216670","geolocation":{"type":"Point","coordinates":[-44.21667,-19.46667]}} +,{"name":"Sevilla","id":"23508","nametype":"Valid","recclass":"LL4","mass":"180","fall":"Fell","year":"1862-01-01T00:00:00.000","reclat":"37.416670","reclong":"-6.000000","geolocation":{"type":"Point","coordinates":[-6,37.41667]}} +,{"name":"Sevrukovo","id":"23509","nametype":"Valid","recclass":"L5","mass":"101000","fall":"Fell","year":"1874-01-01T00:00:00.000","reclat":"50.616670","reclong":"36.600000","geolocation":{"type":"Point","coordinates":[36.6,50.61667]}} +,{"name":"Sfax","id":"23512","nametype":"Valid","recclass":"L6","mass":"7000","fall":"Fell","year":"1989-01-01T00:00:00.000","reclat":"34.750000","reclong":"10.716670","geolocation":{"type":"Point","coordinates":[10.71667,34.75]}} +,{"name":"Shalka","id":"23521","nametype":"Valid","recclass":"Diogenite","mass":"4000","fall":"Fell","year":"1850-01-01T00:00:00.000","reclat":"23.100000","reclong":"87.300000","geolocation":{"type":"Point","coordinates":[87.3,23.1]}} +,{"name":"Sharps","id":"23525","nametype":"Valid","recclass":"H3.4","mass":"1265","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"37.833330","reclong":"-76.700000","geolocation":{"type":"Point","coordinates":[-76.7,37.83333]},":@computed_region_cbhk_fwbd":"40",":@computed_region_nnqa_25f4":"921"} +,{"name":"Shelburne","id":"23529","nametype":"Valid","recclass":"L5","mass":"18600","fall":"Fell","year":"1904-01-01T00:00:00.000","reclat":"44.050000","reclong":"-80.166670","geolocation":{"type":"Point","coordinates":[-80.16667,44.05]}} +,{"name":"Shergotty","id":"23530","nametype":"Valid","recclass":"Martian (shergottite)","mass":"5000","fall":"Fell","year":"1865-01-01T00:00:00.000","reclat":"24.550000","reclong":"84.833330","geolocation":{"type":"Point","coordinates":[84.83333,24.55]}} +,{"name":"Sheyang","id":"23531","nametype":"Valid","recclass":"L6","mass":"605","fall":"Fell","year":"1976-01-01T00:00:00.000","reclat":"33.650000","reclong":"120.066670","geolocation":{"type":"Point","coordinates":[120.06667,33.65]}} +,{"name":"Shikarpur","id":"23534","nametype":"Valid","recclass":"L6","mass":"3679.7","fall":"Fell","year":"1921-01-01T00:00:00.000","reclat":"25.850000","reclong":"87.577500","geolocation":{"type":"Point","coordinates":[87.5775,25.85]}} +,{"name":"Shuangyang","id":"23582","nametype":"Valid","recclass":"H5","mass":"3900","fall":"Fell","year":"1971-01-01T00:00:00.000","reclat":"43.500000","reclong":"125.666670","geolocation":{"type":"Point","coordinates":[125.66667,43.5]}} +,{"name":"Shupiyan","id":"23583","nametype":"Valid","recclass":"H6","mass":"5000","fall":"Fell","year":"1912-01-01T00:00:00.000","reclat":"33.716670","reclong":"74.833330","geolocation":{"type":"Point","coordinates":[74.83333,33.71667]}} +,{"name":"Shytal","id":"23584","nametype":"Valid","recclass":"L6","mass":"3200","fall":"Fell","year":"1863-01-01T00:00:00.000","reclat":"24.333330","reclong":"90.166670","geolocation":{"type":"Point","coordinates":[90.16667,24.33333]}} +,{"name":"Siena","id":"23586","nametype":"Valid","recclass":"LL5","mass":"3700","fall":"Fell","year":"1794-01-01T00:00:00.000","reclat":"43.116670","reclong":"11.600000","geolocation":{"type":"Point","coordinates":[11.6,43.11667]}} +,{"name":"Sikhote-Alin","id":"23593","nametype":"Valid","recclass":"Iron, IIAB","mass":"23000000","fall":"Fell","year":"1947-01-01T00:00:00.000","reclat":"46.160000","reclong":"134.653330","geolocation":{"type":"Point","coordinates":[134.65333,46.16]}} +,{"name":"Silao","id":"23594","nametype":"Valid","recclass":"H5","mass":"1710","fall":"Fell","year":"1995-01-01T00:00:00.000","reclat":"20.933330","reclong":"-101.383330","geolocation":{"type":"Point","coordinates":[-101.38333,20.93333]}} +,{"name":"Silistra","id":"55584","nametype":"Valid","recclass":"Achondrite-ung","mass":"0.15","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"44.116670","reclong":"27.266670","geolocation":{"type":"Point","coordinates":[27.26667,44.11667]}} +,{"name":"Simmern","id":"23603","nametype":"Valid","recclass":"H5","mass":"1222","fall":"Fell","year":"1920-01-01T00:00:00.000","reclat":"49.983330","reclong":"7.533330","geolocation":{"type":"Point","coordinates":[7.53333,49.98333]}} +,{"name":"Sinai","id":"23606","nametype":"Valid","recclass":"L6","mass":"1455","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"30.900000","reclong":"32.483330","geolocation":{"type":"Point","coordinates":[32.48333,30.9]}} +,{"name":"Sindhri","id":"23611","nametype":"Valid","recclass":"H5","mass":"8400","fall":"Fell","year":"1901-01-01T00:00:00.000","reclat":"26.216670","reclong":"69.550000","geolocation":{"type":"Point","coordinates":[69.55,26.21667]}} +,{"name":"Sinnai","id":"23613","nametype":"Valid","recclass":"H6","mass":"2000","fall":"Fell","year":"1956-01-01T00:00:00.000","reclat":"39.300000","reclong":"9.200000","geolocation":{"type":"Point","coordinates":[9.2,39.3]}} +,{"name":"Sioux County","id":"23614","nametype":"Valid","recclass":"Eucrite-mmict","mass":"4100","fall":"Fell","year":"1933-01-01T00:00:00.000","reclat":"42.583330","reclong":"-103.666670","geolocation":{"type":"Point","coordinates":[-103.66667,42.58333]},":@computed_region_cbhk_fwbd":"19",":@computed_region_nnqa_25f4":"2351"} +,{"name":"Sitathali","id":"23616","nametype":"Valid","recclass":"H5","mass":"1600","fall":"Fell","year":"1875-01-01T00:00:00.000","reclat":"20.916670","reclong":"82.583330","geolocation":{"type":"Point","coordinates":[82.58333,20.91667]}} +,{"name":"Sivas","id":"23617","nametype":"Valid","recclass":"H6","mass":"40000","fall":"Fell","year":"1989-01-01T00:00:00.000","reclat":"39.824670","reclong":"36.135830","geolocation":{"type":"Point","coordinates":[36.13583,39.82467]}} +,{"name":"Sixiangkou","id":"23619","nametype":"Valid","recclass":"L5","mass":"630","fall":"Fell","year":"1989-01-01T00:00:00.000","reclat":"32.433330","reclong":"119.866670","geolocation":{"type":"Point","coordinates":[119.86667,32.43333]}} +,{"name":"Ski","id":"23621","nametype":"Valid","recclass":"L6","mass":"850","fall":"Fell","year":"1848-01-01T00:00:00.000","reclat":"59.733330","reclong":"10.866670","geolocation":{"type":"Point","coordinates":[10.86667,59.73333]}} +,{"name":"Slavetic","id":"23626","nametype":"Valid","recclass":"H5","mass":"1708","fall":"Fell","year":"1868-01-01T00:00:00.000","reclat":"45.683330","reclong":"15.600000","geolocation":{"type":"Point","coordinates":[15.6,45.68333]}} +,{"name":"Slobodka","id":"23645","nametype":"Valid","recclass":"L4","mass":"2750","fall":"Fell","year":"1818-01-01T00:00:00.000","reclat":"55.000000","reclong":"35.000000","geolocation":{"type":"Point","coordinates":[35,55]}} +,{"name":"Soheria","id":"23660","nametype":"Valid","recclass":"OC","mass":"72.900000000000006","fall":"Fell","year":"1960-01-01T00:00:00.000","reclat":"27.133330","reclong":"84.066670","geolocation":{"type":"Point","coordinates":[84.06667,27.13333]}} +,{"name":"Soko-Banja","id":"23661","nametype":"Valid","recclass":"LL4","mass":"80000","fall":"Fell","year":"1877-01-01T00:00:00.000","reclat":"43.666670","reclong":"21.866670","geolocation":{"type":"Point","coordinates":[21.86667,43.66667]}} +,{"name":"Sologne","id":"23663","nametype":"Valid","recclass":"H5","mass":"54","fall":"Fell","year":"1860-01-01T00:00:00.000","reclat":"47.366670","reclong":"1.733330","geolocation":{"type":"Point","coordinates":[1.73333,47.36667]}} +,{"name":"Sołtmany","id":"53829","nametype":"Valid","recclass":"L6","mass":"1066","fall":"Fell","year":"2011-01-01T00:00:00.000","reclat":"54.008830","reclong":"22.005000","geolocation":{"type":"Point","coordinates":[22.005,54.00883]}} +,{"name":"Sone","id":"23667","nametype":"Valid","recclass":"H5","mass":"17100","fall":"Fell","year":"1866-01-01T00:00:00.000","reclat":"35.166670","reclong":"135.333330","geolocation":{"type":"Point","coordinates":[135.33333,35.16667]}} +,{"name":"Songyuan","id":"23668","nametype":"Valid","recclass":"L6","mass":"36900","fall":"Fell","year":"1993-01-01T00:00:00.000","reclat":"45.250000","reclong":"125.000000","geolocation":{"type":"Point","coordinates":[125,45.25]}} +,{"name":"Sopot","id":"23670","nametype":"Valid","recclass":"OC","mass":"958","fall":"Fell","year":"1927-01-01T00:00:00.000","reclat":"44.416670","reclong":"23.500000","geolocation":{"type":"Point","coordinates":[23.5,44.41667]}} +,{"name":"Soroti","id":"23671","nametype":"Valid","recclass":"Iron, ungrouped","mass":"2050","fall":"Fell","year":"1945-01-01T00:00:00.000","reclat":"1.700000","reclong":"33.633330","geolocation":{"type":"Point","coordinates":[33.63333,1.7]}} +,{"name":"St. Caprais-de-Quinsac","id":"23081","nametype":"Valid","recclass":"L6","mass":"360","fall":"Fell","year":"1883-01-01T00:00:00.000","reclat":"44.750000","reclong":"0.050000","geolocation":{"type":"Point","coordinates":[0.05,44.75]}} +,{"name":"St. Christophe-la-Chartreuse","id":"23082","nametype":"Valid","recclass":"L6","mass":"5500","fall":"Fell","year":"1841-01-01T00:00:00.000","reclat":"46.950000","reclong":"-1.500000","geolocation":{"type":"Point","coordinates":[-1.5,46.95]}} +,{"name":"St. Denis Westrem","id":"23083","nametype":"Valid","recclass":"L6","mass":"700","fall":"Fell","year":"1855-01-01T00:00:00.000","reclat":"51.050000","reclong":"3.750000","geolocation":{"type":"Point","coordinates":[3.75,51.05]}} +,{"name":"St. Germain-du-Pinel","id":"23087","nametype":"Valid","recclass":"H6","mass":"4000","fall":"Fell","year":"1890-01-01T00:00:00.000","reclat":"48.016670","reclong":"-1.150000","geolocation":{"type":"Point","coordinates":[-1.15,48.01667]}} +,{"name":"St. Louis","id":"23089","nametype":"Valid","recclass":"H4","mass":"1000","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"38.700000","reclong":"-90.233330","geolocation":{"type":"Point","coordinates":[-90.23333,38.7]},":@computed_region_cbhk_fwbd":"18",":@computed_region_nnqa_25f4":"2223"} +,{"name":"St. Mark's","id":"23090","nametype":"Valid","recclass":"EH5","mass":"13780","fall":"Fell","year":"1903-01-01T00:00:00.000","reclat":"-32.016670","reclong":"27.416670","geolocation":{"type":"Point","coordinates":[27.41667,-32.01667]}} +,{"name":"St. Mary's County","id":"23091","nametype":"Valid","recclass":"LL3.3","mass":"24.3","fall":"Fell","year":"1919-01-01T00:00:00.000","reclat":"38.166670","reclong":"-76.383330","geolocation":{"type":"Point","coordinates":[-76.38333,38.16667]},":@computed_region_cbhk_fwbd":"45",":@computed_region_nnqa_25f4":"424"} +,{"name":"St. Mesmin","id":"23092","nametype":"Valid","recclass":"LL6","mass":"8300","fall":"Fell","year":"1866-01-01T00:00:00.000","reclat":"48.450000","reclong":"3.933330","geolocation":{"type":"Point","coordinates":[3.93333,48.45]}} +,{"name":"St. Michel","id":"23093","nametype":"Valid","recclass":"L6","mass":"17000","fall":"Fell","year":"1910-01-01T00:00:00.000","reclat":"61.650000","reclong":"27.200000","geolocation":{"type":"Point","coordinates":[27.2,61.65]}} +,{"name":"St.-Chinian","id":"23097","nametype":"Valid","recclass":"L6","mass":"134.30000000000001","fall":"Fell","year":"1959-01-01T00:00:00.000","reclat":"43.433330","reclong":"2.950000","geolocation":{"type":"Point","coordinates":[2.95,43.43333]}} +,{"name":"Ställdalen","id":"23712","nametype":"Valid","recclass":"H5","mass":"34000","fall":"Fell","year":"1876-01-01T00:00:00.000","reclat":"59.933330","reclong":"14.950000","geolocation":{"type":"Point","coordinates":[14.95,59.93333]}} +,{"name":"Stannern","id":"23713","nametype":"Valid","recclass":"Eucrite-mmict","mass":"52000","fall":"Fell","year":"1808-01-01T00:00:00.000","reclat":"49.283330","reclong":"15.566670","geolocation":{"type":"Point","coordinates":[15.56667,49.28333]}} +,{"name":"Stavropol","id":"23717","nametype":"Valid","recclass":"L6","mass":"1500","fall":"Fell","year":"1857-01-01T00:00:00.000","reclat":"45.050000","reclong":"41.983330","geolocation":{"type":"Point","coordinates":[41.98333,45.05]}} +,{"name":"Ste. Marguerite","id":"23099","nametype":"Valid","recclass":"H4","mass":"4960","fall":"Fell","year":"1962-01-01T00:00:00.000","reclat":"50.766670","reclong":"3.000000","geolocation":{"type":"Point","coordinates":[3,50.76667]}} +,{"name":"Sterlitamak","id":"23724","nametype":"Valid","recclass":"Iron, IIIAB","mass":"325000","fall":"Fell","year":"1990-01-01T00:00:00.000","reclat":"53.666670","reclong":"55.983330","geolocation":{"type":"Point","coordinates":[55.98333,53.66667]}} +,{"name":"Stolzenau","id":"23726","nametype":"Valid","recclass":"Stone-uncl","fall":"Fell","year":"1647-01-01T00:00:00.000","reclat":"52.533330","reclong":"9.050000","geolocation":{"type":"Point","coordinates":[9.05,52.53333]}} +,{"name":"Stratford","id":"23728","nametype":"Valid","recclass":"L6","mass":"50","fall":"Fell","year":"1974-01-01T00:00:00.000","reclat":"41.200000","reclong":"-73.133330","geolocation":{"type":"Point","coordinates":[-73.13333,41.2]},":@computed_region_cbhk_fwbd":"24",":@computed_region_nnqa_25f4":"1040"} +,{"name":"Strathmore","id":"23729","nametype":"Valid","recclass":"L6","mass":"13400","fall":"Fell","year":"1917-01-01T00:00:00.000","reclat":"56.583330","reclong":"-3.250000","geolocation":{"type":"Point","coordinates":[-3.25,56.58333]}} +,{"name":"Stretchleigh","id":"23732","nametype":"Valid","recclass":"Stone-uncl","mass":"10400","fall":"Fell","year":"1623-01-01T00:00:00.000","reclat":"50.383330","reclong":"-3.950000","geolocation":{"type":"Point","coordinates":[-3.95,50.38333]}} +,{"name":"St-Robert","id":"23733","nametype":"Valid","recclass":"H5","mass":"25400","fall":"Fell","year":"1994-01-01T00:00:00.000","reclat":"45.968610","reclong":"-72.978060","geolocation":{"type":"Point","coordinates":[-72.97806,45.96861]}} +,{"name":"Success","id":"23736","nametype":"Valid","recclass":"L6","mass":"3500","fall":"Fell","year":"1924-01-01T00:00:00.000","reclat":"36.483330","reclong":"-90.666670","geolocation":{"type":"Point","coordinates":[-90.66667,36.48333]},":@computed_region_cbhk_fwbd":"15",":@computed_region_nnqa_25f4":"955"} +,{"name":"Suchy Dul","id":"23737","nametype":"Valid","recclass":"L6","mass":"815.3","fall":"Fell","year":"1969-01-01T00:00:00.000","reclat":"50.538060","reclong":"16.263330","geolocation":{"type":"Point","coordinates":[16.26333,50.53806]}} +,{"name":"Suizhou","id":"23738","nametype":"Valid","recclass":"L6","mass":"260000","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"31.616670","reclong":"113.466670","geolocation":{"type":"Point","coordinates":[113.46667,31.61667]}} +,{"name":"Sulagiri","id":"48951","nametype":"Valid","recclass":"LL6","mass":"110000","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"12.666670","reclong":"78.033330","geolocation":{"type":"Point","coordinates":[78.03333,12.66667]}} +,{"name":"Sultanpur","id":"23741","nametype":"Valid","recclass":"L/LL6","mass":"1710.5","fall":"Fell","year":"1916-01-01T00:00:00.000","reclat":"25.933330","reclong":"84.283330","geolocation":{"type":"Point","coordinates":[84.28333,25.93333]}} +,{"name":"Sungach","id":"23745","nametype":"Valid","recclass":"H5","mass":"637","fall":"Fell","year":"1935-01-01T00:00:00.000","reclat":"44.866670","reclong":"133.166670","geolocation":{"type":"Point","coordinates":[133.16667,44.86667]}} +,{"name":"Supuhee","id":"23760","nametype":"Valid","recclass":"H6","mass":"7235","fall":"Fell","year":"1865-01-01T00:00:00.000","reclat":"26.716670","reclong":"84.216670","geolocation":{"type":"Point","coordinates":[84.21667,26.71667]}} +,{"name":"Sutter's Mill","id":"55529","nametype":"Valid","recclass":"C","mass":"992.5","fall":"Fell","year":"2012-01-01T00:00:00.000","reclat":"38.803890","reclong":"-120.908060","geolocation":{"type":"Point","coordinates":[-120.90806,38.80389]},":@computed_region_cbhk_fwbd":"8",":@computed_region_nnqa_25f4":"1187"} +,{"name":"Sylacauga","id":"23773","nametype":"Valid","recclass":"H4","mass":"5560","fall":"Fell","year":"1954-01-01T00:00:00.000","reclat":"33.188360","reclong":"-86.294500","geolocation":{"type":"Point","coordinates":[-86.2945,33.18836]},":@computed_region_cbhk_fwbd":"29",":@computed_region_nnqa_25f4":"1637"} +,{"name":"Tabor","id":"23776","nametype":"Valid","recclass":"H5","mass":"7540","fall":"Fell","year":"1753-01-01T00:00:00.000","reclat":"49.400000","reclong":"14.650000","geolocation":{"type":"Point","coordinates":[14.65,49.4]}} +,{"name":"Tadjera","id":"23778","nametype":"Valid","recclass":"L5","mass":"9000","fall":"Fell","year":"1867-01-01T00:00:00.000","reclat":"36.183330","reclong":"5.416670","geolocation":{"type":"Point","coordinates":[5.41667,36.18333]}} +,{"name":"Tagish Lake","id":"23782","nametype":"Valid","recclass":"C2-ung","mass":"10000","fall":"Fell","year":"2000-01-01T00:00:00.000","reclat":"59.704440","reclong":"-134.201390","geolocation":{"type":"Point","coordinates":[-134.20139,59.70444]}} +,{"name":"Tahara","id":"23784","nametype":"Valid","recclass":"H4/5","mass":"1000","fall":"Fell","year":"1991-01-01T00:00:00.000","reclat":"34.720000","reclong":"137.305000","geolocation":{"type":"Point","coordinates":[137.305,34.72]}} +,{"name":"Takenouchi","id":"23789","nametype":"Valid","recclass":"H5","mass":"720","fall":"Fell","year":"1880-01-01T00:00:00.000","reclat":"35.383330","reclong":"134.900000","geolocation":{"type":"Point","coordinates":[134.9,35.38333]}} +,{"name":"Talampaya","id":"23791","nametype":"Valid","recclass":"Eucrite-cm","mass":"1421","fall":"Fell","year":"1995-01-01T00:00:00.000"} +,{"name":"Tambakwatu","id":"23795","nametype":"Valid","recclass":"L6","mass":"10500","fall":"Fell","year":"1975-01-01T00:00:00.000","reclat":"-7.750000","reclong":"112.766670","geolocation":{"type":"Point","coordinates":[112.76667,-7.75]}} +,{"name":"Tamdakht","id":"48691","nametype":"Valid","recclass":"H5","mass":"100000","fall":"Fell","year":"2008-01-01T00:00:00.000","reclat":"31.163330","reclong":"-7.015000","geolocation":{"type":"Point","coordinates":[-7.015,31.16333]}} +,{"name":"Tané","id":"23801","nametype":"Valid","recclass":"L5","mass":"905","fall":"Fell","year":"1918-01-01T00:00:00.000","reclat":"35.433330","reclong":"136.233330","geolocation":{"type":"Point","coordinates":[136.23333,35.43333]}} +,{"name":"Taonan","id":"23873","nametype":"Valid","recclass":"L5","mass":"3850","fall":"Fell","year":"1965-01-01T00:00:00.000","reclat":"45.400000","reclong":"122.900000","geolocation":{"type":"Point","coordinates":[122.9,45.4]}} +,{"name":"Tatahouine","id":"23884","nametype":"Valid","recclass":"Diogenite","mass":"12000","fall":"Fell","year":"1931-01-01T00:00:00.000","reclat":"32.950000","reclong":"10.416670","geolocation":{"type":"Point","coordinates":[10.41667,32.95]}} +,{"name":"Tathlith","id":"23885","nametype":"Valid","recclass":"L6","mass":"2500","fall":"Fell","year":"1967-01-01T00:00:00.000","reclat":"19.383330","reclong":"43.733330","geolocation":{"type":"Point","coordinates":[43.73333,19.38333]}} +,{"name":"Tauk","id":"23887","nametype":"Valid","recclass":"L6","mass":"6000","fall":"Fell","year":"1929-01-01T00:00:00.000","reclat":"35.133330","reclong":"44.450000","geolocation":{"type":"Point","coordinates":[44.45,35.13333]}} +,{"name":"Tauti","id":"23888","nametype":"Valid","recclass":"L6","mass":"21000","fall":"Fell","year":"1937-01-01T00:00:00.000","reclat":"46.716670","reclong":"23.500000","geolocation":{"type":"Point","coordinates":[23.5,46.71667]}} +,{"name":"Tenham","id":"23897","nametype":"Valid","recclass":"L6","mass":"160000","fall":"Fell","year":"1879-01-01T00:00:00.000","reclat":"-25.733330","reclong":"142.950000","geolocation":{"type":"Point","coordinates":[142.95,-25.73333]}} +,{"name":"Tennasilm","id":"23898","nametype":"Valid","recclass":"L4","mass":"28500","fall":"Fell","year":"1872-01-01T00:00:00.000","reclat":"58.033330","reclong":"26.950000","geolocation":{"type":"Point","coordinates":[26.95,58.03333]}} +,{"name":"Thal","id":"23908","nametype":"Valid","recclass":"H6","mass":"342","fall":"Fell","year":"1950-01-01T00:00:00.000","reclat":"33.400000","reclong":"70.600000","geolocation":{"type":"Point","coordinates":[70.6,33.4]}} +,{"name":"Thika","id":"54493","nametype":"Valid","recclass":"L6","mass":"14200","fall":"Fell","year":"2011-01-01T00:00:00.000","reclat":"-1.002780","reclong":"37.150280","geolocation":{"type":"Point","coordinates":[37.15028,-1.00278]}} +,{"name":"Thuathe","id":"23976","nametype":"Valid","recclass":"H4/5","mass":"45300","fall":"Fell","year":"2002-01-01T00:00:00.000","reclat":"-29.333330","reclong":"27.583330","geolocation":{"type":"Point","coordinates":[27.58333,-29.33333]}} +,{"name":"Tianzhang","id":"23984","nametype":"Valid","recclass":"H5","mass":"2232","fall":"Fell","year":"1986-01-01T00:00:00.000","reclat":"32.946670","reclong":"118.990000","geolocation":{"type":"Point","coordinates":[118.99,32.94667]}} +,{"name":"Tieschitz","id":"23989","nametype":"Valid","recclass":"H/L3.6","mass":"28000","fall":"Fell","year":"1878-01-01T00:00:00.000","reclat":"49.600000","reclong":"17.116670","geolocation":{"type":"Point","coordinates":[17.11667,49.6]}} +,{"name":"Tilden","id":"23998","nametype":"Valid","recclass":"L6","mass":"74800","fall":"Fell","year":"1927-01-01T00:00:00.000","reclat":"38.200000","reclong":"-89.683330","geolocation":{"type":"Point","coordinates":[-89.68333,38.2]},":@computed_region_cbhk_fwbd":"34",":@computed_region_nnqa_25f4":"1762"} +,{"name":"Tillaberi","id":"23999","nametype":"Valid","recclass":"L6","mass":"3000","fall":"Fell","year":"1970-01-01T00:00:00.000","reclat":"14.250000","reclong":"1.533330","geolocation":{"type":"Point","coordinates":[1.53333,14.25]}} +,{"name":"Timochin","id":"24004","nametype":"Valid","recclass":"H5","mass":"65500","fall":"Fell","year":"1807-01-01T00:00:00.000","reclat":"54.500000","reclong":"35.200000","geolocation":{"type":"Point","coordinates":[35.2,54.5]}} +,{"name":"Tirupati","id":"24009","nametype":"Valid","recclass":"H6","mass":"230","fall":"Fell","year":"1934-01-01T00:00:00.000","reclat":"13.633330","reclong":"79.416670","geolocation":{"type":"Point","coordinates":[79.41667,13.63333]}} +,{"name":"Tissint","id":"54823","nametype":"Valid","recclass":"Martian (shergottite)","mass":"7000","fall":"Fell","year":"2011-01-01T00:00:00.000","reclat":"29.481950","reclong":"-7.611230","geolocation":{"type":"Point","coordinates":[-7.61123,29.48195]}} +,{"name":"Tjabe","id":"24011","nametype":"Valid","recclass":"H6","mass":"20000","fall":"Fell","year":"1869-01-01T00:00:00.000","reclat":"-7.083330","reclong":"111.533330","geolocation":{"type":"Point","coordinates":[111.53333,-7.08333]}} +,{"name":"Tjerebon","id":"24012","nametype":"Valid","recclass":"L5","mass":"16500","fall":"Fell","year":"1922-01-01T00:00:00.000","reclat":"-6.666670","reclong":"106.583330","geolocation":{"type":"Point","coordinates":[106.58333,-6.66667]}} +,{"name":"Tomakovka","id":"24019","nametype":"Valid","recclass":"LL6","mass":"600","fall":"Fell","year":"1905-01-01T00:00:00.000","reclat":"47.850000","reclong":"34.766670","geolocation":{"type":"Point","coordinates":[34.76667,47.85]}}] From 1175bb39272dbdbcde684dc157bbc48dd94f5f30 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 22 May 2025 18:02:45 -0700 Subject: [PATCH 151/163] added new asteroids link --- D0-Pandas_Example.ipynb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/D0-Pandas_Example.ipynb b/D0-Pandas_Example.ipynb index d24e187..d61e7f0 100644 --- a/D0-Pandas_Example.ipynb +++ b/D0-Pandas_Example.ipynb @@ -35,7 +35,8 @@ "source": [ "import requests\n", "import pandas as pd\n", - "meteorites = requests.get('https://data.nasa.gov/resource/y77d-th95.json').json()\n", + "# meteorites = requests.get('https://data.nasa.gov/resource/y77d-th95.json').json()\n", + "meteorites = requests.get('https://raw.githubusercontent.com/a8ksh4/python_workshop/refs/heads/main/SAMPLE_DATA/y77d-th95.json').json()\n", "mets = pd.DataFrame(meteorites)\n", "mets.head()" ] @@ -201,7 +202,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.12.3" } }, "nbformat": 4, From beaa4bc1c85b008fb0357fa7c6d0f83e3c5d6569 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 12 Jun 2025 17:12:38 -0700 Subject: [PATCH 152/163] updates --- F-Flask_Web_Server.ipynb | 142 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/F-Flask_Web_Server.ipynb b/F-Flask_Web_Server.ipynb index e69de29..bce260c 100644 --- a/F-Flask_Web_Server.ipynb +++ b/F-Flask_Web_Server.ipynb @@ -0,0 +1,142 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Section F - Flask Web Server\n", + "\n", + "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", + "\n", + "Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications.\n", + "\n", + "We'll make a simple web page mixing flask and dash to make a dashboard and render some cool graphs! See the Plotly_Express notebook for some info on generating nice graphs.\n", + "\n", + "**Our Plan**:\n", + "* We'll dive into Plotly Express to learn about how to make and customize plots\n", + "* We'll look at a simple Dash app\n", + "* And we'll make a more complex Dash app\n", + "\n", + "**References**: \n", + "* [Flask User Guide](https://flask.palletsprojects.com/en/stable/)\n", + "\n", + "## A Minimal First Flask Page:\n", + "Put the following code into a python file and run it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from flask import Flask\n", + "\n", + "app = Flask(__name__)\n", + "\n", + "@app.route(\"/\")\n", + "def hello_world():\n", + " return \"

Hello, World!

\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Routing\n", + "Using the route decorator lets us specify which function is used to generate a page at each URL path. E.g. below for mypage.com/ and mypage.com/hello:\n", + "\n", + " @app.route('/')\n", + " def index():\n", + " return 'Index Page'\n", + "\n", + " @app.route('/hello')\n", + " def hello():\n", + " return 'Hello, World'\n", + "\n", + "\n", + "## Templates\n", + "We can create an html file with our page content and propagate each part of using labels like \"plot0_html\" and \"plot1_html\". Then use matching arguments in the render_template function in your script to pass in the needed code for each graph.\n", + "\n", + "Create ./templates/index.html with the following contents:\n", + "\n", + " \n", + " \n", + " \n", + " Plotly Example\n", + " \n", + " \n", + "

Plotly Graph

\n", + " {{ plot0_html | safe }}\n", + "\n", + "

Another Plotly Graph

\n", + " {{ plot1_html | safe }}\n", + " \n", + " \n", + "\n", + "And a python script with the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#!/usr/bin/env python3\n", + "\n", + "from flask import Flask, render_template\n", + "import plotly.offline as pyo\n", + "import plotly.graph_objs as go\n", + "\n", + "app = Flask(__name__)\n", + "\n", + "@app.route('/')\n", + "def index():\n", + " # Create a Plotly figure\n", + " data0 = [go.Scatter(x=[1, 2, 3], y=[4, 2, 7])]\n", + " fig0 = go.Figure(data=data0)\n", + "\n", + " data1 = [go.Line(x=[1, 2, 3], y=[4, 5, 7])]\n", + " fig1 = go.Figure(data=data1)\n", + "\n", + " # Generate HTML representation of the plot\n", + " plot0_html = pyo.plot(fig0, output_type='div')\n", + " plot1_html = pyo.plot(fig1, output_type='div')\n", + "\n", + " # Render the template with the plot\n", + " return render_template('index.html',\n", + " plot0_html=plot0_html,\n", + " plot1_html=plot1_html)\n", + "\n", + "if __name__ == '__main__':\n", + " app.run(debug=True)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the script and open the printed URL with your browser and you should see two graphs. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 31ec74f4a3187c49553c870a699f00f76ec4d44e Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 12 Jun 2025 17:13:14 -0700 Subject: [PATCH 153/163] updates --- G-Databases_Working_With.ipynb | 46 ++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/G-Databases_Working_With.ipynb b/G-Databases_Working_With.ipynb index 64bc695..b3a6418 100644 --- a/G-Databases_Working_With.ipynb +++ b/G-Databases_Working_With.ipynb @@ -10,13 +10,55 @@ "Feedback: https://forms.gle/Le3RAsMEcYqEyswEA\n", "\n", "**Topics**:\n", + "* Basics\n", "* Sqlite\n", " * Pandas DB Functions\n", "* Create Table\n", "* Drop Table\n", "* Update Rows\n", "\n", - "There are\n", + "There are many types of database: \n", + "* SQl Flavors - Sqlite, MariaDB, PosgreSQL, MySQL, MS SQL, ...\n", + "* NoSQL Flavors - Mongo DB, Elastic, Redis, ...\n", + "\n", + "**Why use databases?**\n", + "* In a business enveronment, a database hosted on a server can be shared by multiple people with updates and queries happenning in parallel. Databases are disigned to host and interacte with large volumes of data and can provide baked-in solutions like [ACID transactions](https://www.mongodb.com/resources/basics/databases/acid-transactions#what-are-acid-transactions).\n", + "* You may need to save your own data when not working with it and storing it in sqlite is one of many ways to serialize it and save it in a file. Pandas dataframes can contain datasets so large they cannot be exported as xlxs (or csv?) files. \n", + "\n", + "## Basics\n", + "To work with a database from python, we do a couple of things:\n", + "* import database library\n", + "* Create a connection to the database - this could be a file path for sqlite, or a server name with login and password for a hosted database like Postgres. \n", + "* Create a cursor from the connection - The cursor is what we use to run commands, inserts, updates, queries and retreive results. \n", + "* Alternatively, pass the connection to a tool like pandas and let it generate queries/updates/inserts for you. \n", + "\n", + "A couple examples:\n", + "\n", + "**Sqlite**\n", + "\n", + " import sqlite3\n", + " \n", + " with sqlite3.connect('example.db') as conn:\n", + " cursor = conn.cursor()\n", + " cursor.execute('SELECT name FROM sqlite_master WHERE type=\"table\";')\n", + " print(cursor.fetchall())\n", + "\n", + "**Postgres**\n", + "\n", + " import psycopg2\n", + "\n", + " with psycopg2.connect(\n", + " dbname=\"your_db\",\n", + " user=\"your_user\",\n", + " password=\"your_password\",\n", + " host=\"localhost\",\n", + " port=\"5432\"\n", + " ) as conn:\n", + " with conn.cursor() as cursor:\n", + " cursor.execute(\"SELECT * FROM your_table LIMIT 5;\")\n", + " print(cursor.fetchall())\n", + "\n", + "\n", "\n", "## Mathematical Operations\n", "These are the basic mathematical functoins that are included in python without importing any libraries." @@ -24,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "3afc46da", "metadata": {}, "outputs": [ From b1d6c5e9b74095b46c6f503c6cc6b132987e63f3 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 12 Jun 2025 17:14:28 -0700 Subject: [PATCH 154/163] new --- R-Regex.ipynb | 275 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 R-Regex.ipynb diff --git a/R-Regex.ipynb b/R-Regex.ipynb new file mode 100644 index 0000000..a863b80 --- /dev/null +++ b/R-Regex.ipynb @@ -0,0 +1,275 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c48fc4fb", + "metadata": {}, + "source": [ + "# Section R - Regex\n", + "\n", + "Regex is a text matching language that can be used with python\n", + "* Advanced pattern matching when looking for a fixed set of characters won't help\n", + "* Matching repeating groups with specific permutations\n", + "* Matching sub-groups of patterns in a string\n", + "* Input validation - use regex to facilitate pass-lists of options/input\n", + " * email address validation\n", + " * phone number validation\n", + " * ...\n", + "* Advanced text replacement.\n", + "\n", + "Resources for learning:\n", + "* http://regex101.com – live testing with explanation\n", + "* http://pythex.org – Python-flavored regex testing\n", + "\n", + "Let's do an email input validation example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79184851", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "<>:3: SyntaxWarning: invalid escape sequence '\\-'\n", + "<>:3: SyntaxWarning: invalid escape sequence '\\-'\n", + "/tmp/ipykernel_1063836/1384070319.py:3: SyntaxWarning: invalid escape sequence '\\-'\n", + " valid_email = '[a-zA-Z0-9_\\-\\.]+\\.[a-zA-Z0-9\\-]+\\.(com|org|net|us|cn)'\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "What's your email address?\n" + ] + } + ], + "source": [ + "import re\n", + "\n", + "valid_email = r'[a-zA-Z0-9_\\-.]+@[a-zA-Z0-9\\-]+.(com|org)'\n", + "print(\"What's your email address?\")\n", + "email = input()\n", + "print(\"You entered:\", email)\n", + "if re.match(valid_email, email):\n", + " print(\"This is a valid email address!\")\n", + "else:\n", + " print(\"This is NOT a valid email address!\")\n" + ] + }, + { + "cell_type": "markdown", + "id": "9c2e04ba", + "metadata": {}, + "source": [ + "## Example regex patterns/characters\n", + "Regex uses special characters or patterns to match types of characters, whitespace, boundaries, and groups.\n", + "\n", + "```\n", + "Pattern\t Meaning Example Match \n", + ". Any character except newline a.b → acb, a7b \n", + "^ / $\t Start / end of line ^Hi matches lines starting with \"Hi\" \n", + "\\d / \\w\t Digit / Word char \\d = 0–9, \\w = a–z, A–Z, _ \n", + "\\s Whitespace (space, tab, etc.)\t\n", + "+, *, ?\t 1+ / 0+ / 0 or 1 repeats a+, a*, a? \n", + "{n} / {m,n} Exactly n / Between m and n \\d{4} → 4 digits \n", + "[abc]\t a, b, or c gr[ae]y → gray, grey \n", + "[^abc]\t Not a, b, or c\n", + "( ) Grouping\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b90e4b2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hello\n" + ] + } + ], + "source": [ + "# Search for a pattern in a string\n", + "m = re.search(r'\\d+', 'There are 15 cats')\n", + "print(m.group()) # '15'\n", + "\n", + "# Find all occurrences of a pattern in a string\n", + "nums = re.findall(r'\\d+', 'There are 15 cats and 7 dogs')\n", + "print(nums) # ['15', '7']\n", + "\n", + "# Substitute a pattern in a string\n", + "clean = re.sub(r'\\s+', ' ', 'Too many spaces')\n", + "print(clean) # 'Too many spaces'\n", + "\n", + "# Grouping data to pick out specific parts\n", + "m = re.match(r'(\\w+): (\\d+)', 'Age: 30')\n", + "print(m.group(1)) # 'Age'\n", + "print(m.group(2)) # '30'\n", + "\n", + "# Using flags to modify regex behavior\n", + "re.findall(r'dog', 'Dog DOG dog', flags=re.IGNORECASE)\n", + "# ['Dog', 'DOG', 'dog']" + ] + }, + { + "cell_type": "markdown", + "id": "de24bfee", + "metadata": {}, + "source": [ + "## Problem Set\n", + "It can help to copy the text to the regex101 site and play with regex there to get things to match and then move the working regex to your code here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ec3b252e", + "metadata": {}, + "outputs": [], + "source": [ + "# Extract All Numbers From a String\n", + "text = \"In 2023, there were 150 cats and 30 dogs.\"\n", + "\n", + "# your solution here\n", + "# hint \\d+\n", + "\n", + "print(\"The numbers are:\", all_numbers)\n", + "if set(all_numbers) == {'2023', '150', '30'}:\n", + " print(\"All numbers extracted correctly!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e65cc4fe", + "metadata": {}, + "outputs": [], + "source": [ + "# Extract All Words Starting with a Capital Letter\n", + "text = \"Alice went to Wonderland with Bob and Charlie.\"\n", + "\n", + "# your solution here\n", + "# hint \\b[A-Z][a-z]*\\b\n", + "\n", + "print(\"The capitalized words are:\", capitalized_words)\n", + "if set(capitalized_words) == {'Alice', 'Bob', 'Charlie', 'Wonderland'}:\n", + " print(\"All capitalized words extracted correctly!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e05aafe2", + "metadata": {}, + "outputs": [], + "source": [ + "# Find all words ending with 'ing'\n", + "text = \"I am singing while walking and then running.\"\n", + "\n", + "# your solution here\n", + "# hint \\b\\w+ing\\b\n", + "\n", + "print(\"The words ending with 'ing' are:\", ing_words)\n", + "if set(ing_words) == {'singing', 'walking', 'running'}:\n", + " print(\"All 'ing' words extracted correctly!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b45f29ae", + "metadata": {}, + "outputs": [], + "source": [ + "# Replace all dashes with underscores\n", + "text = \"this-is_some-kind_of-text\"\n", + "\n", + "# your solution here\n", + "# hint re.sub\n", + "\n", + "print(\"The modified text is:\", modified_text)\n", + "if modified_text == \"this_is_some_kind_of_text\":\n", + " print(\"Dashes replaced with underscores correctly!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e480a88d", + "metadata": {}, + "outputs": [], + "source": [ + "# Validate US zip codes\n", + "codes = [\"12345\", \"9876\", \"123456\"]\n", + "\n", + "# your solution here\n", + "\n", + "print(\"Valid zip codes are:\", valid_zip_codes)\n", + "if set(valid_zip_codes) == {'12345'}:\n", + " print(\"All valid zip codes extracted correctly!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd17ef9f", + "metadata": {}, + "outputs": [], + "source": [ + "# Use regex to pick the email addresses out from the following text\n", + "text = \"Contact me at test@example.com or foo.bar99@domain.co\"\n", + "\n", + "# your soultion here\n", + "\n", + "print(\"The emails are:\", emails)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f5e0ff6", + "metadata": {}, + "outputs": [], + "source": [ + "# Replace dates like MM/DD/YYYY with YYYY-MM-DD.\n", + "dates = (\"01/15/2020, 12/31/2019, 07/04/2021\")\n", + "\n", + "# your solution here\n", + "\n", + "print(\"The reformatted dates are:\", reformatted_dates)\n", + "if set(reformatted_dates) == {'2020-01-15', '2019-12-31', '2021-07-04'}:\n", + " print(\"The dates were reformatted correctly!\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 3454621dc3ae39965f21fe0daa0a82bf3f24343d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 12 Jun 2025 17:29:29 -0700 Subject: [PATCH 155/163] cleanup formatting --- R-Regex.ipynb | 59 ++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/R-Regex.ipynb b/R-Regex.ipynb index a863b80..7752b8b 100644 --- a/R-Regex.ipynb +++ b/R-Regex.ipynb @@ -29,25 +29,7 @@ "execution_count": null, "id": "79184851", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "<>:3: SyntaxWarning: invalid escape sequence '\\-'\n", - "<>:3: SyntaxWarning: invalid escape sequence '\\-'\n", - "/tmp/ipykernel_1063836/1384070319.py:3: SyntaxWarning: invalid escape sequence '\\-'\n", - " valid_email = '[a-zA-Z0-9_\\-\\.]+\\.[a-zA-Z0-9\\-]+\\.(com|org|net|us|cn)'\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "What's your email address?\n" - ] - } - ], + "outputs": [], "source": [ "import re\n", "\n", @@ -69,18 +51,33 @@ "## Example regex patterns/characters\n", "Regex uses special characters or patterns to match types of characters, whitespace, boundaries, and groups.\n", "\n", - "```\n", - "Pattern\t Meaning Example Match \n", - ". Any character except newline a.b → acb, a7b \n", - "^ / $\t Start / end of line ^Hi matches lines starting with \"Hi\" \n", - "\\d / \\w\t Digit / Word char \\d = 0–9, \\w = a–z, A–Z, _ \n", - "\\s Whitespace (space, tab, etc.)\t\n", - "+, *, ?\t 1+ / 0+ / 0 or 1 repeats a+, a*, a? \n", - "{n} / {m,n} Exactly n / Between m and n \\d{4} → 4 digits \n", - "[abc]\t a, b, or c gr[ae]y → gray, grey \n", - "[^abc]\t Not a, b, or c\n", - "( ) Grouping\n", - "```" + "* **Pattern**\n", + " * Meaning\n", + " * Example Match \n", + "* **.**\n", + " * Any character except newline\n", + " * a.b → acb, a7b \n", + "* **^ / $**\n", + " * Start / end of line\n", + " * ^Hi matches lines starting with \"Hi\" \n", + "* **\\d / \\w**\n", + " * Digit / Word char\n", + " * \\d = 0–9, \\w = a–z, A–Z, _ \n", + "* **\\s**\n", + " * Whitespace (space, tab, etc.)\t\n", + "* **+**, **\\***, **?**\n", + " * 1+ / 0+ / 0 or 1 repeats \n", + " * a+, a*, a? \n", + "* **{n}** / **{m,n}**\n", + " * Exactly n / Between m and n\n", + " * \\d{4} → 4 digits \n", + "* **[abc]**\n", + " * a, b, or c\n", + " * gr[ae]y → gray, grey \n", + "* **[^abc]**\n", + " * Not a, b, or c\n", + "* **( )**\n", + " * Grouping\n" ] }, { From 983704d5f85b1212baae651f002d010c50a043d1 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 12 Jun 2025 17:38:27 -0700 Subject: [PATCH 156/163] Update README.md --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 15a85e7..e87ab61 100644 --- a/README.md +++ b/README.md @@ -12,17 +12,16 @@ See the Notebooks list below for a more detailed list. ## Current Schedule: We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. -* Thursday May 01 - 5:30PM New Time! -* Thursday May 08 - 5:30PM -* Thursday May 15 - NO MEETING (writers group) -* Thursday May 22 - 5:30PM -* Thursday May 29 - NO MEETING (special event) -* Thursday Jun 05 - 5:30PM * Thursday Jun 12 - 5:30PM * Thursday Jun 19 - NO MEETING (writers group) * Thursday Jun 26 - NO MEETING (schedule conflict) * Thursday Jul 03 - 5:30PM * Thursday Jul 10 - 5:30PM +* Thursday Jul 17 - NO MEETING (writers group) +* Thursday Jul 24 - NO MEETING (schedule conflict) +* Thursday Jul 30 - NO MEETING (schedule conflict) +* Thursday Aug 07 - 5:30PM +* Thursday Aug 14 - 5:30PM * Thursdays ongoing at 5:30PM except third thursday of each month and special events. Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** From 48d32d9cc68b4a97080e9646a410dfa9846542b6 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 26 Jun 2025 16:40:39 -0700 Subject: [PATCH 157/163] Adding threading Images --- images/multithreading-comparison.png | Bin 0 -> 69163 bytes images/multithreading-example1.png | Bin 0 -> 25590 bytes images/multithreading-example2.png | Bin 0 -> 26318 bytes images/multithreading-gil.png | Bin 0 -> 13034 bytes images/threading_vs_processes.png | Bin 0 -> 113090 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/multithreading-comparison.png create mode 100644 images/multithreading-example1.png create mode 100644 images/multithreading-example2.png create mode 100644 images/multithreading-gil.png create mode 100644 images/threading_vs_processes.png diff --git a/images/multithreading-comparison.png b/images/multithreading-comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..354b6c7b14372e1622827c02796774d7db1838c2 GIT binary patch literal 69163 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 MIW<|hj9I|{0I(7)UH||9 literal 0 HcmV?d00001 diff --git a/images/multithreading-example1.png b/images/multithreading-example1.png new file mode 100644 index 0000000000000000000000000000000000000000..114fef5e9cec7a5733f2b81b495a8bc41d961891 GIT binary patch literal 25590 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 l`+pI9;(vD8EvYodaU2KxLGO51_IxcO!B4JO91U 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 literal 0 HcmV?d00001 diff --git a/images/multithreading-gil.png b/images/multithreading-gil.png new file mode 100644 index 0000000000000000000000000000000000000000..283a0426ff829336ed7b8765971567487a733b9f GIT binary patch literal 13034 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 literal 0 HcmV?d00001 diff --git a/images/threading_vs_processes.png b/images/threading_vs_processes.png new file mode 100644 index 0000000000000000000000000000000000000000..b3095969c73e38cb5739a631b8c91b91d8fb2c0a GIT binary patch literal 113090 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 z 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 literal 0 HcmV?d00001 From d401910919e5c852f1e1e9c4a6f3114711d32e98 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 26 Jun 2025 16:41:21 -0700 Subject: [PATCH 158/163] add threading notebook --- H-Multithreading.ipynb | 233 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 H-Multithreading.ipynb diff --git a/H-Multithreading.ipynb b/H-Multithreading.ipynb new file mode 100644 index 0000000..b0e6f61 --- /dev/null +++ b/H-Multithreading.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "88d53049", + "metadata": {}, + "source": [ + "# H - Multi-Threading\n", + "\n", + "Differences between processes and threads\n", + "\n", + "## What is it?\n", + "Multi-threading enables us to do more than one thing at the same time. One multi-core CPUs, threads can occupy more than one core and both perform work concurrently. Even on a single core, threads can take turns running so that if one thread is waiting for a response (network, user input, disk read, etc) another thread can still be productive. \n", + "\n", + "\n", + "### Processes vs threads\n", + "Processes are allocated by the operating system and have their own protected memory. It is expensive to create and destroy processes and sharing data between processes is difficult. Eace process can start multiple threads that all share the process' memory, so threads can communicate, e.g. worker threads can take turns retreiving tasks from a queue in \"shared memory\" to work on them in parallel. We need to take precautions to avoid reading/changing memory at the same time between threads using locks and/or mutexes. \n", + "* A lock can be used to protect a critical section of code from being interrupted by a task switch to another thread\n", + "* A mutex can be used to ensure only one thread interacts with something in memory at a time. This is sort of like a baton. Each thread waits to receive the mutex before doing the thing and then releases it for another thread. \n", + "\n", + "## What for?\n", + "Using multiple threads lets us run multiple operations in parallel. We might want to do this for a few reasons:\n", + "* Tasks that have blocking operations can be executed in parallel so whichever are currently unblocked get to run while the waiting ones sit idle. \n", + " * Web Servers can use a thread for each user session\n", + "* Large operatoins can be broken up into smaller chunks and run in parallel on more than one cpu core to improve performance. \n", + "\n", + "**Alternatives**\n", + "Many libraries are written in C and implement threading on their own to improve performance for their specific tasks. Exmalpes:\n", + "* numpy - pandas is built on this. \n", + "* pytorch - used for neural networks\n", + "* opencv - for image processing\n", + "* ...\n", + "\n", + "\n", + "## What is the Gil?\n", + "The GIL - Global Interpreter Lock - is a sort of mutex that only lets one thread execute at a time. Python was designed using the gil initially to make the language more simple and maintainable and to focus on single threaded performance. Many python programs are slowed more by I/O wait than cpu and don't see performance penalty from the gil. \n", + "\n", + "Work is ongoing now to remove the gil, and even standard python can be compiled now without it if you have need for truly concurrent multi-threading with python. Just note that some libraries are not thread safe or not yet updated to work without the gil. \n", + "\n", + "https://py-free-threading.github.io/running-gil-disabled/\n", + "\n", + "# Simple first example\n", + "Let's create two threads that each execute the worker function. \n", + "* threading.Thread returns a handle for a new thread\n", + " * target= specifies the function it will run\n", + " * args= specifies any arguments that should be passed to the function\n", + "* t.start() tells the thread to start running.\n", + "* t.join() waits for the thread to complete. This is \"blocking\". " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "698765cd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thread-A is working on step 0\n", + "Thread-B is working on step 0\n", + "Thread-A is working on step 1\n", + "Thread-B is working on step 1\n", + "Thread-A is working on step 2\n", + "Thread-B is working on step 2\n", + "All threads are done.\n" + ] + } + ], + "source": [ + "import threading\n", + "import time\n", + "\n", + "def worker(name):\n", + " for i in range(3):\n", + " print(f\"{name} is working on step {i}\")\n", + " time.sleep(1)\n", + "\n", + "# Create threads\n", + "t1 = threading.Thread(target=worker, args=(\"Thread-A\",))\n", + "t2 = threading.Thread(target=worker, args=(\"Thread-B\",))\n", + "\n", + "# Start threads\n", + "t1.start()\n", + "t2.start()\n", + "\n", + "# Wait for threads to finish\n", + "t1.join()\n", + "t2.join()\n", + "\n", + "print(\"All threads are done.\")" + ] + }, + { + "cell_type": "markdown", + "id": "c01345f2", + "metadata": {}, + "source": [ + "## Working with shared memory\n", + "What happens when more than one thread each try to use a counter variable/object with no coordination? In this example, each thread should add 10000 to our counter, so the conter should increment up to 50000 with 5 threads. \n", + "\n", + "Run it couple of times and then uncomment the time.sleep line and run it a few more times. Time.sleep forces a context switch to another thread. This is something that always has a chance of happening at any point in our code but may be infrequent and hard to observe without adding the time.sleep to make it obvious. \n", + "\n", + "Why does the counter total change from 50000 to 10000 or 10001, 10002, 10003, ... when addding the sleep? \n", + "\n", + "Each thread checks the counter and adds to it in it's own variable. If another thread context switches in before the first thread puts its change back on the counter, the second thread will try to make the same change, e.g. both of them try to add 1 to the same number.\n", + "\n", + "With more complicated code these interactins can cause all kinds of unintended behavior." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfccad59", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final counter value: 50000\n" + ] + } + ], + "source": [ + "import threading\n", + "\n", + "counter = 0\n", + "\n", + "def increment():\n", + " global counter\n", + " for _ in range(10000):\n", + " new_value = counter + 1\n", + " # time.sleep(0)\n", + " counter = new_value\n", + "\n", + "threads = [threading.Thread(target=increment) for _ in range(5)]\n", + "\n", + "for t in threads:\n", + " t.start()\n", + "for t in threads:\n", + " t.join()\n", + "\n", + "print(\"Final counter value:\", counter) # Usually not 50000!" + ] + }, + { + "cell_type": "markdown", + "id": "79a5e01b", + "metadata": {}, + "source": [ + "Let's fix this unexpected behavior using locks" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62ecb28b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final counter value: 50000\n" + ] + } + ], + "source": [ + "import threading\n", + "\n", + "counter = 0\n", + "lock = threading.Lock()\n", + "\n", + "def increment():\n", + " global counter\n", + " for _ in range(10000):\n", + " with lock:\n", + " # only one thread at a time can execute this code block\n", + " new_value = counter + 1\n", + " time.sleep(0)\n", + " counter = new_value\n", + "\n", + "threads = [threading.Thread(target=increment) for _ in range(5)]\n", + "\n", + "for t in threads:\n", + " t.start()\n", + "for t in threads:\n", + " t.join()\n", + "\n", + "print(\"Final counter value:\", counter) # Always 50000!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9767c387", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5ac7244", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From a66f4895eaa3189a988184eec7bce58c05be4e3f Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 26 Jun 2025 17:30:33 -0700 Subject: [PATCH 159/163] finished notebook --- H-Multithreading.ipynb | 186 +++++++++++++++++++++++++++++++---------- 1 file changed, 142 insertions(+), 44 deletions(-) diff --git a/H-Multithreading.ipynb b/H-Multithreading.ipynb index b0e6f61..aed8d5b 100644 --- a/H-Multithreading.ipynb +++ b/H-Multithreading.ipynb @@ -12,33 +12,88 @@ "## What is it?\n", "Multi-threading enables us to do more than one thing at the same time. One multi-core CPUs, threads can occupy more than one core and both perform work concurrently. Even on a single core, threads can take turns running so that if one thread is waiting for a response (network, user input, disk read, etc) another thread can still be productive. \n", "\n", + "**Options:**\n", + "* Single thread (a process with a single thread)\n", + "* Multiple threads (a process with multiple threads)\n", + "* Multiple processes (multiple processes each having one or more threads)\n", + "* Single thread using asyncio (library enabling single thread to manage multiple io-bound tasks consurrenty)\n", + "* Stackless python - uses greenlets (like threads in a thread) to manage multiple tasks pseudo-concurrently like asyncio.\n", + "* Native Libraries that handle concurrency on their own - numpy, pytorch, etc\n", "\n", - "### Processes vs threads\n", - "Processes are allocated by the operating system and have their own protected memory. It is expensive to create and destroy processes and sharing data between processes is difficult. Eace process can start multiple threads that all share the process' memory, so threads can communicate, e.g. worker threads can take turns retreiving tasks from a queue in \"shared memory\" to work on them in parallel. We need to take precautions to avoid reading/changing memory at the same time between threads using locks and/or mutexes. \n", - "* A lock can be used to protect a critical section of code from being interrupted by a task switch to another thread\n", - "* A mutex can be used to ensure only one thread interacts with something in memory at a time. This is sort of like a baton. Each thread waits to receive the mutex before doing the thing and then releases it for another thread. \n", + "\n", "\n", - "## What for?\n", - "Using multiple threads lets us run multiple operations in parallel. We might want to do this for a few reasons:\n", - "* Tasks that have blocking operations can be executed in parallel so whichever are currently unblocked get to run while the waiting ones sit idle. \n", - " * Web Servers can use a thread for each user session\n", - "* Large operatoins can be broken up into smaller chunks and run in parallel on more than one cpu core to improve performance. \n", + "## Reasons for needing threading/concurrency\n", + "* Performance - get things done faster\n", + " * Avoid doing nothing while waiting for a long io bound operation to complete\n", + "* Responsiveness - one thread can check for user input while other threads do the work efficiently\n", "\n", - "**Alternatives**\n", - "Many libraries are written in C and implement threading on their own to improve performance for their specific tasks. Exmalpes:\n", - "* numpy - pandas is built on this. \n", - "* pytorch - used for neural networks\n", - "* opencv - for image processing\n", - "* ...\n", + "## Pitfalls of threading\n", + "* Python GIL limits actuall parallelism and limits performance.\n", + " * Use multiprocessing or native extensions (e.g., NumPy, PyTorch) for parallel computation.\n", + "* Race Conditions - Multiple threads try to use the same resources at the same time.\n", + " * Use threading.Lock() or higher-level synchronization primitives.\n", + "* Deadlocks - if threads don't release resources then work in other threads can be blocked.\n", + " * Prefer context managers (with lock:) over lock.acquire() / lock.release() manually\n", "\n", + "## Threading library \n", "\n", - "## What is the Gil?\n", + "**Create a new thread**\n", + "Pass it the functiion that it will execute and the arguments to pass to the function\n", + "```\n", + "import threading\n", + "\n", + "def worker(name_of_worker):\n", + " work()\n", + " work_more()\n", + " print(f'{name_of_worker} is done')\n", + "\n", + "t1 = threading.Thread(target=worker, args=(\"Thread-A\",))\n", + "```\n", + "\n", + "**Start the thread**\n", + "Threads don't start running until told to.\n", + "```\n", + "t1.start()\n", + "```\n", + "\n", + "**Check if the thread is still running**\n", + "```\n", + "if t.is_alive():\n", + " print(\"Thread is still running...\")\n", + "```\n", + "\n", + "**End the thread**\n", + "This is a blocking call that waits for the thread to finish. Don't call this if you need to run other code in the main thread while the worker thread is still running.\n", + "```\n", + "t1.join()\n", + "```\n", + "\n", + "### Locks\n", + "We need to take precautions to avoid reading/changing memory at the same time between threads using locks and/or mutexes. \n", + "\n", + "```\n", + "lock = threading.Lock()\n", + "...\n", + "with lock:\n", + " do_something_with_shared_resource()\n", + "```\n", + "\n", + "## Processes vs threads\n", + "Processes are allocated by the operating system and have their own protected memory. It is expensive to create and destroy processes and sharing data between processes is difficult. Eace process can start multiple threads that all share the process' memory, so threads can communicate, e.g. worker threads can take turns retreiving tasks from a queue in \"shared memory\" to work on them in parallel. \n", + "\n", + "\n", + "\n", + "\n", + "## What is the GIL?\n", "The GIL - Global Interpreter Lock - is a sort of mutex that only lets one thread execute at a time. Python was designed using the gil initially to make the language more simple and maintainable and to focus on single threaded performance. Many python programs are slowed more by I/O wait than cpu and don't see performance penalty from the gil. \n", "\n", "Work is ongoing now to remove the gil, and even standard python can be compiled now without it if you have need for truly concurrent multi-threading with python. Just note that some libraries are not thread safe or not yet updated to work without the gil. \n", "\n", "https://py-free-threading.github.io/running-gil-disabled/\n", "\n", + "\n", + "\n", + "\n", "# Simple first example\n", "Let's create two threads that each execute the worker function. \n", "* threading.Thread returns a handle for a new thread\n", @@ -50,24 +105,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "698765cd", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Thread-A is working on step 0\n", - "Thread-B is working on step 0\n", - "Thread-A is working on step 1\n", - "Thread-B is working on step 1\n", - "Thread-A is working on step 2\n", - "Thread-B is working on step 2\n", - "All threads are done.\n" - ] - } - ], + "outputs": [], "source": [ "import threading\n", "import time\n", @@ -114,15 +155,7 @@ "execution_count": null, "id": "cfccad59", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Final counter value: 50000\n" - ] - } - ], + "outputs": [], "source": [ "import threading\n", "\n", @@ -150,7 +183,7 @@ "id": "79a5e01b", "metadata": {}, "source": [ - "Let's fix this unexpected behavior using locks" + "Let's fix this unexpected behavior using a lock that only lets one thread at a time execute the contentious bit of code. This ensures that, even with a task switch in the middle, no thread is able to read the counter between the time that another thread reads it and increments it. The read & update block is atomic. " ] }, { @@ -182,6 +215,7 @@ " time.sleep(0)\n", " counter = new_value\n", "\n", + "# Create 5 threads\n", "threads = [threading.Thread(target=increment) for _ in range(5)]\n", "\n", "for t in threads:\n", @@ -192,13 +226,48 @@ "print(\"Final counter value:\", counter) # Always 50000!" ] }, + { + "cell_type": "markdown", + "id": "f641e652", + "metadata": {}, + "source": [ + "## Problem\n", + "The following code downloads several URLs in a single thread using a loop. Re-write this in the cell below using threads and measure how long it takes to complete compared to the single threaded version. \n", + "\n", + "**Bonus tasks**\n", + "* Add print statements to the thread function to say what each one is doing. Add a name argument so they can say which thread they are.\n", + "* Have the thread function get a lock on the \"urls\" list and pop a url off rather than initializing the threads each with a url." + ] + }, { "cell_type": "code", "execution_count": null, "id": "9767c387", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Example single threaded code:\n", + "import requests\n", + "import time\n", + "\n", + "urls = [\n", + " 'https://example.com',\n", + " 'https://httpbin.org/delay/2',\n", + " 'https://httpbin.org/uuid',\n", + " 'https://httpbin.org/ip',\n", + "]\n", + "\n", + "def save_url(url):\n", + " response = requests.get(url)\n", + " with open(f'result_{i}.txt', 'w') as f:\n", + " f.write(response.text)\n", + " \n", + "start_time = time.time()\n", + "for i, url in enumerate(urls):\n", + " save_url(url)\n", + "end_time = time.time()\n", + "print(f\"Single-threaded execution time: {end_time - start_time:.2f} seconds\")" + ] }, { "cell_type": "code", @@ -206,7 +275,36 @@ "id": "c5ac7244", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Example single threaded code:\n", + "import requests\n", + "import time\n", + "\n", + "urls = [\n", + " 'https://example.com',\n", + " 'https://httpbin.org/delay/2',\n", + " 'https://httpbin.org/uuid',\n", + " 'https://httpbin.org/ip',\n", + "]\n", + "\n", + "def save_url(url):\n", + " response = requests.get(url)\n", + " with open(f'result_{i}.txt', 'w') as f:\n", + " f.write(response.text)\n", + "\n", + "# Create threads for each url\n", + "...\n", + "\n", + "start_time = time.time()\n", + "# Start the threads and see how long until are all done\n", + "...\n", + "\n", + "# Wait for the threads to finish\n", + "...\n", + "\n", + "end_time = time.time()\n", + "print(f\"Multi-threaded execution time: {end_time - start_time:.2f} seconds\")" + ] } ], "metadata": { From 3f2a19ae84730dcfbf0b420a3f72029dac14df7d Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Thu, 3 Jul 2025 17:15:39 -0700 Subject: [PATCH 160/163] cleanup --- H-Multithreading.ipynb | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/H-Multithreading.ipynb b/H-Multithreading.ipynb index aed8d5b..560c62f 100644 --- a/H-Multithreading.ipynb +++ b/H-Multithreading.ipynb @@ -7,10 +7,11 @@ "source": [ "# H - Multi-Threading\n", "\n", - "Differences between processes and threads\n", "\n", "## What is it?\n", - "Multi-threading enables us to do more than one thing at the same time. One multi-core CPUs, threads can occupy more than one core and both perform work concurrently. Even on a single core, threads can take turns running so that if one thread is waiting for a response (network, user input, disk read, etc) another thread can still be productive. \n", + "Multi-threading enables us to do more than one thing at the same time.\n", + "* One multi-core CPUs, multiple threads can run on multiple cores and perform work concurrently. \n", + "* Even on a single core, threads can take turns running so that if one thread is waiting for a response (network, user input, disk read, etc) another thread can still be productive. \n", "\n", "**Options:**\n", "* Single thread (a process with a single thread)\n", @@ -244,7 +245,21 @@ "execution_count": null, "id": "9767c387", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Working on: https://example.com\n", + "Working on: https://httpbin.org/delay/2\n", + "Working on: https://httpbin.org/uuid\n", + "Working on: https://httpbin.org/ip\n", + "Working on: https://httpbin.org/image/png\n", + "Working on: https://httpbin.org/image/svg\n", + "Single-threaded execution time: 4.17 seconds\n" + ] + } + ], "source": [ "# Example single threaded code:\n", "import requests\n", @@ -252,19 +267,23 @@ "\n", "urls = [\n", " 'https://example.com',\n", + " 'https://www.iana.org/help/example-domains',\n", " 'https://httpbin.org/delay/2',\n", " 'https://httpbin.org/uuid',\n", " 'https://httpbin.org/ip',\n", + " 'https://httpbin.org/image/png',\n", + " 'https://httpbin.org/image/svg',\n", "]\n", "\n", - "def save_url(url):\n", + "def save_url(url, number):\n", " response = requests.get(url)\n", - " with open(f'result_{i}.txt', 'w') as f:\n", + " with open(f'result_{number}.txt', 'w') as f:\n", " f.write(response.text)\n", " \n", "start_time = time.time()\n", "for i, url in enumerate(urls):\n", - " save_url(url)\n", + " print(\"Working on:\", url)\n", + " save_url(url, i)\n", "end_time = time.time()\n", "print(f\"Single-threaded execution time: {end_time - start_time:.2f} seconds\")" ] @@ -276,20 +295,24 @@ "metadata": {}, "outputs": [], "source": [ - "# Example single threaded code:\n", + "# Your multi-threaded code here:\n", "import requests\n", "import time\n", + "import threading\n", "\n", "urls = [\n", " 'https://example.com',\n", + " 'https://www.iana.org/help/example-domains',\n", " 'https://httpbin.org/delay/2',\n", " 'https://httpbin.org/uuid',\n", " 'https://httpbin.org/ip',\n", + " 'https://httpbin.org/image/png',\n", + " 'https://httpbin.org/image/svg',\n", "]\n", "\n", - "def save_url(url):\n", + "def save_url(url, number):\n", " response = requests.get(url)\n", - " with open(f'result_{i}.txt', 'w') as f:\n", + " with open(f'result_{number}.txt', 'w') as f:\n", " f.write(response.text)\n", "\n", "# Create threads for each url\n", From ab57ca7977d3331214b98697f6280c2a0be778a8 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 3 Jul 2025 17:19:31 -0700 Subject: [PATCH 161/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e87ab61..b6bde36 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ See the Notebooks list below for a more detailed list. We were meeting on wednesdays during October, but due to a scheduling conflict, we'll bo moving to Thursdays. * Thursday Jun 12 - 5:30PM * Thursday Jun 19 - NO MEETING (writers group) -* Thursday Jun 26 - NO MEETING (schedule conflict) +* Thursday Jun 26 - 5:30PM * Thursday Jul 03 - 5:30PM * Thursday Jul 10 - 5:30PM * Thursday Jul 17 - NO MEETING (writers group) From 975aaee81b2cfecabd211c036791876a64cea686 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 3 Jul 2025 17:30:03 -0700 Subject: [PATCH 162/163] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6bde36..6337861 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,14 @@ We have a series of python notebooks ready to work through to learn from. They * https://replit.com/ **Online Classes, videos, etc*** -There are sooo many good resources online. This course is assembled by a great instructor at GATech and is recommended pre-cursor to their online Masters in Comp Sci program: https://www.edx.org/certificates/professional-certificate/the-georgia-institute-of-technology-introduction-to-python-programming +* Kaggle Courses; e.g. Intro to Programming: + * https://www.kaggle.com/learn +* Many Youtube Python Programming tutorials: + * https://www.youtube.com/watch?v=eWRfhZUzrAc&list=PLWKjhJtqVAbnqBxcdjVGgT3uVR10bzTEB + * https://www.youtube.com/watch?v=K5KVEU3aaeQ + * ... search ... +* More structured fancy courses/programs. This one is assembled by a great instructor at GATech and is recommended pre-cursor to their online Masters in Comp Sci program + * https://www.edx.org/certificates/professional-certificate/the-georgia-institute-of-technology-introduction-to-python-programming ### Notes on AI like ChatGPT These tools are **very** helpful for learning. For this course, use them to explain how things work, but don't ask them to write code for you. If you don't experiment and learn for yourself, you won't retain as much. Keep all of your code and use your past code as the start for each more complicated problem. You'll build a toolkit of libraries and code bits that you understand and make all kinds of things from. From 545322c599c2a10a091c141651f833e751e523dd Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 7 Aug 2025 17:26:45 -0700 Subject: [PATCH 163/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6337861..fb4eb5f 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ We were meeting on wednesdays during October, but due to a scheduling conflict, * Thursday Jul 30 - NO MEETING (schedule conflict) * Thursday Aug 07 - 5:30PM * Thursday Aug 14 - 5:30PM -* Thursdays ongoing at 5:30PM except third thursday of each month and special events. +* THE END, doing other stuff for a while... Please check the library calendar here to confirm dates/times: **https://engagedpatrons.org/EventsCalendar.cfm?SiteID=7839** * Set "limit by location" to "Cameron Park Library".