在 activity 中更改生产交换
Change production exchange in an activity
我们如何用 activity 中已经存在的技术圈交换替换 activity 中的生产交换?
在 activity act
中,我尝试通过删除现有的生产交换 existing_prod_exc
然后使用 new_prod_exc=act.new_exchange(input=act.key,output=act.key,type='production')
创建一个新的生产交换来做到这一点,但我没有'知道如何将现有交易所techno_exc
的所有交易所特征"copy"转化为new_prod_exc
.
谢谢你的帮助。
可以通过多种方式更改交换类型;您可以直接编辑 SQLite 数据库中的 type
列,或使用 ExchangeDataset
对象,但我猜您想使用主界面。在这种情况下,更改交换类型很容易:
some_exc = next(iter(some_activity.technosphere()))
some_exc['type'] = 'production'
some_exc.save()
回想一下,输入和输出之间的唯一区别是 sign of the value in the technosphere matrix;因此,您可以通过将交换金额的符号乘以 -1 来完成同样的事情。
我猜你还想删除现有的生产交换(你应该先这样做,原因很明显!):
for exc in some_activity.production():
exc.delete()
与任何破坏性操作一样,最好先在实际数据的副本上进行尝试;您可以使用 projects.copy_project()
快速创建一个测试项目。
您可以直接更改您感兴趣的交易所并保存:
exc_to_become_production['type'] = 'production'
exc_to_become_production['input'] = exc_to_become_production['output']
exc_to_become_production.save()
这样做将导致两次生产交换。然后,您可以根据需要删除现有的生产交换。
我们如何用 activity 中已经存在的技术圈交换替换 activity 中的生产交换?
在 activity act
中,我尝试通过删除现有的生产交换 existing_prod_exc
然后使用 new_prod_exc=act.new_exchange(input=act.key,output=act.key,type='production')
创建一个新的生产交换来做到这一点,但我没有'知道如何将现有交易所techno_exc
的所有交易所特征"copy"转化为new_prod_exc
.
谢谢你的帮助。
可以通过多种方式更改交换类型;您可以直接编辑 SQLite 数据库中的 type
列,或使用 ExchangeDataset
对象,但我猜您想使用主界面。在这种情况下,更改交换类型很容易:
some_exc = next(iter(some_activity.technosphere()))
some_exc['type'] = 'production'
some_exc.save()
回想一下,输入和输出之间的唯一区别是 sign of the value in the technosphere matrix;因此,您可以通过将交换金额的符号乘以 -1 来完成同样的事情。
我猜你还想删除现有的生产交换(你应该先这样做,原因很明显!):
for exc in some_activity.production():
exc.delete()
与任何破坏性操作一样,最好先在实际数据的副本上进行尝试;您可以使用 projects.copy_project()
快速创建一个测试项目。
您可以直接更改您感兴趣的交易所并保存:
exc_to_become_production['type'] = 'production'
exc_to_become_production['input'] = exc_to_become_production['output']
exc_to_become_production.save()
这样做将导致两次生产交换。然后,您可以根据需要删除现有的生产交换。