diff --git a/CAD_Engine.ipynb b/CAD_Engine.ipynb index 5ffa1a3..545ee87 100644 --- a/CAD_Engine.ipynb +++ b/CAD_Engine.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -27,60 +27,21 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 48, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['2018-10-01 01:00:00',\n", - " '2018-10-01 01:15:00',\n", - " '2018-10-01 01:30:00',\n", - " '2018-10-01 01:45:00',\n", - " '2018-10-01 02:00:00']" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "def datetime_range(start, end, delta, dt_format='%Y-%m-%d %H:%M:%S'):\n", - " reverse_head = end\n", - " [start, end] = [datetime.strptime(x, dt_format) for x in [start, end]]\n", - " def _datetime_range(start, end, delta):\n", - " current = start\n", - " while current < end:\n", - " yield current\n", - " current += delta\n", - " \n", - " reverse_tail = [dt.strftime(dt_format) for dt in _datetime_range(start, end, delta)]\n", - " return reverse_tail + [reverse_head]\n", - "\n", - "\n", - "datetime_range('2018-10-01 01:00:00', '2018-10-01 02:00:00', timedelta(minutes=15))\n", + "# datetime_range('2018-10-01 01:00:00', '2018-10-01 02:00:00', timedelta(minutes=15))\n", "\n", "# # datetime(2018, 10, 1, 1, 0, 0) + timedelta(seconds=30)\n", "# # datetime.strptime('2018-10-01 15:16:24', '%Y-%m-%d %H:%M:%S')\n", "\n", - "# def time_step(dt_str, dt_format='%Y-%m-%d %H:%M:%S', days=0, minutes=0, seconds=30):\n", - "# dt = datetime.strptime(dt_str, dt_format)\n", - "# t = dt + timedelta(days=days, minutes=minutes, seconds=seconds)\n", - "# return t.strftime(dt_format)\n", - "\n", - "# def es_time_step(s, dt_str, fromat_str='%Y-%m-%d %H:%M:%S', days=0, minutes=0, seconds=1):\n", - "# if s['mech_step'] == 0:\n", - "# return time_step(dt_str, fromat_str, days, minutes, seconds)\n", - "# else: \n", - "# return dt_str\n", - "\n", - "# time_step('2018-10-01 15:16:24')" + "# time_step('2018-10-01 15:16:24', t_delta=timedelta(seconds=30))" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -104,6 +65,9 @@ "def last_index(l):\n", " return len(l)-1\n", "\n", + "def round_down(x, fp=TWOPLACES):\n", + " return x.quantize(TWOPLACES, rounding=ROUND_DOWN)\n", + "\n", "def retrieve_state(l, offset):\n", " return l[last_index(l) + offset + 1]\n", "# Stochastic Process\n", @@ -118,34 +82,34 @@ "def env_proc(trigger_step, update_f):\n", " def env_step_trigger(trigger_step, update_f, step):\n", " if step == trigger_step:\n", - "# print('trigered: '+step)\n", " return update_f\n", " else:\n", - "# print('NOT trigered: '+step)\n", " return lambda x: x\n", " return partial(env_step_trigger, trigger_step, update_f)\n", "\n", - "def time_step(dt_str, dt_format='%Y-%m-%d %H:%M:%S', days=0, minutes=0, seconds=30):\n", + "def time_step(dt_str, dt_format='%Y-%m-%d %H:%M:%S', t_delta=timedelta(seconds=1)):\n", " dt = datetime.strptime(dt_str, dt_format)\n", - " t = dt + timedelta(days=days, minutes=minutes, seconds=seconds)\n", + " t = dt + t_delta #(days=days, minutes=minutes, seconds=seconds)\n", " return t.strftime(dt_format)\n", "\n", - "def ep_time_step(s, dt_str, fromat_str='%Y-%m-%d %H:%M:%S', days=0, minutes=0, seconds=1):\n", + "def ep_time_step(s, dt_str, dt_format='%Y-%m-%d %H:%M:%S', t_delta=timedelta(seconds=1)):\n", " if s['mech_step'] == 0:\n", - " return time_step(dt_str, fromat_str, days, minutes, seconds)\n", + " return time_step(dt_str, dt_format, t_delta)\n", " else: \n", " return dt_str\n", - "\n", - "def round_down(x, fp=TWOPLACES):\n", - " return x.quantize(TWOPLACES, rounding=ROUND_DOWN)\n", " \n", - "# def round_down(f, fp=TWOPLACES):\n", - "# return (f).quantize(fp, ROUND_DOWN)" + "def shift_time(time_seq, t_delta, dt_format='%Y-%m-%d %H:%M:%S'):\n", + " time_seq = [\n", + " time_step(time,dt_format,t_delta) for time in time_seq\n", + " ]\n", + " time_seq = time_seq[:-1]\n", + "# x = (datetime.strptime(time_seq[0], dt_format) - t_delta).strftime(dt_format)\n", + " return time_seq" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ @@ -158,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -209,7 +173,7 @@ "def es4p2(step, sL, s, _input):\n", " s['s4'] = s['s4'] * bound_norm_random(seed['b'], proc_one_coef_A, proc_one_coef_B) \n", "def es5p2(step, sL, s, _input):\n", - " s['timestamp'] = ep_time_step(s, s['timestamp'], seconds=1)\n", + " s['timestamp'] = ep_time_step(s, s['timestamp'], t_delta=timedelta(seconds=1))\n", "\n", "\n", "# add env process f(s) read from time es\n", @@ -284,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -323,9 +287,6 @@ " # * force eval of _input withing state functions\n", " _input = getBehaviorInput(m_step, sL, last_in_obj, behavior_funcs)\n", "\n", - " \n", - "# apply_env_proc(env_processes, last_mut_obj, t_step)\n", - "\n", " for f in state_funcs:\n", " f(m_step, sL, last_mut_obj, _input)\n", " \n", @@ -349,32 +310,29 @@ " s_conf, b_conf = config[0], config[1]\n", " states_list = mech_step(m_step, states_list, s_conf, b_conf, env_processes, t_step) \n", " m_step += 1 \n", - " \n", - " t_step += 1\n", " \n", " return states_list\n", "\n", - "def pipeline(states_list, configs, env_processes, time_seq):\n", - " time_seq = [x + 1 for x in time_seq]\n", + "def pipeline(states_list, configs, env_processes, time_seq, shift_time):\n", " simulation_list = [states_list]\n", - " for time_step in time_seq:\n", + " for time_step in shift_time(time_seq):\n", " pipeline_run = block_gen(simulation_list[-1], configs, env_processes, time_step)\n", " head, *pipeline_run = pipeline_run\n", " simulation_list.append(pipeline_run)\n", " \n", " return simulation_list\n", "\n", - "def simulation(states_list, configs, env_processes, time_seq, runs):\n", + "def simulation(states_list, configs, env_processes, time_seq, shift_time, runs):\n", " pipeline_run = []\n", " for run in range(runs):\n", " if run == 0:\n", - " head, *tail = pipeline(states_list, configs, env_processes, time_seq)\n", - " head[-1]['mech_step'], head[-1]['time_step'] = 0, 0\n", + " head, *tail = pipeline(states_list, configs, env_processes, time_seq, shift_time)\n", + " head[-1]['mech_step'], head[-1]['time_step'] = 0, time_seq[0]\n", " simulation_list = [head] + tail\n", " pipeline_run += simulation_list\n", " else:\n", " transient_states_list = [pipeline_run[-1][-1]]\n", - " head, *tail = pipeline(transient_states_list, configs, env_processes, time_seq)\n", + " head, *tail = pipeline(transient_states_list, configs, env_processes, time_seq, shift_time)\n", " pipeline_run += tail\n", " \n", " return pipeline_run" @@ -382,34 +340,30 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "time_seq = datetime_range('2018-10-01 15:16:24', '2018-10-01 15:16:34', timedelta(seconds=1))" - ] - }, - { - "cell_type": "code", - "execution_count": 7, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "states_list = [state_dict]\n", "configs = generate_config(mechanisms, exogenous_states)\n", - "p = pipeline(states_list, configs, env_processes, range(10))\n", - "s = simulation(states_list, configs, env_processes, range(5), 2)\n", - "x = flatten(s)\n", + "t_delta = timedelta(seconds=1)\n", + "dt_format = '%Y-%m-%d %H:%M:%S'\n", + "time_seq = datetime_range('2018-10-01 15:16:25', '2018-10-01 15:16:30', t_delta)\n", + "shift_time = partial(shift_time, t_delta=t_delta, dt_format=dt_format)\n", + "# t_step_func = partial(time_step, dt_format='%Y-%m-%d %H:%M:%S', t_delta=timedelta(seconds=1))\n", + "p = pipeline(states_list, configs, env_processes, time_seq, shift_time)\n", + "s = simulation(states_list, configs, env_processes, time_seq, shift_time, 2)\n", + "# x = flatten(s)\n", "# transient_state = p[-1][1]\n", "# transient_state['mech_step'], transient_state['time_step'] = 0, 0\n", "# head, *tail = pipeline([transient_state], configs, env_processes, range(1))\n", "# head\n", - "datetime_range('2018-10-01 15:16:24', '2018-10-01 15:16:34', timedelta(seconds=1))" + "# datetime_range('2018-10-01 15:16:24', '2018-10-01 15:16:34', timedelta(seconds=1))" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 54, "metadata": {}, "outputs": [ { @@ -450,7 +404,7 @@ " 0\n", " 1\n", " 1\n", - " 0\n", + " 2018-10-01 15:16:25\n", " 2018-10-01 15:16:24\n", " \n", " \n", @@ -460,7 +414,7 @@ " 2\n", " 10\n", " 10\n", - " 1\n", + " 2018-10-01 15:16:26\n", " 2018-10-01 15:16:25\n", " \n", " \n", @@ -470,7 +424,7 @@ " 8\n", " 10\n", " 10\n", - " 1\n", + " 2018-10-01 15:16:26\n", " 2018-10-01 15:16:25\n", " \n", " \n", @@ -480,7 +434,7 @@ " 26\n", " 10\n", " 10\n", - " 1\n", + " 2018-10-01 15:16:26\n", " 2018-10-01 15:16:25\n", " \n", " \n", @@ -488,9 +442,9 @@ " 1\n", " 80\n", " 80\n", - " 10.11272650481664925337099703\n", - " 9.373583088811631158776549455\n", - " 2\n", + " 9.252129050706137114445937186\n", + " 10.98236743425816008823403536\n", + " 2018-10-01 15:16:27\n", " 2018-10-01 15:16:26\n", " \n", " \n", @@ -498,9 +452,9 @@ " 2\n", " 242\n", " 242\n", - " 10.48734693326453094234983527\n", - " 8.620166261663314142236915486\n", - " 2\n", + " 9.260479329378158177289328465\n", + " 9.773134505872951353663717959\n", + " 2018-10-01 15:16:27\n", " 2018-10-01 15:16:26\n", " \n", " \n", @@ -508,9 +462,9 @@ " 3\n", " 728\n", " 728\n", - " 11.91324213527073640563759608\n", - " 6.534876346304093857289840679\n", - " 2\n", + " 8.447309329946559323070338635\n", + " 8.614972595444376133636202387\n", + " 2018-10-01 15:16:27\n", " 2018-10-01 15:16:26\n", " \n", " \n", @@ -518,9 +472,9 @@ " 1\n", " 2186\n", " 2186\n", - " 12.51111677744237829906599131\n", - " 5.931189683155669237263639524\n", - " 3\n", + " 8.315164547245310978888053714\n", + " 8.437805770666267959046252347\n", + " 2018-10-01 15:16:28\n", " 2018-10-01 15:16:27\n", " \n", " \n", @@ -528,9 +482,9 @@ " 2\n", " 6560\n", " 6560\n", - " 11.45491115406912332557488657\n", - " 5.323909548201248804011334243\n", - " 3\n", + " 8.528507099880499769035782570\n", + " 9.691788887317723858642586596\n", + " 2018-10-01 15:16:28\n", " 2018-10-01 15:16:27\n", " \n", " \n", @@ -538,9 +492,9 @@ " 3\n", " 19682\n", " 19682\n", - " 11.45492233574810924703732794\n", - " 5.922305246967391091784578434\n", - " 3\n", + " 7.685226186116018598361218396\n", + " 9.921209296133436640888106066\n", + " 2018-10-01 15:16:28\n", " 2018-10-01 15:16:27\n", " \n", " \n", @@ -548,9 +502,9 @@ " 1\n", " 59048\n", " 59048\n", - " 12.07618299500414501852331463\n", - " 5.844181611660746042323398006\n", - " 4\n", + " 7.424833841540128989990233434\n", + " 8.905490631385261513421888970\n", + " 2018-10-01 15:16:29\n", " 2018-10-01 15:16:28\n", " \n", " \n", @@ -558,9 +512,9 @@ " 2\n", " 177146\n", " 177146\n", - " 11.69758475927152423750273350\n", - " 4.895504116358059115564009831\n", - " 4\n", + " 7.249471123029554104994307320\n", + " 8.270535205001335858385142896\n", + " 2018-10-01 15:16:29\n", " 2018-10-01 15:16:28\n", " \n", " \n", @@ -568,9 +522,9 @@ " 3\n", " 531440\n", " 531440\n", - " 12.59948227491754385453787769\n", - " 5.212084350211693473310595115\n", - " 4\n", + " 6.787204963083554624043069103\n", + " 8.787646255441291389289396948\n", + " 2018-10-01 15:16:29\n", " 2018-10-01 15:16:28\n", " \n", " \n", @@ -578,9 +532,9 @@ " 1\n", " 1594322\n", " 1594322\n", - " 10.24578476590601915537323162\n", - " 5.026393025236651957087178490\n", - " 5\n", + " 5.981148162646233553536647982\n", + " 8.646592789945505515808943440\n", + " 2018-10-01 15:16:30\n", " 2018-10-01 15:16:29\n", " \n", " \n", @@ -588,9 +542,9 @@ " 2\n", " 4782968\n", " 4782968\n", - " 12.01951931367329656846103790\n", - " 4.150221830221986597823503510\n", - " 5\n", + " 5.131097081865108301139205944\n", + " 7.981811305613678677662030625\n", + " 2018-10-01 15:16:30\n", " 2018-10-01 15:16:29\n", " \n", " \n", @@ -598,9 +552,9 @@ " 3\n", " 14348906\n", " 14348906\n", - " 13.78359773310736942021387828\n", - " 3.902598993430797578406458962\n", - " 5\n", + " 5.052337206803277494008920518\n", + " 7.798205123642025674557723581\n", + " 2018-10-01 15:16:30\n", " 2018-10-01 15:16:29\n", " \n", " \n", @@ -608,9 +562,9 @@ " 1\n", " 43046720\n", " 43046720\n", - " 13.32091359287408730481902298\n", - " 3.672894210059761345742434130\n", - " 1\n", + " 4.916400557718402271697528026\n", + " 8.379215283050421575080212185\n", + " 2018-10-01 15:16:26\n", " 2018-10-01 15:16:30\n", " \n", " \n", @@ -618,9 +572,9 @@ " 2\n", " 129140162\n", " 129140162\n", - " 14.13527536292426397902194114\n", - " 3.351926486887274317017948960\n", - " 1\n", + " 6.013429850254044301398955256\n", + " 10.03504105054768761482285059\n", + " 2018-10-01 15:16:26\n", " 2018-10-01 15:16:30\n", " \n", " \n", @@ -628,9 +582,9 @@ " 3\n", " 387420488\n", " 387420488\n", - " 14.20308311546219526855400801\n", - " 3.361886339360781260941488875\n", - " 1\n", + " 4.549299447945809819406984995\n", + " 8.786558182746000129903289727\n", + " 2018-10-01 15:16:26\n", " 2018-10-01 15:16:30\n", " \n", " \n", @@ -638,9 +592,9 @@ " 1\n", " 1162261466\n", " 1162261466\n", - " 13.02545537307822846470938594\n", - " 2.606047631743025149285461982\n", - " 2\n", + " 4.600582110558934131398650528\n", + " 8.236153319064736461682698833\n", + " 2018-10-01 15:16:27\n", " 2018-10-01 15:16:31\n", " \n", " \n", @@ -648,9 +602,9 @@ " 2\n", " 3486784400\n", " 3486784400\n", - " 13.13970192664229610704565704\n", - " 2.536267614367708948896160350\n", - " 2\n", + " 4.771008161391651222975581842\n", + " 7.574159240304879095669686928\n", + " 2018-10-01 15:16:27\n", " 2018-10-01 15:16:31\n", " \n", " \n", @@ -658,9 +612,9 @@ " 3\n", " 10460353202\n", " 10460353202\n", - " 14.45415288332803687992198248\n", - " 2.793238049474741135891634693\n", - " 2\n", + " 5.419690586923192171796198305\n", + " 5.741907123385151994511077932\n", + " 2018-10-01 15:16:27\n", " 2018-10-01 15:16:31\n", " \n", " \n", @@ -668,9 +622,9 @@ " 1\n", " 31381059608\n", " 31381059608\n", - " 13.90331593224211305310973356\n", - " 3.031444787261044967744846862\n", - " 3\n", + " 5.691681664880417077015819078\n", + " 5.211474324395010139047971223\n", + " 2018-10-01 15:16:28\n", " 2018-10-01 15:16:32\n", " \n", " \n", @@ -678,9 +632,9 @@ " 2\n", " 94143178826\n", " 94143178826\n", - " 13.38101086472707551893567355\n", - " 3.367385709259623648524467847\n", - " 3\n", + " 5.211182098947496199476580803\n", + " 4.677884100494724327605499943\n", + " 2018-10-01 15:16:28\n", " 2018-10-01 15:16:32\n", " \n", " \n", @@ -688,9 +642,9 @@ " 3\n", " 282429536480\n", " 282429536480\n", - " 13.28136145598818796728374992\n", - " 3.744327718839584052060484761\n", - " 3\n", + " 5.211187185828099975453746034\n", + " 5.203667962846090136827830871\n", + " 2018-10-01 15:16:28\n", " 2018-10-01 15:16:32\n", " \n", " \n", @@ -698,9 +652,9 @@ " 1\n", " 847288609442\n", " 847288609442\n", - " 13.85710360094731748652239268\n", - " 4.301312617048495503346448551\n", - " 4\n", + " 5.493817263246493315310649359\n", + " 5.135024176139143498787810469\n", + " 2018-10-01 15:16:29\n", " 2018-10-01 15:16:33\n", " \n", " \n", @@ -708,9 +662,9 @@ " 2\n", " 2541865828328\n", " 2541865828328\n", - " 15.62856694446497485222188399\n", - " 3.820296532701969691212693578\n", - " 4\n", + " 5.321581588765326386518278255\n", + " 4.301463175225263107024383580\n", + " 2018-10-01 15:16:29\n", " 2018-10-01 15:16:33\n", " \n", " \n", @@ -718,9 +672,9 @@ " 3\n", " 7625597484986\n", " 7625597484986\n", - " 14.63665414353875737144481534\n", - " 4.143429975924374142196892846\n", - " 4\n", + " 5.731881775768539828310868603\n", + " 4.579628239651492432231803488\n", + " 2018-10-01 15:16:29\n", " 2018-10-01 15:16:33\n", " \n", " \n", @@ -728,9 +682,9 @@ " 1\n", " 22876792454960\n", " 22876792454960\n", - " 15.38077614074195493801335714\n", - " 3.372383430314120031908078792\n", - " 5\n", + " 4.661114297930784123663525967\n", + " 4.416469476559052658960219284\n", + " 2018-10-01 15:16:30\n", " 2018-10-01 15:16:34\n", " \n", " \n", @@ -738,9 +692,9 @@ " 2\n", " 68630377364882\n", " 68630377364882\n", - " 15.71317933201924350842295494\n", - " 3.169067456800405322991965480\n", - " 5\n", + " 5.468039257826792700899090619\n", + " 3.646616558254807724187351899\n", + " 2018-10-01 15:16:30\n", " 2018-10-01 15:16:34\n", " \n", " \n", @@ -748,9 +702,9 @@ " 3\n", " 205891132094648\n", " 205891132094648\n", - " 12.79270835883217130804015761\n", - " 2.562358351829251223423466163\n", - " 5\n", + " 6.270571355793247137773251590\n", + " 3.429041311970567806939288123\n", + " 2018-10-01 15:16:30\n", " 2018-10-01 15:16:34\n", " \n", " \n", @@ -791,74 +745,74 @@ "29 2 68630377364882 68630377364882 \n", "30 3 205891132094648 205891132094648 \n", "\n", - " s3 s4 time_step \\\n", - "0 1 1 0 \n", - "1 10 10 1 \n", - "2 10 10 1 \n", - "3 10 10 1 \n", - "4 10.11272650481664925337099703 9.373583088811631158776549455 2 \n", - "5 10.48734693326453094234983527 8.620166261663314142236915486 2 \n", - "6 11.91324213527073640563759608 6.534876346304093857289840679 2 \n", - "7 12.51111677744237829906599131 5.931189683155669237263639524 3 \n", - "8 11.45491115406912332557488657 5.323909548201248804011334243 3 \n", - "9 11.45492233574810924703732794 5.922305246967391091784578434 3 \n", - "10 12.07618299500414501852331463 5.844181611660746042323398006 4 \n", - "11 11.69758475927152423750273350 4.895504116358059115564009831 4 \n", - "12 12.59948227491754385453787769 5.212084350211693473310595115 4 \n", - "13 10.24578476590601915537323162 5.026393025236651957087178490 5 \n", - "14 12.01951931367329656846103790 4.150221830221986597823503510 5 \n", - "15 13.78359773310736942021387828 3.902598993430797578406458962 5 \n", - "16 13.32091359287408730481902298 3.672894210059761345742434130 1 \n", - "17 14.13527536292426397902194114 3.351926486887274317017948960 1 \n", - "18 14.20308311546219526855400801 3.361886339360781260941488875 1 \n", - "19 13.02545537307822846470938594 2.606047631743025149285461982 2 \n", - "20 13.13970192664229610704565704 2.536267614367708948896160350 2 \n", - "21 14.45415288332803687992198248 2.793238049474741135891634693 2 \n", - "22 13.90331593224211305310973356 3.031444787261044967744846862 3 \n", - "23 13.38101086472707551893567355 3.367385709259623648524467847 3 \n", - "24 13.28136145598818796728374992 3.744327718839584052060484761 3 \n", - "25 13.85710360094731748652239268 4.301312617048495503346448551 4 \n", - "26 15.62856694446497485222188399 3.820296532701969691212693578 4 \n", - "27 14.63665414353875737144481534 4.143429975924374142196892846 4 \n", - "28 15.38077614074195493801335714 3.372383430314120031908078792 5 \n", - "29 15.71317933201924350842295494 3.169067456800405322991965480 5 \n", - "30 12.79270835883217130804015761 2.562358351829251223423466163 5 \n", + " s3 s4 \\\n", + "0 1 1 \n", + "1 10 10 \n", + "2 10 10 \n", + "3 10 10 \n", + "4 9.252129050706137114445937186 10.98236743425816008823403536 \n", + "5 9.260479329378158177289328465 9.773134505872951353663717959 \n", + "6 8.447309329946559323070338635 8.614972595444376133636202387 \n", + "7 8.315164547245310978888053714 8.437805770666267959046252347 \n", + "8 8.528507099880499769035782570 9.691788887317723858642586596 \n", + "9 7.685226186116018598361218396 9.921209296133436640888106066 \n", + "10 7.424833841540128989990233434 8.905490631385261513421888970 \n", + "11 7.249471123029554104994307320 8.270535205001335858385142896 \n", + "12 6.787204963083554624043069103 8.787646255441291389289396948 \n", + "13 5.981148162646233553536647982 8.646592789945505515808943440 \n", + "14 5.131097081865108301139205944 7.981811305613678677662030625 \n", + "15 5.052337206803277494008920518 7.798205123642025674557723581 \n", + "16 4.916400557718402271697528026 8.379215283050421575080212185 \n", + "17 6.013429850254044301398955256 10.03504105054768761482285059 \n", + "18 4.549299447945809819406984995 8.786558182746000129903289727 \n", + "19 4.600582110558934131398650528 8.236153319064736461682698833 \n", + "20 4.771008161391651222975581842 7.574159240304879095669686928 \n", + "21 5.419690586923192171796198305 5.741907123385151994511077932 \n", + "22 5.691681664880417077015819078 5.211474324395010139047971223 \n", + "23 5.211182098947496199476580803 4.677884100494724327605499943 \n", + "24 5.211187185828099975453746034 5.203667962846090136827830871 \n", + "25 5.493817263246493315310649359 5.135024176139143498787810469 \n", + "26 5.321581588765326386518278255 4.301463175225263107024383580 \n", + "27 5.731881775768539828310868603 4.579628239651492432231803488 \n", + "28 4.661114297930784123663525967 4.416469476559052658960219284 \n", + "29 5.468039257826792700899090619 3.646616558254807724187351899 \n", + "30 6.270571355793247137773251590 3.429041311970567806939288123 \n", "\n", - " timestamp \n", - "0 2018-10-01 15:16:24 \n", - "1 2018-10-01 15:16:25 \n", - "2 2018-10-01 15:16:25 \n", - "3 2018-10-01 15:16:25 \n", - "4 2018-10-01 15:16:26 \n", - "5 2018-10-01 15:16:26 \n", - "6 2018-10-01 15:16:26 \n", - "7 2018-10-01 15:16:27 \n", - "8 2018-10-01 15:16:27 \n", - "9 2018-10-01 15:16:27 \n", - "10 2018-10-01 15:16:28 \n", - "11 2018-10-01 15:16:28 \n", - "12 2018-10-01 15:16:28 \n", - "13 2018-10-01 15:16:29 \n", - "14 2018-10-01 15:16:29 \n", - "15 2018-10-01 15:16:29 \n", - "16 2018-10-01 15:16:30 \n", - "17 2018-10-01 15:16:30 \n", - "18 2018-10-01 15:16:30 \n", - "19 2018-10-01 15:16:31 \n", - "20 2018-10-01 15:16:31 \n", - "21 2018-10-01 15:16:31 \n", - "22 2018-10-01 15:16:32 \n", - "23 2018-10-01 15:16:32 \n", - "24 2018-10-01 15:16:32 \n", - "25 2018-10-01 15:16:33 \n", - "26 2018-10-01 15:16:33 \n", - "27 2018-10-01 15:16:33 \n", - "28 2018-10-01 15:16:34 \n", - "29 2018-10-01 15:16:34 \n", - "30 2018-10-01 15:16:34 " + " time_step timestamp \n", + "0 2018-10-01 15:16:25 2018-10-01 15:16:24 \n", + "1 2018-10-01 15:16:26 2018-10-01 15:16:25 \n", + "2 2018-10-01 15:16:26 2018-10-01 15:16:25 \n", + "3 2018-10-01 15:16:26 2018-10-01 15:16:25 \n", + "4 2018-10-01 15:16:27 2018-10-01 15:16:26 \n", + "5 2018-10-01 15:16:27 2018-10-01 15:16:26 \n", + "6 2018-10-01 15:16:27 2018-10-01 15:16:26 \n", + "7 2018-10-01 15:16:28 2018-10-01 15:16:27 \n", + "8 2018-10-01 15:16:28 2018-10-01 15:16:27 \n", + "9 2018-10-01 15:16:28 2018-10-01 15:16:27 \n", + "10 2018-10-01 15:16:29 2018-10-01 15:16:28 \n", + "11 2018-10-01 15:16:29 2018-10-01 15:16:28 \n", + "12 2018-10-01 15:16:29 2018-10-01 15:16:28 \n", + "13 2018-10-01 15:16:30 2018-10-01 15:16:29 \n", + "14 2018-10-01 15:16:30 2018-10-01 15:16:29 \n", + "15 2018-10-01 15:16:30 2018-10-01 15:16:29 \n", + "16 2018-10-01 15:16:26 2018-10-01 15:16:30 \n", + "17 2018-10-01 15:16:26 2018-10-01 15:16:30 \n", + "18 2018-10-01 15:16:26 2018-10-01 15:16:30 \n", + "19 2018-10-01 15:16:27 2018-10-01 15:16:31 \n", + "20 2018-10-01 15:16:27 2018-10-01 15:16:31 \n", + "21 2018-10-01 15:16:27 2018-10-01 15:16:31 \n", + "22 2018-10-01 15:16:28 2018-10-01 15:16:32 \n", + "23 2018-10-01 15:16:28 2018-10-01 15:16:32 \n", + "24 2018-10-01 15:16:28 2018-10-01 15:16:32 \n", + "25 2018-10-01 15:16:29 2018-10-01 15:16:33 \n", + "26 2018-10-01 15:16:29 2018-10-01 15:16:33 \n", + "27 2018-10-01 15:16:29 2018-10-01 15:16:33 \n", + "28 2018-10-01 15:16:30 2018-10-01 15:16:34 \n", + "29 2018-10-01 15:16:30 2018-10-01 15:16:34 \n", + "30 2018-10-01 15:16:30 2018-10-01 15:16:34 " ] }, - "execution_count": 8, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -898,454 +852,19 @@ "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
mech_steps1s2s3s4time_steptimestamp
00001102018-10-01 15:16:24
1122101012018-10-01 15:16:25
2288101012018-10-01 15:16:25
332626101012018-10-01 15:16:25
41808010.3260034333869810119210797011.7746450314059347697082103022018-10-01 15:16:26
522422428.21916515274784955205371299110.9801773387214634804305097322018-10-01 15:16:26
637287288.25718333114068459995979706311.1455573279124922629545779522018-10-01 15:16:26
71218621867.69761418303725988415748507911.3160238377322023420946343232018-10-01 15:16:27
82656065606.58958955625320624245355845710.1117779289454360207806075732018-10-01 15:16:27
9319682196826.93507938421090996234107250610.5546198167452742497326965132018-10-01 15:16:27
10159048590487.44500160717102196461960229712.6011378649838055327415438142018-10-01 15:16:28
1121771461771466.95865667781136112301155569011.3096083396823127488043278442018-10-01 15:16:28
1235314405314407.54489308076341439053948261912.3267248984101325124126510442018-10-01 15:16:28
131159432215943227.25704297441675434129273706612.1362685525819409923474763752018-10-01 15:16:29
142478296847829687.30529433408675028875311565914.2839357716573656718733737352018-10-01 15:16:29
15314348906143489066.50263319367367710575799849814.9749759400775891229965018052018-10-01 15:16:29
16143046720430467207.53296700646015886683024862215.9876083719011149813759189962018-10-01 15:16:30
1721291401621291401625.52961250543163593871152160917.0158726368362632068794171462018-10-01 15:16:30
1833874204883874204885.47904274871256495704604649817.4397154045538409948107159962018-10-01 15:16:30
191116226146611622614665.85990175186463137404836714815.0055435787421793737865330072018-10-01 15:16:31
202348678440034867844004.66831033426642853326666637117.0938094196505573185825817172018-10-01 15:16:31
21310460353202104603532024.57986020161816165272325721714.7508139318520774978598645372018-10-01 15:16:31
22131381059608313810596084.54449513239095366886914084415.1027140580688841666002539582018-10-01 15:16:32
23294143178826941431788264.91928101177860913117888377016.0301371246650606644045462482018-10-01 15:16:32
2432824295364802824295364805.53331202367358005176345704114.6869522616793077505417237282018-10-01 15:16:32
2518472886094428472886094425.30982582865393698162295633314.9000059117257340823484719292018-10-01 15:16:33
262254186582832825418658283284.57467053107137237917651360616.6401512087351580090579643392018-10-01 15:16:33
273762559748498676255974849865.20013569135900153491197292216.6000410060559880661690522992018-10-01 15:16:33
28122876792454960228767924549605.83345274620393831999132966515.12486604838650902185343711102018-10-01 15:16:34
29268630377364882686303773648825.56394410950931399948902225610.71485175557766753591769425102018-10-01 15:16:34
3032058911320946482058911320946485.7591765064867251346787523629.673539064064506702922033631102018-10-01 15:16:34
\n", - "
" - ], - "text/plain": [ - " mech_step s1 s2 \\\n", - "0 0 0 0 \n", - "1 1 2 2 \n", - "2 2 8 8 \n", - "3 3 26 26 \n", - "4 1 80 80 \n", - "5 2 242 242 \n", - "6 3 728 728 \n", - "7 1 2186 2186 \n", - "8 2 6560 6560 \n", - "9 3 19682 19682 \n", - "10 1 59048 59048 \n", - "11 2 177146 177146 \n", - "12 3 531440 531440 \n", - "13 1 1594322 1594322 \n", - "14 2 4782968 4782968 \n", - "15 3 14348906 14348906 \n", - "16 1 43046720 43046720 \n", - "17 2 129140162 129140162 \n", - "18 3 387420488 387420488 \n", - "19 1 1162261466 1162261466 \n", - "20 2 3486784400 3486784400 \n", - "21 3 10460353202 10460353202 \n", - "22 1 31381059608 31381059608 \n", - "23 2 94143178826 94143178826 \n", - "24 3 282429536480 282429536480 \n", - "25 1 847288609442 847288609442 \n", - "26 2 2541865828328 2541865828328 \n", - "27 3 7625597484986 7625597484986 \n", - "28 1 22876792454960 22876792454960 \n", - "29 2 68630377364882 68630377364882 \n", - "30 3 205891132094648 205891132094648 \n", - "\n", - " s3 s4 time_step \\\n", - "0 1 1 0 \n", - "1 10 10 1 \n", - "2 10 10 1 \n", - "3 10 10 1 \n", - "4 10.32600343338698101192107970 11.77464503140593476970821030 2 \n", - "5 8.219165152747849552053712991 10.98017733872146348043050973 2 \n", - "6 8.257183331140684599959797063 11.14555732791249226295457795 2 \n", - "7 7.697614183037259884157485079 11.31602383773220234209463432 3 \n", - "8 6.589589556253206242453558457 10.11177792894543602078060757 3 \n", - "9 6.935079384210909962341072506 10.55461981674527424973269651 3 \n", - "10 7.445001607171021964619602297 12.60113786498380553274154381 4 \n", - "11 6.958656677811361123011555690 11.30960833968231274880432784 4 \n", - "12 7.544893080763414390539482619 12.32672489841013251241265104 4 \n", - "13 7.257042974416754341292737066 12.13626855258194099234747637 5 \n", - "14 7.305294334086750288753115659 14.28393577165736567187337373 5 \n", - "15 6.502633193673677105757998498 14.97497594007758912299650180 5 \n", - "16 7.532967006460158866830248622 15.98760837190111498137591899 6 \n", - "17 5.529612505431635938711521609 17.01587263683626320687941714 6 \n", - "18 5.479042748712564957046046498 17.43971540455384099481071599 6 \n", - "19 5.859901751864631374048367148 15.00554357874217937378653300 7 \n", - "20 4.668310334266428533266666371 17.09380941965055731858258171 7 \n", - "21 4.579860201618161652723257217 14.75081393185207749785986453 7 \n", - "22 4.544495132390953668869140844 15.10271405806888416660025395 8 \n", - "23 4.919281011778609131178883770 16.03013712466506066440454624 8 \n", - "24 5.533312023673580051763457041 14.68695226167930775054172372 8 \n", - "25 5.309825828653936981622956333 14.90000591172573408234847192 9 \n", - "26 4.574670531071372379176513606 16.64015120873515800905796433 9 \n", - "27 5.200135691359001534911972922 16.60004100605598806616905229 9 \n", - "28 5.833452746203938319991329665 15.12486604838650902185343711 10 \n", - "29 5.563944109509313999489022256 10.71485175557766753591769425 10 \n", - "30 5.759176506486725134678752362 9.673539064064506702922033631 10 \n", - "\n", - " timestamp \n", - "0 2018-10-01 15:16:24 \n", - "1 2018-10-01 15:16:25 \n", - "2 2018-10-01 15:16:25 \n", - "3 2018-10-01 15:16:25 \n", - "4 2018-10-01 15:16:26 \n", - "5 2018-10-01 15:16:26 \n", - "6 2018-10-01 15:16:26 \n", - "7 2018-10-01 15:16:27 \n", - "8 2018-10-01 15:16:27 \n", - "9 2018-10-01 15:16:27 \n", - "10 2018-10-01 15:16:28 \n", - "11 2018-10-01 15:16:28 \n", - "12 2018-10-01 15:16:28 \n", - "13 2018-10-01 15:16:29 \n", - "14 2018-10-01 15:16:29 \n", - "15 2018-10-01 15:16:29 \n", - "16 2018-10-01 15:16:30 \n", - "17 2018-10-01 15:16:30 \n", - "18 2018-10-01 15:16:30 \n", - "19 2018-10-01 15:16:31 \n", - "20 2018-10-01 15:16:31 \n", - "21 2018-10-01 15:16:31 \n", - "22 2018-10-01 15:16:32 \n", - "23 2018-10-01 15:16:32 \n", - "24 2018-10-01 15:16:32 \n", - "25 2018-10-01 15:16:33 \n", - "26 2018-10-01 15:16:33 \n", - "27 2018-10-01 15:16:33 \n", - "28 2018-10-01 15:16:34 \n", - "29 2018-10-01 15:16:34 \n", - "30 2018-10-01 15:16:34 " - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" + "ename": "TypeError", + "evalue": "strptime() argument 1 must be str, not int", + "output_type": "error", + "traceback": [ + "\u001b[0;31m--------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mconfigs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgenerate_config\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmechanisms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexogenous_states\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# type(pipeline(states_list, configs, env_processes, range(10)))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpipeline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mpipeline\u001b[0;34m(states_list, configs, env_processes, time_seq)\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[0msimulation_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mstates_list\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0mshift_time_partial\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpartial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshift_time\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt_delta\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mt_delta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdt_format\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'%Y-%m-%d %H:%M:%S'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 65\u001b[0;31m \u001b[0mtime_seq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mshift_time_partial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime_seq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 66\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtime_step\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0mpipeline_run\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mblock_gen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msimulation_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mshift_time\u001b[0;34m(time_seq, t_delta, dt_format)\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mshift_time\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime_seq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt_delta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdt_format\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'%Y-%m-%d %H:%M:%S'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m time_seq = [\n\u001b[0;32m---> 56\u001b[0;31m \u001b[0mtime_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdt_format\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mt_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtime\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 57\u001b[0m ]\n\u001b[1;32m 58\u001b[0m \u001b[0mtime_seq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mshift_time\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime_seq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt_delta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdt_format\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'%Y-%m-%d %H:%M:%S'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m time_seq = [\n\u001b[0;32m---> 56\u001b[0;31m \u001b[0mtime_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdt_format\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mt_delta\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtime\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 57\u001b[0m ]\n\u001b[1;32m 58\u001b[0m \u001b[0mtime_seq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mtime_step\u001b[0;34m(dt_str, dt_format, t_delta)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdt_str\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdt_format\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'%Y-%m-%d %H:%M:%S'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt_delta\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimedelta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseconds\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0mdt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdatetime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrptime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdt_str\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdt_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdt\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mt_delta\u001b[0m \u001b[0;31m#(days=days, minutes=minutes, seconds=seconds)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrftime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdt_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: strptime() argument 1 must be str, not int" + ] } ], "source": [ @@ -1357,41 +876,18 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[0, 1]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(range(2))" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'non_numeric' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m--------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mstate_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m's1'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'3323'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m's2'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'2572'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m's3'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'2.657'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m's4'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'7.914'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'timestamp'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'2018-10-01 15:16:26'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'mech_step'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'time_step'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mstate_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquantize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mTWOPLACES\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mROUND_DOWN\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mstate_dict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnon_numeric\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'non_numeric' is not defined" - ] - } - ], + "outputs": [], "source": [ "# Decimal('240.0').quantize(Decimal('0.01'), ROUND_DOWN)\n", "# round(Decimal('240.01'), 2)\n",