testDataContract.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import json
  2. from algorithmContract.contract import LoadAnalysisInput,Analysis
  3. # JSON string representing the data contract
  4. jsonString = '''
  5. {
  6. "dataContractType": {
  7. "type": "analysisExecuteOrder",
  8. "version": "1.2.0"
  9. },
  10. "dataContract": {
  11. "autoOrManual": "automatic",
  12. "dataFilter": {
  13. "powerFarmID": "WOF01000002",
  14. "turbines": null,
  15. "dataBatchNum": "zhaoyuan_20240528",
  16. "beginTime": "2023-01-01 00:00:00",
  17. "endTime": "2024-12-31 23:59:59",
  18. "excludingMonths": [
  19. "2023-12",
  20. "2023-09"
  21. ],
  22. "customFilter": {
  23. "valueWindSpeed": {
  24. "min": 3.0,
  25. "max": 25.0
  26. },
  27. "valuePitchAngle": {
  28. "min": 2,
  29. "max": null
  30. },
  31. "valueActivePower": {
  32. "min": 10,
  33. "max": 2500
  34. },
  35. "valueGeneratorSpeed": {
  36. "min": 10,
  37. "max": 2500
  38. }
  39. }
  40. },
  41. "configAnalysis": [
  42. {
  43. "package": "algorithm.temperatureLargeComponentsAnalyst",
  44. "className": "TemperatureLargeComponentsAnalyst",
  45. "methodName": "executeAnalysis",
  46. "scada": "minute"
  47. }
  48. ],
  49. "graphSets": {
  50. "directDrive": {
  51. "generatorSpeed": {
  52. "step": 5,
  53. "min": 0,
  54. "max": 30
  55. },
  56. "generatorTorque": {
  57. "step": 10000,
  58. "min": 0,
  59. "max": 100000
  60. }
  61. },
  62. "indirectDrive": {
  63. "generatorSpeed": {
  64. "step": 200,
  65. "min": 1000,
  66. "max": 2000
  67. },
  68. "generatorTorque": {
  69. "step": 2000,
  70. "min": 0,
  71. "max": 12000
  72. }
  73. },
  74. "tsr": {
  75. "step": 5,
  76. "min": 0,
  77. "max": 30
  78. },
  79. "pitchAngle": {
  80. "step": 1,
  81. "min": -1,
  82. "max": 20
  83. },
  84. "activePower": {
  85. "step": 250,
  86. "min": 0,
  87. "max": 2000
  88. }
  89. }
  90. }
  91. }
  92. '''
  93. data=LoadAnalysisInput(jsonString)
  94. print(data.dataContract.graphSets["directDrive"]["generatorSpeed"].step)
  95. print(data.dataContract.graphSets["directDrive"]["generatorTorque"].step)
  96. string=Analysis(data)
  97. print(string)