Support new data

This commit is contained in:
wjsjwr 2023-03-15 21:16:16 +08:00
parent f2055389a8
commit e1dc0fb189
25 changed files with 431 additions and 492 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.2 (C:\Users\wjs\Anaconda3\python.exe)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="C:\Users\wjs\anaconda3" project-jdk-type="Python SDK" />
</project> </project>

View File

@ -1,12 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4"> <module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.idea/inspectionProfiles" />
<excludeFolder url="file://$MODULE_DIR$/graph" />
<excludeFolder url="file://$MODULE_DIR$/new-cr" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-2022-pd" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-2022-sd" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-casual" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-compete" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-latest" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-new" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-no-tr" />
<excludeFolder url="file://$MODULE_DIR$/wos-data-sanitized" />
</content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="TestRunnerService"> <component name="PyDocumentationSettings">
<option name="projectConfiguration" value="py.test" /> <option name="format" value="PLAIN" />
<option name="PROJECT_TEST_RUNNER" value="py.test" /> <option name="myDocStringFormat" value="Plain" />
</component> </component>
</module> </module>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="" vcs="Git" />
</component> </component>
</project> </project>

View File

@ -1,149 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="AnalysisUIOptions">
<option name="ANALYZE_INJECTED_CODE" value="false" />
<option name="SCOPE_TYPE" value="3" />
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="3b8f67a0-ea53-4209-a86f-9effd70f9663" name="Default" comment=""> <list default="true" id="9f251ebf-45a1-4c0b-8e8b-b8f0712eb973" name="Changes" comment="sync">
<change afterPath="$PROJECT_DIR$/plot_cluster_size.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/s_r.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/sb_variant.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/sb_vs_human.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/swdata.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/swdata.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cluster_stat.py" beforeDir="false" afterPath="$PROJECT_DIR$/cluster_stat.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/calc_reward3.py" beforeDir="false" afterPath="$PROJECT_DIR$/calc_reward3.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/calc_survivals.py" beforeDir="false" afterPath="$PROJECT_DIR$/calc_survivals.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gen_neighborhood_new.py" beforeDir="false" afterPath="$PROJECT_DIR$/gen_neighborhood_new.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CRAW_NEW_BA.json" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CRAW_NEW_BA.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CRAW_NEW_WS.json" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CRAW_NEW_WS.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_G1142.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_G1142.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_G1156.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_G1156.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_G1162.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_G1162.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_G646.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_G646.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_G903.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_G903.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_G975.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_G975.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_NEW_BA.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_NEW_BA.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/CR_NEW_WS.csv" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/CR_NEW_WS.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/THETA_new_detail.json" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/THETA_new_detail.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/neighborhood_new.json" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/neighborhood_new.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/outputs/survivals_new.json" beforeDir="false" afterPath="$PROJECT_DIR$/outputs/survivals_new.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/theta_r.py" beforeDir="false" afterPath="$PROJECT_DIR$/theta_r.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/winners.json" beforeDir="false" afterPath="$PROJECT_DIR$/winners.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/wos-award/part2/history.py" beforeDir="false" afterPath="$PROJECT_DIR$/wos-award/part2/history.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/wos-award/q.sh" beforeDir="false" afterPath="$PROJECT_DIR$/wos-award/q.sh" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="true" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FUSProjectUsageTrigger"> <component name="ChangesViewManager" show_ignored="true">
<session id="445450180"> <option name="groupingKeys">
<usages-collector id="statistics.lifecycle.project"> <option value="directory" />
<counts> </option>
<entry key="project.closed" value="1" />
<entry key="project.open.time.4" value="1" />
<entry key="project.opened" value="1" />
</counts>
</usages-collector>
</session>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/br_plot.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38">
<caret line="7" column="14" selection-start-line="7" selection-start-column="7" selection-end-line="7" selection-end-column="14" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/draw_network.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="855">
<caret line="48" column="109" selection-start-line="48" selection-start-column="109" selection-end-line="48" selection-end-column="109" />
<folding>
<element signature="e#0#21#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cluster_stat.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="912">
<caret line="52" column="14" selection-start-line="52" selection-start-column="14" selection-end-line="52" selection-end-column="14" />
<folding>
<element signature="e#20#30#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/sb_variant.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="551">
<caret line="30" column="10" selection-start-line="30" selection-start-column="10" selection-end-line="30" selection-end-column="10" />
<folding>
<element signature="e#30#48#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/calc_reward.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/calc_winner_pid.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="30" column="33" selection-start-line="12" selection-start-column="8" selection-end-line="30" selection-end-column="33" />
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/sb_vs_human.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437">
<caret line="32" column="42" lean-forward="true" selection-start-line="32" selection-start-column="42" selection-end-line="32" selection-end-column="42" />
<folding>
<element signature="e#65#76#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/wos-data-compete/G354.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="83676">
<caret line="4404" column="16" selection-start-line="4404" selection-start-column="12" selection-end-line="4404" selection-end-column="16" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/plot_cluster_size.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="15" column="10" selection-start-line="15" selection-start-column="10" selection-end-line="15" selection-end-column="10" />
<folding>
<element signature="e#23#59#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/eid_plot.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="19">
<caret line="6" column="16" selection-start-line="6" selection-start-column="7" selection-end-line="6" selection-end-column="16" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component> </component>
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES"> <option name="RECENT_TEMPLATES">
@ -152,73 +52,67 @@
</list> </list>
</option> </option>
</component> </component>
<component name="FindInProjectRecents"> <component name="FlaskConsoleOptions" custom-start-script="import sys&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;from flask.cli import ScriptInfo&#10;locals().update(ScriptInfo(create_app=None).load_app().make_shell_context())&#10;print(&quot;Python %s on %s\nApp: %s [%s]\nInstance: %s&quot; % (sys.version, sys.platform, app.import_name, app.env, app.instance_path))">
<findStrings> <envs>
<find>4627</find> <env key="FLASK_APP" value="app" />
<find>4614</find> </envs>
</findStrings> <option name="myCustomStartScript" value="import sys&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;from flask.cli import ScriptInfo&#10;locals().update(ScriptInfo(create_app=None).load_app().make_shell_context())&#10;print(&quot;Python %s on %s\nApp: %s [%s]\nInstance: %s&quot; % (sys.version, sys.platform, app.import_name, app.env, app.instance_path))" />
<option name="myEnvs">
<map>
<entry key="FLASK_APP" value="app" />
</map>
</option>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="PUSH_AUTO_UPDATE" value="true" />
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="UPDATE_TYPE" value="REBASE" />
</component> </component>
<component name="IdeDocumentHistory"> <component name="MarkdownSettingsMigration">
<option name="CHANGED_PATHS"> <option name="stateVersion" value="1" />
<list>
<option value="$PROJECT_DIR$/draw_network.py" />
<option value="$PROJECT_DIR$/cluster_stat.py" />
<option value="$PROJECT_DIR$/plot_cluster_size.py" />
<option value="$PROJECT_DIR$/sb_variant.py" />
<option value="$PROJECT_DIR$/sb_vs_human.py" />
</list>
</option>
</component> </component>
<component name="ProjectFrameBounds" extendedState="6"> <component name="ProjectId" id="2LE0Qy9qz1h8d0jphuRbDZcVCRo" />
<option name="x" value="-8" /> <component name="ProjectViewState">
<option name="y" value="-8" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="width" value="2560" /> <option name="showLibraryContents" value="true" />
<option name="height" value="1440" />
</component> </component>
<component name="ProjectView"> <component name="PropertiesComponent"><![CDATA[{
<navigator proportions="" version="1"> "keyToString": {
<foldersAlwaysOnTop value="true" /> "ASKED_ADD_EXTERNAL_FILES": "true",
</navigator> "Notification.DisplayName-DoNotAsk-File Watcher Messages": "检测到文件系统同步问题",
<panes> "Notification.DoNotAsk-File Watcher Messages": "true",
<pane id="ProjectPane"> "RunOnceActivity.OpenProjectViewOnStart": "true",
<subPane> "RunOnceActivity.ShowReadmeOnStart": "true",
<expand> "WebServerToolWindowFactoryState": "false",
<path> "ignore.virus.scanning.warn.message": "true",
<item name="swdata" type="b2602c69:ProjectViewProjectNode" /> "last_opened_file_path": "D:/code/swdata/wos-data-2022-12-16",
<item name="swdata" type="462c0819:PsiDirectoryNode" /> "node.js.detected.package.eslint": "true",
</path> "node.js.detected.package.tslint": "true",
<path> "node.js.selected.package.eslint": "(autodetect)",
<item name="swdata" type="b2602c69:ProjectViewProjectNode" /> "node.js.selected.package.tslint": "(autodetect)",
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" /> "run.code.analysis.last.selected.profile": "aDefault",
</path> "settings.editor.selected.configurable": "ssh.settings",
</expand> "vue.rearranger.settings.migration": "true"
<select /> },
</subPane> "keyToStringList": {
</pane> "GitStage.ChangesTree.GroupingKeys": [
<pane id="Scope" /> "directory",
</panes> "module",
"repository"
]
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\code\swdata\wos-data-2022-12-16" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="\\10.80.15.2\smb\python\swdata\wos-data-2022-pd" />
<recent name="\\10.80.15.2\smb\python\swdata\wos-data-2022-sd" />
</key>
</component> </component>
<component name="PropertiesComponent"> <component name="RunManager" selected="Python.history">
<property name="last_opened_file_path" value="$PROJECT_DIR$" /> <configuration default="true" type="PythonConfigurationType" factoryName="Python">
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Python.sb_vs_human">
<configuration name="cluster_stat" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="swdata" /> <module name="swdata" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@ -226,20 +120,21 @@
<env name="PYTHONUNBUFFERED" value="1" /> <env name="PYTHONUNBUFFERED" value="1" />
</envs> </envs>
<option name="SDK_HOME" value="" /> <option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="true" /> <option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" /> <option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" /> <option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/cluster_stat.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" /> <option name="SHOW_COMMAND_LINE" value="true" />
<option name="EMULATE_TERMINAL" value="false" /> <option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" /> <option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" /> <option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" /> <option name="INPUT_FILE" value="" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="draw_network" type="PythonConfigurationType" factoryName="Python" temporary="true"> <configuration name="calc_reward3" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="swdata" /> <module name="swdata" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@ -251,16 +146,17 @@
<option name="IS_MODULE_SDK" value="true" /> <option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" /> <option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" /> <option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/draw_network.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/calc_reward3.py" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" /> <option name="SHOW_COMMAND_LINE" value="true" />
<option name="EMULATE_TERMINAL" value="false" /> <option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" /> <option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" /> <option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" /> <option name="INPUT_FILE" value="" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="plot_cluster_size" type="PythonConfigurationType" factoryName="Python" temporary="true"> <configuration name="gen_neighborhood_new" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="swdata" /> <module name="swdata" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@ -272,16 +168,17 @@
<option name="IS_MODULE_SDK" value="true" /> <option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" /> <option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" /> <option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/plot_cluster_size.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/gen_neighborhood_new.py" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" /> <option name="SHOW_COMMAND_LINE" value="true" />
<option name="EMULATE_TERMINAL" value="false" /> <option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" /> <option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" /> <option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" /> <option name="INPUT_FILE" value="" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="sb_variant" type="PythonConfigurationType" factoryName="Python" temporary="true"> <configuration name="history" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="swdata" /> <module name="swdata" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@ -289,20 +186,21 @@
<env name="PYTHONUNBUFFERED" value="1" /> <env name="PYTHONUNBUFFERED" value="1" />
</envs> </envs>
<option name="SDK_HOME" value="" /> <option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/wos-data-2022-12-16" />
<option name="IS_MODULE_SDK" value="true" /> <option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" /> <option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" /> <option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/sb_variant.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/wos-data-2022-12-16/history.py" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" /> <option name="SHOW_COMMAND_LINE" value="true" />
<option name="EMULATE_TERMINAL" value="false" /> <option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" /> <option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" /> <option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" /> <option name="INPUT_FILE" value="" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="sb_vs_human" type="PythonConfigurationType" factoryName="Python" temporary="true"> <configuration name="s_r" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="swdata" /> <module name="swdata" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@ -314,9 +212,32 @@
<option name="IS_MODULE_SDK" value="true" /> <option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" /> <option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" /> <option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/sb_vs_human.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/s_r.py" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" /> <option name="SHOW_COMMAND_LINE" value="true" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="t" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="swdata" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/t.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<option name="EMULATE_TERMINAL" value="false" /> <option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" /> <option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" /> <option name="REDIRECT_INPUT" value="false" />
@ -324,186 +245,105 @@
<method v="2" /> <method v="2" />
</configuration> </configuration>
<list> <list>
<item itemvalue="Python.draw_network" /> <item itemvalue="Python.calc_reward3" />
<item itemvalue="Python.cluster_stat" /> <item itemvalue="Python.history" />
<item itemvalue="Python.plot_cluster_size" /> <item itemvalue="Python.t" />
<item itemvalue="Python.sb_variant" /> <item itemvalue="Python.gen_neighborhood_new" />
<item itemvalue="Python.sb_vs_human" /> <item itemvalue="Python.s_r" />
</list> </list>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Python.sb_vs_human" /> <item itemvalue="Python.history" />
<item itemvalue="Python.sb_variant" /> <item itemvalue="Python.t" />
<item itemvalue="Python.plot_cluster_size" /> <item itemvalue="Python.calc_reward3" />
<item itemvalue="Python.cluster_stat" /> <item itemvalue="Python.s_r" />
<item itemvalue="Python.draw_network" /> <item itemvalue="Python.gen_neighborhood_new" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration"> <component name="SvnConfiguration">
<configuration /> <configuration>C:\Users\wjs\AppData\Roaming\Subversion</configuration>
</component> </component>
<component name="TaskManager"> <component name="TaskManager">
<task active="true" id="Default" summary="Default task"> <task active="true" id="Default" summary="Default task">
<changelist id="3b8f67a0-ea53-4209-a86f-9effd70f9663" name="Default" comment="" /> <created>1675420922555</created>
<created>1542406343161</created>
<option name="number" value="Default" /> <option name="number" value="Default" />
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1542406343161</updated> <updated>1675420922555</updated>
<workItem from="1675420924138" duration="2000" />
<workItem from="1675420987807" duration="2000" />
<workItem from="1675421088572" duration="2433000" />
<workItem from="1676030062387" duration="489000" />
<workItem from="1676032233971" duration="183000" />
<workItem from="1676033037926" duration="2000" />
<workItem from="1676046566305" duration="4131000" />
<workItem from="1676906141902" duration="107000" />
<workItem from="1676906257776" duration="155000" />
<workItem from="1676906477224" duration="543000" />
<workItem from="1676907026987" duration="2000" />
<workItem from="1676907060187" duration="1498000" />
<workItem from="1677593734700" duration="2920000" />
<workItem from="1677596708403" duration="5000" />
<workItem from="1677596806445" duration="504000" />
<workItem from="1677597386015" duration="1323000" />
<workItem from="1677598722786" duration="226000" />
<workItem from="1677598983357" duration="1121000" />
<workItem from="1677680449892" duration="2390000" />
<workItem from="1677683534841" duration="928000" />
<workItem from="1678607947994" duration="6650000" />
<workItem from="1678885054861" duration="860000" />
</task> </task>
<task id="LOCAL-00001" summary="sync">
<created>1677599568974</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1677599568974</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers /> <servers />
</component> </component>
<component name="TodoView"> <component name="TypeScriptGeneratedFilesManager">
<todo-panel id="selected-file"> <option name="version" value="3" />
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="Vcs.Log.History.Properties">
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" /> <option name="COLUMN_ID_ORDER">
<layout> <list>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.13950716" /> <option value="Default.Root" />
<window_info id="Structure" order="1" weight="0.25" /> <option value="Default.Subject" />
<window_info id="Favorites" order="2" side_tool="true" /> <option value="Default.Author" />
<window_info anchor="bottom" id="Event Log" order="0" side_tool="true" /> <option value="Default.Date" />
<window_info anchor="bottom" id="Message" order="1" /> <option value="Space.CommitStatus" />
<window_info anchor="bottom" id="Find" order="2" /> </list>
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> </option>
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Python Console" order="3" weight="0.39228934" />
<window_info anchor="right" id="Terminal" order="4" weight="0.3298887" />
<window_info anchor="right" id="Version Control" order="5" weight="0.3298887" />
<window_info anchor="right" id="TODO" order="6" weight="0.3298887" />
<window_info anchor="right" id="Run" order="7" visible="true" weight="0.32869634" />
</layout>
</component> </component>
<component name="VcsContentAnnotationSettings"> <component name="Vcs.Log.Tabs.Properties">
<option name="myLimit" value="2678400000" /> <option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="FILTERS">
<map>
<entry key="branch">
<value>
<list>
<option value="master" />
</list>
</value>
</entry>
</map>
</option>
</State>
</value>
</entry>
</map>
</option>
</component> </component>
<component name="editorHistoryManager"> <component name="VcsManagerConfiguration">
<entry file="file://$PROJECT_DIR$/wos-data-compete/G302.json"> <MESSAGE value="Changes" />
<provider selected="true" editor-type-id="text-editor"> <MESSAGE value="sync" />
<state relative-caret-position="-17524" /> <option name="LAST_COMMIT_MESSAGE" value="sync" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/wos-data-compete/G421.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-99675" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/wos-data-compete/G448.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/wos-data-compete/G481.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/wos-data-compete/G254.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-51724" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/br_plot.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38">
<caret line="7" column="14" selection-start-line="7" selection-start-column="7" selection-end-line="7" selection-end-column="14" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/draw_network.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="855">
<caret line="48" column="109" selection-start-line="48" selection-start-column="109" selection-end-line="48" selection-end-column="109" />
<folding>
<element signature="e#0#21#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cluster_stat.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="912">
<caret line="52" column="14" selection-start-line="52" selection-start-column="14" selection-end-line="52" selection-end-column="14" />
<folding>
<element signature="e#20#30#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/sb_variant.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="551">
<caret line="30" column="10" selection-start-line="30" selection-start-column="10" selection-end-line="30" selection-end-column="10" />
<folding>
<element signature="e#30#48#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/calc_reward.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/calc_winner_pid.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="30" column="33" selection-start-line="12" selection-start-column="8" selection-end-line="30" selection-end-column="33" />
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/wos-data-compete/G354.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="83676">
<caret line="4404" column="16" selection-start-line="4404" selection-start-column="12" selection-end-line="4404" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/plot_cluster_size.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="15" column="10" selection-start-line="15" selection-start-column="10" selection-end-line="15" selection-end-column="10" />
<folding>
<element signature="e#23#59#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/eid_plot.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="19">
<caret line="6" column="16" selection-start-line="6" selection-start-column="7" selection-end-line="6" selection-end-column="16" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/sb_vs_human.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437">
<caret line="32" column="42" lean-forward="true" selection-start-line="32" selection-start-column="42" selection-end-line="32" selection-end-column="42" />
<folding>
<element signature="e#65#76#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component> </component>
</project> </project>

View File

@ -7,10 +7,10 @@ from island.matches import Matches
user_data = {} # user_id => {m => match_count, s => total_score, w => total_win} user_data = {} # user_id => {m => match_count, s => total_score, w => total_win}
winners = {} # match_id => [user_id] winners = {} # match_id => [user_id]
ms = Matches('wos-data-no-tr') ms = Matches('wos-data-2022-12-16')
for m in ms.data: for m in ms.data:
print(m.name) print(m.name)
if m.name in ['G1196', 'G1214']: if 'G' in m.name:
game_end_at = int(m.query('game', 'created').first()['info']['game_end_at']) game_end_at = int(m.query('game', 'created').first()['info']['game_end_at'])
for r in m.query('user', 'fitness').raw_data: for r in m.query('user', 'fitness').raw_data:
if r['user'] not in user_data: if r['user'] not in user_data:

View File

@ -7,7 +7,7 @@ result = {}
# = game_end_at + 1 # = game_end_at + 1
MAX_ROUND = 29 MAX_ROUND = 29
for f in Path('wos-data-2022-1').iterdir(): for f in Path('wos-data-2022-pd').iterdir():
p = Path(f) p = Path(f)
if p.suffix == '.json': if p.suffix == '.json':
name = p.stem name = p.stem
@ -22,11 +22,11 @@ for f in Path('wos-data-2022-1').iterdir():
foods[p['pid']] = conf['start_resource'] foods[p['pid']] = conf['start_resource']
survivals[0].append(p['pid']) survivals[0].append(p['pid'])
for i in range(1, game_end_at+1): for i in range(1, game_end_at + 1):
survivals[i] = [] survivals[i] = []
for a in m.query('action', 'done').where(lambda x: x['rno'] == i).raw_data: for a in m.query('action', 'done').where(lambda x: x['rno'] == i).raw_data:
foods[a['a']] += conf['payoffs']["%s%s"%(a['act_a'], a['act_b'])][0] * a['tr'] / 1440.0 foods[a['a']] += conf['payoffs']["%s%s" % (a['act_a'], a['act_b'])][0] * a['tr'] / 1440.0
foods[a['b']] += conf['payoffs']["%s%s"%(a['act_a'], a['act_b'])][1] * a['tr'] / 1440.0 foods[a['b']] += conf['payoffs']["%s%s" % (a['act_a'], a['act_b'])][1] * a['tr'] / 1440.0
for j in foods.keys(): for j in foods.keys():
foods[j] -= conf['rounds']['consumption'] foods[j] -= conf['rounds']['consumption']
if foods[j] > 0: if foods[j] > 0:
@ -39,7 +39,7 @@ for f in Path('wos-data-2022-1').iterdir():
with open("outputs/survivals_new.json", 'w') as f: with open("outputs/survivals_new.json", 'w') as f:
json.dump(result, f) json.dump(result, f)
average = [0]*MAX_ROUND average = [0] * MAX_ROUND
for k, v in result.items(): for k, v in result.items():
for r, l in v.items(): for r, l in v.items():
average[int(r)] += len(l) average[int(r)] += len(l)
@ -47,11 +47,11 @@ for k, v in result.items():
for i in range(MAX_ROUND): for i in range(MAX_ROUND):
average[i] /= len(result) average[i] /= len(result)
idx=[] idx = []
s=[] s = []
for i in range(1,MAX_ROUND): for i in range(1, MAX_ROUND):
idx.append(str(i)) idx.append(str(i))
s.append("%.1f"%average[i]) s.append("%.1f" % average[i])
print(" & ".join(idx)) print(" & ".join(idx))
print(" & ".join(s)) print(" & ".join(s))

View File

@ -3,7 +3,7 @@ from island.matches import Matches
# matches = Matches.from_profile_expr(lambda r:True) # matches = Matches.from_profile_expr(lambda r:True)
matches = Matches('wos-data-2022-1') matches = Matches('wos-data-2022-pd')
neighbors = {} neighbors = {}

View File

@ -1 +1 @@
[[0.9329268292682927, 0.926829268292683, 0.845679012345679, 0.8506493506493507, 0.8287671232876712, 0.8375, 0.7608695652173914, 0.8333333333333334, 0.7954545454545454, 0.7214285714285714, 0.7578125, 0.7622950819672131, 0.6384615384615384, 0.5819672131147541], [0.7837837837837838, 0.6785714285714286, 0.76, 0.7727272727272727, 0.7843137254901961, 0.7363636363636363, 0.7653061224489796, 0.7608695652173914, 0.7325581395348837, 0.6794871794871795, 0.7307692307692307], [0.8166666666666667, 0.73, 0.7941176470588235, 0.8292682926829268, 0.75, 0.7159090909090909, 0.7674418604651163, 0.7631578947368421, 0.7, 0.7051282051282052, 0.6219512195121951, 0.6309523809523809, 0.6351351351351351, 0.5697674418604651, 0.48484848484848486, 0.625, 0.6447368421052632, 0.6621621621621622, 0.6125, 0.578125, 0.5714285714285714, 0.5285714285714286, 0.5925925925925926, 0.5833333333333334, 0.5833333333333334, 0.5645161290322581, 0.6212121212121212, 0.65625]] [[0.9516666666666667, 0.8694444444444446, 0.8660714285714286, 0.8505747126436781, 0.8630952380952381, 0.8392857142857143, 0.8448275862068966, 0.8846153846153846, 0.9022988505747127, 0.896551724137931, 0.8392857142857143, 0.7976190476190477, 0.7820512820512822, 0.8154761904761906, 0.8392857142857143, 0.6481481481481481, 0.7133333333333333, 0.82], [1.0, 0.8823529411764706, 0.7719298245614036, 0.875, 0.8235294117647058, 0.875, 0.8235294117647058, 0.8529411764705882, 0.875, 0.8055555555555556, 0.7352941176470589, 0.75, 0.8627450980392157, 0.6842105263157895, 0.7941176470588235, 0.7982456140350878, 0.8425925925925926, 0.7745098039215687, 0.8125, 0.78125, 0.6388888888888888, 0.8125, 0.712962962962963, 0.7352941176470589, 0.7058823529411765, 0.8]]

View File

@ -1 +1 @@
[[0.9274809160305344, 0.8943089430894309, 0.8925619834710744, 0.8878504672897196, 0.8773584905660378, 0.8387096774193549, 0.8333333333333334, 0.8411764705882353, 0.7658227848101266, 0.8035714285714286, 0.788235294117647, 0.7352941176470589, 0.689873417721519, 0.6818181818181818], [0.91015625, 0.9217391304347826, 0.9107142857142857, 0.9030612244897959, 0.8939393939393939, 0.907608695652174, 0.8764705882352941, 0.8166666666666667, 0.788235294117647, 0.7528089887640449, 0.65, 0.5602409638554217, 0.49375, 0.30246913580246915, 0.29411764705882354, 0.23026315789473684]] [[0.7857142857142857, 0.6666666666666666, 0.8571428571428571, 0.8333333333333334, 0.7857142857142857, 0.8823529411764706, 0.8235294117647058, 0.8823529411764706, 0.875, 0.8571428571428571], [0.7727272727272727, 0.6923076923076923, 0.8181818181818182, 0.8181818181818182, 0.8333333333333334, 0.9166666666666666, 0.8333333333333334, 0.8333333333333334, 0.8333333333333334, 0.8]]

View File

@ -1 +1 @@
0.9274809160305344,0.8943089430894309,0.8925619834710744,0.8878504672897196,0.8773584905660378,0.8387096774193549,0.8333333333333334,0.8411764705882353,0.7658227848101266,0.8035714285714286,0.788235294117647,0.7352941176470589,0.689873417721519,0.6818181818181818 0.91869918699187,0.8779116465863454,0.8761044176706827,0.8419678714859437,0.8704819277108434,0.8082304526748971,0.8174897119341565,0.8685897435897437,0.7583333333333333,0.8206751054852318,0.7885416666666666,0.7133333333333334,0.6875000000000001,0.663377192982456

1 0.9274809160305344 0.91869918699187 0.8943089430894309 0.8779116465863454 0.8925619834710744 0.8761044176706827 0.8878504672897196 0.8419678714859437 0.8773584905660378 0.8704819277108434 0.8387096774193549 0.8082304526748971 0.8333333333333334 0.8174897119341565 0.8411764705882353 0.8685897435897437 0.7658227848101266 0.7583333333333333 0.8035714285714286 0.8206751054852318 0.788235294117647 0.7885416666666666 0.7352941176470589 0.7133333333333334 0.689873417721519 0.6875000000000001 0.6818181818181818 0.663377192982456

View File

@ -1 +1 @@
0.9329268292682927,0.926829268292683,0.845679012345679,0.8506493506493507,0.8287671232876712,0.8375,0.7608695652173914,0.8333333333333334,0.7954545454545454,0.7214285714285714,0.7578125,0.7622950819672131,0.6384615384615384,0.5819672131147541 0.9166666666666666,0.910958904109589,0.8527397260273972,0.8622685185185186,0.8020833333333334,0.8486842105263158,0.7441314553990611,0.8355555555555555,0.7700000000000001,0.708904109589041,0.7226190476190476,0.7345238095238095,0.6446759259259259,0.5657276995305165

1 0.9329268292682927 0.9166666666666666 0.926829268292683 0.910958904109589 0.845679012345679 0.8527397260273972 0.8506493506493507 0.8622685185185186 0.8287671232876712 0.8020833333333334 0.8375 0.8486842105263158 0.7608695652173914 0.7441314553990611 0.8333333333333334 0.8355555555555555 0.7954545454545454 0.7700000000000001 0.7214285714285714 0.708904109589041 0.7578125 0.7226190476190476 0.7622950819672131 0.7345238095238095 0.6384615384615384 0.6446759259259259 0.5819672131147541 0.5657276995305165

View File

@ -1 +1 @@
0.91015625,0.9217391304347826,0.9107142857142857,0.9030612244897959,0.8939393939393939,0.907608695652174,0.8764705882352941,0.8166666666666667,0.788235294117647,0.7528089887640449,0.65,0.5602409638554217,0.49375,0.30246913580246915,0.29411764705882354,0.23026315789473684 0.9016064257028114,0.8841463414634146,0.9084362139917694,0.8794871794871794,0.8910256410256411,0.8925438596491228,0.841111111111111,0.8066239316239315,0.775219298245614,0.7299086757990867,0.6166666666666667,0.5382882882882883,0.48912037037037037,0.2815315315315316,0.31280193236714976,0.2423423423423423

1 0.91015625 0.9016064257028114 0.9217391304347826 0.8841463414634146 0.9107142857142857 0.9084362139917694 0.9030612244897959 0.8794871794871794 0.8939393939393939 0.8910256410256411 0.907608695652174 0.8925438596491228 0.8764705882352941 0.841111111111111 0.8166666666666667 0.8066239316239315 0.788235294117647 0.775219298245614 0.7528089887640449 0.7299086757990867 0.65 0.6166666666666667 0.5602409638554217 0.5382882882882883 0.49375 0.48912037037037037 0.30246913580246915 0.2815315315315316 0.29411764705882354 0.31280193236714976 0.23026315789473684 0.2423423423423423

View File

@ -1 +1 @@
0.7837837837837838,0.6785714285714286,0.76,0.7727272727272727,0.7843137254901961,0.7363636363636363,0.7653061224489796,0.7608695652173914,0.7325581395348837,0.6794871794871795,0.7307692307692307 0.8706140350877194,0.7125541125541126,0.7596899224806203,0.774621212121212,0.7370370370370372,0.7,0.7642276422764227,0.7531746031746033,0.7137037037037038,0.696969696969697,0.7134146341463414

1 0.7837837837837838 0.8706140350877194 0.6785714285714286 0.7125541125541126 0.76 0.7596899224806203 0.7727272727272727 0.774621212121212 0.7843137254901961 0.7370370370370372 0.7363636363636363 0.7 0.7653061224489796 0.7642276422764227 0.7608695652173914 0.7531746031746033 0.7325581395348837 0.7137037037037038 0.6794871794871795 0.696969696969697 0.7307692307692307 0.7134146341463414

View File

@ -1 +1 @@
0.8166666666666667,0.73,0.7941176470588235,0.8292682926829268,0.75,0.7159090909090909,0.7674418604651163,0.7631578947368421,0.7,0.7051282051282052,0.6219512195121951,0.6309523809523809,0.6351351351351351,0.5697674418604651,0.48484848484848486,0.625,0.6447368421052632,0.6621621621621622,0.6125,0.578125,0.5714285714285714,0.5285714285714286,0.5925925925925926,0.5833333333333334,0.5833333333333334,0.5645161290322581,0.6212121212121212,0.65625 0.7779069767441861,0.694047619047619,0.7780487804878048,0.8154761904761905,0.7621951219512195,0.7281746031746031,0.8101626016260163,0.7812499999999999,0.7149122807017544,0.7094017094017093,0.6517094017094016,0.643162393162393,0.6885964912280701,0.6020833333333333,0.5131578947368421,0.6791666666666667,0.6604166666666667,0.6738738738738739,0.6184210526315789,0.5416666666666666,0.5307017543859649,0.5337837837837838,0.6388888888888888,0.6166666666666667,0.6053921568627452,0.5694444444444444,0.6476190476190476,0.6351351351351351

1 0.8166666666666667 0.7779069767441861 0.73 0.694047619047619 0.7941176470588235 0.7780487804878048 0.8292682926829268 0.8154761904761905 0.75 0.7621951219512195 0.7159090909090909 0.7281746031746031 0.7674418604651163 0.8101626016260163 0.7631578947368421 0.7812499999999999 0.7 0.7149122807017544 0.7051282051282052 0.7094017094017093 0.6219512195121951 0.6517094017094016 0.6309523809523809 0.643162393162393 0.6351351351351351 0.6885964912280701 0.5697674418604651 0.6020833333333333 0.48484848484848486 0.5131578947368421 0.625 0.6791666666666667 0.6447368421052632 0.6604166666666667 0.6621621621621622 0.6738738738738739 0.6125 0.6184210526315789 0.578125 0.5416666666666666 0.5714285714285714 0.5307017543859649 0.5285714285714286 0.5337837837837838 0.5925925925925926 0.6388888888888888 0.5833333333333334 0.6166666666666667 0.5833333333333334 0.6053921568627452 0.5645161290322581 0.5694444444444444 0.6212121212121212 0.6476190476190476 0.65625 0.6351351351351351

View File

@ -1 +1 @@
0.9038461538461539,0.831081081081081,0.8066666666666666,0.7246376811594203,0.7578125,0.7236842105263158,0.7364864864864865,0.7121212121212122,0.7071428571428572,0.717948717948718,0.6890243902439024,0.75,0.753968253968254 0.8700980392156863,0.8148148148148147,0.7988262910798122,0.7568493150684931,0.7675799086757991,0.7393162393162392,0.7222222222222222,0.7208333333333333,0.7025974025974026,0.7303921568627452,0.6941056910569106,0.7180365296803652,0.7534246575342466

1 0.9038461538461539 0.8700980392156863 0.831081081081081 0.8148148148148147 0.8066666666666666 0.7988262910798122 0.7246376811594203 0.7568493150684931 0.7578125 0.7675799086757991 0.7236842105263158 0.7393162393162392 0.7364864864864865 0.7222222222222222 0.7121212121212122 0.7208333333333333 0.7071428571428572 0.7025974025974026 0.717948717948718 0.7303921568627452 0.6890243902439024 0.6941056910569106 0.75 0.7180365296803652 0.753968253968254 0.7534246575342466

View File

@ -1 +1 @@
0.8631284916201117,0.800531914893617,0.8076923076923077,0.8208092485549133,0.7946428571428571,0.776536312849162,0.7639751552795031,0.7948717948717948,0.7516778523489933,0.706081081081081,0.7118055555555556,0.7087378640776699,0.6372549019607843,0.5769230769230769,0.48484848484848486,0.625,0.6447368421052632,0.6621621621621622,0.6125,0.578125,0.5714285714285714,0.5285714285714286,0.5925925925925926,0.5833333333333334,0.5833333333333334,0.5645161290322581,0.6212121212121212,0.65625 0.9704081632653061,0.874113475177305,0.8280141843971632,0.8592592592592592,0.8481481481481482,0.8522727272727273,0.8369565217391305,0.872093023255814,0.8925925925925927,0.8617021276595744,0.8,0.7803030303030304,0.813953488372093,0.7624113475177305,0.8222222222222222,0.710144927536232,0.7674418604651163,0.8015873015873017,0.8125,0.78125,0.6388888888888888,0.8125,0.712962962962963,0.7352941176470589,0.7058823529411765,0.8

1 0.8631284916201117 0.9704081632653061 0.800531914893617 0.874113475177305 0.8076923076923077 0.8280141843971632 0.8208092485549133 0.8592592592592592 0.7946428571428571 0.8481481481481482 0.776536312849162 0.8522727272727273 0.7639751552795031 0.8369565217391305 0.7948717948717948 0.872093023255814 0.7516778523489933 0.8925925925925927 0.706081081081081 0.8617021276595744 0.7118055555555556 0.8 0.7087378640776699 0.7803030303030304 0.6372549019607843 0.813953488372093 0.5769230769230769 0.7624113475177305 0.48484848484848486 0.8222222222222222 0.625 0.710144927536232 0.6447368421052632 0.7674418604651163 0.6621621621621622 0.8015873015873017 0.6125 0.8125 0.578125 0.78125 0.5714285714285714 0.6388888888888888 0.5285714285714286 0.8125 0.5925925925925926 0.712962962962963 0.5833333333333334 0.7352941176470589 0.5833333333333334 0.7058823529411765 0.5645161290322581 0.8 0.6212121212121212 0.65625

View File

@ -1 +1 @@
0.918918918918919,0.907563025210084,0.9012875536480687,0.8951219512195122,0.8853658536585366,0.8729729729729729,0.8532608695652174,0.8285714285714286,0.7774390243902439,0.7774566473988439,0.7212121212121212,0.6488095238095238,0.5911949685534591,0.4873417721518987,0.29411764705882354,0.23026315789473684,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 0.78,0.6774193548387096,0.84,0.8260869565217391,0.8076923076923077,0.896551724137931,0.8275862068965517,0.8620689655172413,0.8571428571428571,0.8333333333333334

1 0.918918918918919 0.78 0.907563025210084 0.6774193548387096 0.9012875536480687 0.84 0.8951219512195122 0.8260869565217391 0.8853658536585366 0.8076923076923077 0.8729729729729729 0.896551724137931 0.8532608695652174 0.8275862068965517 0.8285714285714286 0.8620689655172413 0.7774390243902439 0.8571428571428571 0.7774566473988439 0.8333333333333334 0.7212121212121212 0.6488095238095238 0.5911949685534591 0.4873417721518987 0.29411764705882354 0.23026315789473684 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

96
s_r.py Normal file
View File

@ -0,0 +1,96 @@
"""
计算s_r即当轮剩余可用时间总和
输出
json格式
{
"GID": [s_0, s_1, ..., s_n]
}
"""
import json
from island.match import Match
from island.matches import Matches
class Sr:
def __init__(self):
self.details = {}
self.survivals = {}
with open('outputs/survivals_new.json', 'r') as f:
self.survivals = json.load(f)
self.seasons = [
Matches('wos-data-2022-pd')
]
self.results = {}
def get_s_r(self, m: Match, r: int):
"""
获取该轮所有剩余时间
S_r = 存活人数*1440 - 每个成功完成的博弈时间*2
:param m: Match
:param r: Round ID
:returns: s_r
"""
actions = m.query('action', 'done').where(lambda x: x['rno'] == r).raw_data
total_tr = len(self.survivals[m.name][str(r)]) * 1440
for act in actions:
total_tr -= act['tr'] * 2
return total_tr
def calc_season(self, season: Matches):
"""
calc s_r
"""
result = {}
for m in season.data:
game_end_at = int(m.query('game', 'created').first()['info']['game_end_at'])
sr = []
for r in range(1, game_end_at + 1):
sr.append(self.get_s_r(m, r))
result[m.name] = sr
return result
def calc(self):
result = {}
for s in self.seasons:
result.update(self.calc_season(s))
with open('outputs/S_R.json', 'w') as f:
json.dump(result, f)
self.results = result
def save_plot(self, name: str):
if name not in self.results:
print(f'{name} not found')
return
import numpy as np
from matplotlib import pyplot as plt
result = self.results[name]
x = np.arange(1, len(result) + 1)
fig = plt.figure(figsize=(6, 3))
ax = fig.gca()
ax.plot(x, result, 'o--', color='limegreen', linewidth=2, label=r"S_r")
ax.tick_params(labelsize=14)
ax.set_xlim(1, len(result))
ax.set_xticks(x[::2])
ax.set_xlabel("Rounds", size=22)
ax.set_ylabel(r"$S_r$", family='sans-serif', size=22)
plt.legend(numpoints=2, fontsize=14)
plt.tight_layout()
# plt.show()
# plt.savefig("graph/theta_plot.eps")
plt.savefig(f'graph/s_r_{name}.pdf')
if __name__ == '__main__':
e = Sr()
e.calc()
e.save_plot("G646")
e.save_plot("G903")
e.save_plot("G936")
e.save_plot("G933")

View File

@ -22,25 +22,25 @@ import numpy as np
from island.match import Match from island.match import Match
from island.matches import Matches from island.matches import Matches
MAX_ROUND = 28 # game_end_at MAX_ROUND = 28 # game_end_at
class theta_r_i: class theta_r_i:
def __init__(self): def __init__(self):
self.details = {} self.details = {}
self.survivals = {} self.survivals = {}
with open('outputs/survivals_new.json','r') as f: with open('outputs/survivals_new.json', 'r') as f:
self.survivals = json.load(f) self.survivals = json.load(f)
self.neighbors = {} self.neighbors = {}
with open('outputs/neighborhood_new.json', 'r') as f: with open('outputs/neighborhood_new.json', 'r') as f:
self.neighbors = json.load(f) self.neighbors = json.load(f)
self.seasons = [ self.seasons = [
dict(season=Matches('wos-data-2022-1', network_type='BA'), name='NEW_BA'), dict(season=Matches('wos-data-2022-pd', network_type='BA'), name='NEW_BA'),
dict(season=Matches('wos-data-2022-1', network_type='WS'), name='NEW_WS') dict(season=Matches('wos-data-2022-pd', network_type='WS'), name='NEW_WS')
] ]
# self.seasonSurvive = Matches.from_profile('SURVIVE') # self.seasonSurvive = Matches.from_profile('SURVIVE')
# self.seasonClassic = Matches.from_profile('CLASSIC') # self.seasonClassic = Matches.from_profile('CLASSIC')
def getNeighborTR(self, m, r, p, s): def getNeighborTR(self, m, r, p, s):
""" """
获取该玩家所有邻居的剩余时间 获取该玩家所有邻居的剩余时间
@ -51,16 +51,16 @@ class theta_r_i:
:param s: Survivals list(neighborhood) :param s: Survivals list(neighborhood)
:returns: theta_{r}_{i} :returns: theta_{r}_{i}
""" """
actions = m.query('action', 'done')\ actions = m.query('action', 'done') \
.where(lambda x: x['rno'] == r and ((x['a'] in s)or(x['b']in s)))\ .where(lambda x: x['rno'] == r and ((x['a'] in s) or (x['b'] in s))) \
.raw_data .raw_data
def reduce_func(total, item): def reduce_func(total, item):
if item['a'] in s and item['b'] in s: if item['a'] in s and item['b'] in s:
return total + item['tr'] * 2 return total + item['tr'] * 2
return total + item['tr'] return total + item['tr']
return 1440*len(s) - reduce(reduce_func, actions, 0) return 1440 * len(s) - reduce(reduce_func, actions, 0)
def getNeighborhood(self, m, r, p): def getNeighborhood(self, m, r, p):
""" """
@ -76,7 +76,6 @@ class theta_r_i:
return [] return []
return [i for i in self.survivals[m.name][str(r)] if i in self.neighbors[m.name][str(p)]] return [i for i in self.survivals[m.name][str(r)] if i in self.neighbors[m.name][str(p)]]
def calcRoundData(self, m, r): def calcRoundData(self, m, r):
""" """
计算某场比赛某一轮的theta值 计算某场比赛某一轮的theta值
@ -108,15 +107,15 @@ class theta_r_i:
for r in range(1, game_end_at + 1): for r in range(1, game_end_at + 1):
sigma, detail = self.calcRoundData(m, r - 1) sigma, detail = self.calcRoundData(m, r - 1)
d[r] = detail d[r] = detail
avg[r-1] += sigma avg[r - 1] += sigma
cnt[r-1] += len(detail) cnt[r - 1] += len(detail)
cur_game_avg.append(sigma / len(detail)) cur_game_avg.append(sigma / len(detail))
self.details[m.name] = d self.details[m.name] = d
with open(f'outputs/THETA_{m.name}.csv', 'w') as f: with open(f'outputs/THETA_{m.name}.csv', 'w') as f:
csv.writer(f).writerow(cur_game_avg) csv.writer(f).writerow(cur_game_avg)
print(cnt) print(cnt)
for i in range(MAX_ROUND): for i in range(MAX_ROUND):
if cnt[i] == 0: if cnt[i] == 0:
cnt[i] = 1 cnt[i] = 1
avg /= cnt avg /= cnt
with open(f'outputs/THETA_{name}.csv', 'w') as f: with open(f'outputs/THETA_{name}.csv', 'w') as f:
@ -128,7 +127,8 @@ class theta_r_i:
self.calc_season(s['season'], s['name']) self.calc_season(s['season'], s['name'])
with open('outputs/THETA_new_detail.json', 'w') as f: with open('outputs/THETA_new_detail.json', 'w') as f:
json.dump(self.details, f) json.dump(self.details, f)
if __name__ == '__main__': if __name__ == '__main__':
e = theta_r_i() e = theta_r_i()
e.calc() e.calc()

View File

@ -1 +1 @@
{"G1196": [450, 476, 458], "G1214": [496, 561, 460], "G1224": [564, 481, 359], "G1228": [467, 54, 489], "G1230": [408, 480, 463], "G1234": [472, 476, 515]} {"G1196": [450, 476, 458], "G1214": [496, 561, 460], "G1224": [561, 511, 451], "G1228": [460, 463, 555], "G1230": [463, 559, 511], "G1234": [558, 561, 450]}

View File

@ -8,80 +8,68 @@ score = {}
act_set = {'accept_failed', 'request', 'deny'} act_set = {'accept_failed', 'request', 'deny'}
to_print = [359, 502, 413, 512, 460, 451, 473, 511, 489, 255, 342, 481] to_print = [359, 502, 413, 512, 460, 451, 473, 511, 489, 255, 342, 481]
username = {} username = {359: '雷神的小锤子', 502: '囚徒困境', 413: 'luwen', 512: 'Richard', 460: 'CHYK', 451: '海丽可可',
username[359] = '雷神的小锤子' 473: 'fyl', 511: '赵子截江夺阿斗', 489: 'J', 255: 'gly', 342: '陈晓宇', 481: 'Arthur'}
username[502] = '囚徒困境'
username[413] = 'luwen'
username[512] = 'Richard'
username[460] = 'CHYK'
username[451] = '海丽可可'
username[473] = 'fyl'
username[511] = '赵子截江夺阿斗'
username[489] = 'J'
username[255] = 'gly'
username[342] = '陈晓宇'
username[481] = 'Arthur'
G_NAME = dict(G975=1, G1142=2, G1156=3, G1162=4) G_NAME = dict(G975=1, G1142=2, G1156=3, G1162=4)
G=['G975.json','G1142.json','G1156.json','G1162.json'] G = ['G975.json', 'G1142.json', 'G1156.json', 'G1162.json']
for fn in glob.glob("*.json", recursive=False): for fn in glob.glob("*.json", recursive=False):
with open(fn, encoding='utf-8') as f: with open(fn, encoding='utf-8') as f:
data = json.load(f) data = json.load(f)
total_round = int(data[0]['info']['game_end_at']) total_round = int(data[0]['info']['game_end_at'])
uids = {} uids = {}
for r in data[::-1]: for r in data[::-1]:
if r['cat'] == 'game' and r['act'] == 'winner': if r['cat'] == 'game' and r['act'] == 'winner':
for uid in r['data']: for uid in r['data']:
uids[uid] = dict(h=[[] for _ in range(total_round)]) uids[uid] = dict(h=[[] for _ in range(total_round)])
break break
for uid, d in uids.items(): for uid, d in uids.items():
if uid not in winner: if uid not in winner:
winner[uid] = {} winner[uid] = {}
for r in data: for r in data:
if r['cat'] == 'player' and r['act'] == 'join': if r['cat'] == 'player' and r['act'] == 'join':
if r['uid'] in uids: if r['uid'] in uids:
pid2uid[r['pid']] = r['uid'] pid2uid[r['pid']] = r['uid']
winner[r['uid']][fn] = uids[r['uid']] | {'p': r['pid']} winner[r['uid']][fn] = uids[r['uid']] | {'p': r['pid']}
if r['cat'] == 'action': if r['cat'] == 'action':
if r['act'] == 'done': if r['act'] == 'done':
if r['a'] in pid2uid: if r['a'] in pid2uid:
winner[pid2uid[r['a']]][fn]['h'][r['rno']-1].append(r) winner[pid2uid[r['a']]][fn]['h'][r['rno'] - 1].append(r)
elif r['b'] in pid2uid: elif r['b'] in pid2uid:
winner[pid2uid[r['b']]][fn]['h'][r['rno']-1].append(r) winner[pid2uid[r['b']]][fn]['h'][r['rno'] - 1].append(r)
elif r['act'] in act_set: elif r['act'] in act_set:
if r['from'] in pid2uid: if r['from'] in pid2uid:
winner[pid2uid[r['from']]][fn]['h'][r['rno']-1].append(r) winner[pid2uid[r['from']]][fn]['h'][r['rno'] - 1].append(r)
# print(winner.keys()) # print(winner.keys())
symbol = dict(D='🔪',C='🤝') symbol = dict(D='🔪', C='🤝')
ACT_DONE = "%d. TA出了%s,对方%d出了%s,消耗时间资源%d" ACT_DONE = "%d. TA出了%s,对方%d出了%s,消耗时间资源%d"
with open("result.txt", "w", encoding="utf-8") as f: with open("result.txt", "w", encoding="utf-8") as f:
for uid in to_print: for uid in to_print:
if uid not in winner: if uid not in winner:
continue continue
print("\n\n玩家:", username[uid], file=f) print("\n\n玩家:", username[uid], file=f)
for g in G: for g in G:
if g not in winner[uid]: if g not in winner[uid]:
continue continue
data = winner[uid][g] data = winner[uid][g]
print("在第%d场比赛中获胜" % G_NAME[g.split('.')[0]], file=f) print("在第%d场比赛中获胜" % G_NAME[g.split('.')[0]], file=f)
for i, h in enumerate(data['h']): for i, h in enumerate(data['h']):
print("%d轮:" % (i+1), file=f) print("%d轮:" % (i + 1), file=f)
for j, r in enumerate(h): for j, r in enumerate(h):
if r['act'] == 'done': if r['act'] == 'done':
if r['a'] == data['p']: if r['a'] == data['p']:
print(ACT_DONE % (j+1, symbol[r['act_a']], r['b'], symbol[r['act_b']], r['tr']), file=f) print(ACT_DONE % (j + 1, symbol[r['act_a']], r['b'], symbol[r['act_b']], r['tr']), file=f)
else: else:
print(ACT_DONE % (j+1, symbol[r['act_b']], r['a'], symbol[r['act_a']], r['tr']), file=f) print(ACT_DONE % (j + 1, symbol[r['act_b']], r['a'], symbol[r['act_a']], r['tr']), file=f)
elif r['act'] == 'accept_failed': elif r['act'] == 'accept_failed':
print("%d. TA因为时间资源不足不得不拒绝了%d" % (j+1, r['to']), file=f) print("%d. TA因为时间资源不足不得不拒绝了%d" % (j + 1, r['to']), file=f)
elif r['act'] == 'request': elif r['act'] == 'request':
print("%d. TA向%d发出了%s请求,时间资源%d" % (j+1, r['to'], symbol[r['action']], r['tr']), file=f) print("%d. TA向%d发出了%s请求,时间资源%d" % (j + 1, r['to'], symbol[r['action']], r['tr']),
elif r['act'] == 'deny': file=f)
print("%d. TA拒绝了%d的博弈请求。" % (j+1, r['to']), file=f) elif r['act'] == 'deny':
print("%d. TA拒绝了%d的博弈请求。" % (j + 1, r['to']), file=f)

View File

@ -1 +1,4 @@
for l in $(cat u.csv); do IFS=',' read -a data <<< "$l"; psql -t -A -F "," -c '\x' -c "SELECT user_id,username,email,total_wins,total_food,average_food FROM users WHERE LOWER(email)=LOWER('${data[2]}') AND LOWER(username)=LOWER('${data[3]}');" $WOS_DB_CONNECT; done for l in $(cat u.csv); do IFS=',' read -a data <<< "$l"; psql -t -A -F "," -c '\x' -c "SELECT user_id,username,email,total_wins,total_food,average_food FROM users WHERE LOWER(email)=LOWER('${data[2]}') AND LOWER(username)=LOWER('${data[3]}');" $WOS_DB_CONNECT; done
psql -t -A -F "," -c '\x' -c "SELECT user_id,username FROM users;" $WOS_DB_CONNECT > username.csv