Skip to main content

帮助您建立供应链模型的软件包

项目描述

供应链模型助手

这是一个 python 包,可帮助您创建自己的供应链模型。您不需要关于 python 的复杂知识,您可能需要一些关于图形的知识(基本部分在视频教程中提供)和一些关于一般供应链模型的知识。该软件包还使您有机会存储使该供应链模型以有效方式运行所需的数据。python 包中提供了完整的文档。稍后将在此处链接视频教程,以及要阅读的文档。

0.2.0 版的新功能

我添加了图形包来绘制供应链模型的某些方面。可以在此项目的子文件夹 example_scripts 中找到一个示例。

jupyter 笔记本文件

Jupyter 笔记本教程文件存储在此项目的“example_scripts”子文件夹中。

目前可以找到这些教程:

  • 创建玩具供应链模型(未完成)
  • 使用图形包的教程

以下 jupyter 教程正在开发中:

  • 创建一个简单的供应链模型
  • 用于处理网络上的属性的工具包
  • 数据建模并将其映射到预定义的网络结构
  • 创建一个完整的重力模型
  • 用于供应链建模的 hdf5 数据立方体
  • 供应链模型的数据库元数据模式
  • 处理用于供应链建模的多个数据集
  • 一个不那么简单的示例模型

安装手册

点安装供应链模型助手

示例脚本

在项目文件夹“example_scripts”中,您将找到有关如何实施供应链玩具模型的示例,因此您可以更轻松地开始自己的工作

视频教程

计划了一系列教程,但仍未完成。 https://www.youtube.com/channel/UCtUiAESg7TiTdublRlUhvjw

如果您迫不及待,请参阅下面的初步文档和来自 python 本身的帮助函数的完整文档,以及如何在下面的 python 中获得帮助的说明。

功能

创建网络模型

目的:使用供应链模型中常用的节点属性从用户的规范创建图表。

通过以下方式获取 python 中的完整文档

从 supplchainmodulator 导入图形操作

帮助(去)

获取有关 1 个特定功能的文档

帮助(去。[在此处插入函数名称])

功能

网络基本操作:

  • createGraph - 使用节点属性“actors”、“locations”、“products”创建图形
  • getListOfNodeIDs - 返回具有相应属性的 nodeID 列表,用于编辑图形上的信息
  • getNodeIDswAttr - 返回一个 (nodeIDs,attributes) 的元组和相应的属性,用于编辑图上的信息
  • addAttr2ExistingNodes - 将用户指定的属性添加到网络的节点
  • addAttr2Edges - 将用户指定的属性添加到网络的边缘
  • getEdgeID - 给定网络上用户指定的节点(由 getListOfNodeIDs 给出的 ID),返回图上边的 ID
  • getEdgesAttr - 返回用户指定的边的属性列表(由 getEdgeID 给出的 ID)
  • getEdgeIDswAttr - 返回用户指定的边(由 getEdgeID 给出的 ID)的元组 ((edge ID, attribute) = (node out,node in, attribute))
  • getExistingAttrs - 返回图上现有属性的列表(节点或边)

用于处理网络上的信息和数据的工具包:

  • combineActorBrand - 如果一个演员由不同的子类型组成(例如仓库和品牌(ALDI、REWE 等)),那么这个函数有助于在创建网络之前快速创建额外的演员
  • convertLoT2NTs - 像 getEdgeIDswAttr 这样的函数,返回一个元组列表,但只需要其中的一部分。此函数接受一个元组列表作为输入,并返回 2 个与之前顺序相同的列表。
  • convertTup2LoT - 像 addAttr2ExistingNodes 这样的函数,接受一个元组列表作为输入,但只有一个可用的列表。此函数接受 2 个列表作为输入,并返回一个与之前顺序相同的元组列表。
  • getAllCombinations - getEdgeID 是一个函数,它以相应的节点作为输入,并返回一个直接的 1 对 1 列表(节点输出,节点输入)。如果要返回 2 个节点之间所有可能的边组合,则此函数有助于此。
  • convertMatrix - 2 个应用程序:
    1. 如果校准测量的维度与计算的流量不同,则可能需要校准
    2. 如果需要从具有最少信息的矩阵创建具有冗余信息的矩阵(例如,将节点之间的相似地理距离放入距离矩阵中)

将原始数据对象映射到网络数据对象:

  • proxyModel - 简单分数模型。如果相关变量的数据可用,则该模型可用于使用代理数据对相关数据进行建模(例如,建模数据 = 产蛋,代理数据 = 蛋鸡数量)

  • furnessModel - 给定地理距离,参与节点的供需和自由参数(阻力因子) beta 这个函数返回给定节点之间的流量(beta 需要通过 hymanModel / 校准来确定)

    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在需要产品的节点上定义属性“输入”。
  • hymanModel - 在给定运输距离的情况下计算阻力系数 beta。返回供需参与节点之间的流量。

    • 请注意,每个返回值都是可能的平均运输距离。最好的仍然需要确定(见校准)。
    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在需要产品的节点上定义属性“输入”。
  • 校准- 计算给定运输距离和相应流量的最佳配置的功能。函数 calcPotTransportDistances 给出了许多可能的平均传输距离。函数 hymanModel 计算相应的流量。现在,这需要针对某个度量进行校准,以确定哪个平均传输距离最适合校准度量。此函数接受所有流的 4D 张量作为输入 [供应、需求、产品、运输距离] 和有问题的校准测量。

    • 请注意,每个返回值都是可能的平均运输距离。最好的仍然需要确定(见校准)。
    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在需要产品的节点上定义属性“输入”。
  • getDistMatrix - 访问用户指定节点的属性“距离”图表,返回包含给定节点位置之间地理距离信息的数据框(需要通过函数 addAttr2Edges 预先输入图表)

    • 请注意,需要在参与节点的边缘上定义属性“距离”。
  • optFlow, minOptFlowForBeta - 在给定产品供需和参与节点之间的距离的情况下计算并最小化最优流量。需要计算最小传输距离(请参阅 calcPotTransportDistances)。

    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在参与节点的边缘上定义属性“距离”。
  • propFlow - 计算给定产品供需的比例流量以及参与节点之间的距离。需要计算最大传输距离(请参阅 calcPotTransportDistances)。

    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在参与节点的边缘上定义属性“距离”。
  • calcPotTransportDistances - 计算可能的平均运输距离范围并返回此间隔内的值列表。从这个区间返回值的数量可以由用户指定(需要 hymanModel 来确定 furnessModel 的 beta)。

    • 请注意,每个返回值都是可能的平均运输距离。最好的仍然需要确定(见校准)。
    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在需要产品的节点上定义属性“输入”。
  • getWeightedDist - 给定参与供需节点之间的流量,返回平均运输距离。

    • 请注意,每个返回值都是可能的平均运输距离。最好的仍然需要确定(见校准)。
    • 请注意,需要在参与节点的边缘上定义属性“距离”。
    • 请注意,需要在提供产品的节点上定义属性“输出”。
    • 请注意,需要在需要产品的节点上定义属性“输入”。

为原始数据对象创建 hdf5 文件结构

目的:为原始数据对象创建 hdf5 文件结构,包括有关元数据结构的信息。这是可选的,但强烈推荐。复杂的供应链模型基于复杂的输入数据,因此需要一个易于访问的结构化集中数据平台。

通过以下方式获取 python 中的完整文档

从供应链模型助手导入 mds

帮助(mds)

获取有关 1 个特定功能的文档

帮助(mds.Datacube.[在此处插入函数名称])

函数名称:

  • __init__ - 初始化数据库:创建一个新的 hdf5 文件或访问一个现有的文件

  • add2TemplateMDofDB - 扩展数据库现有的基本元数据模式

  • removeFromTemplateMDofDB - 从数据库的 md 模式中删除现有元素

  • add2TemplateMDofDataset - 扩展现有文件夹的现有基本元数据模式

  • removeElementTemplateDataSetMD - 删除数据集 md 模式的元素

  • addFolder2ExistingDB - 将文件夹添加到数据库,包括。基于当前元数据模式的元数据信息列表

  • removeFolder - 从数据库中删除现有文件夹

  • addDataSet2ExistingFolder - 将数据集添加到现有文件夹,包括。基于当前元数据模式的元数据信息列表

  • getDataFrameFromFolder - 从数据库中的特定文件夹获取现有数据集

  • removeDatasetFromFolder - 从数据库中的现有文件夹中删除现有数据集

  • getMDFromDataSet - 获取有关数据库中现有数据集的元数据信息

  • getMDFromFolder - 获取有关数据库中现有文件夹的元数据信息

  • getMDfrom_db - 获取有关数据库的元数据信息

  • editMDofDataset - 如果用户更改数据集的元数据模式,则需要使用数据库中的每个数据集进行更新。此功能对此有所帮助。

  • editMDofDB - 如果用户更改数据库的元数据模式,新条目需要填充内容。此功能对此有所帮助。

  • exportTemplateMDSchemaofDB2CSV - 将数据库的当前元数据模式存储为模板 csv 文件,以供以后导入

  • exportTemplateMDSchemaofDataset2CSV - 将文件夹的当前元数据模式存储为模板 csv 文件,以供以后导入

  • importMDDataofDatasetFromCSV - 使用文件夹的当前元数据模式导入 csv 文件并填写有关包含数据集的元数据信息

  • importMDDataofDBfromCSV - 导入具有数据库当前元数据模式的 csv 文件并填写有关包含数据集的元数据信息

进一步支持用户的各种功能

  • importDataFromFolder - 如果用户已经有一个特定规格的数据文件夹

从供应链模型助手导入数据处理为 dh

帮助(dh.importDataFromFolder)

此功能可用于创建 hdf5 数据库而无需花费太多精力。这样一来,原始数据的完整文件夹就可以导入 hdf5 数据库。请注意,此功能仍处于测试阶段,需要进一步更新。

  • decBSList - 如果给出字符串或字节串列表,此函数返回字符串列表。无需检查某个字符串是否是其中一个,只需将其应用于您的列表即可。

  • decBS - 如果给出一个字符串或字节串,这个函数返回一个字符串。无需检查某个字符串是否是其中一个,只需将其应用于您的列表即可。

还要做

  • 检查蔬菜的代理​​模型 = 与 FoodFlow 中的鸡蛋相同/相似?
  • 视频教程:
    • 图形操作
    • 数据立方体
    • 数据处理
    • 为 FoodFlow 做什么
    • 将图形导出到 hdf5 和 graphml
  • 可以通过公共属性(相交?)过滤/链接 2 个 LoT
  • 使用映射到图形的距离矩阵的概念检查活动边缘的最小化仍然是可能的
  • 获取给定节点ID列表的所有内容
  • 在创建图 str 应该被接受(目前仅列出)
  • 检查节点/边的获取属性是否始终在元组中
  • 在元组中添加属性

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

supplychainmodelhelper-0.2.7.ta​​r.gz (60.4 kB 查看哈希

已上传 source

内置分布

supplychainmodelhelper-0.2.7-py3-none-any.whl (60.2 kB 查看哈希

已上传 py3