3a4f72d8830b43cc8665d1bc78f.../README.md
2025-08-19 15:02:51 +00:00

85 lines
3.1 KiB
Markdown

# Add soil resistivity report
Soil resistivity reports
Soil resistivity is a critical parameter in the design of CP systems because:
- It affects current distribution from the anode to the pipe.
- Low resistivity soils (e.g., wet clays) are more conductive and easier to protect pipelines
in.
- High resistivity soils (e.g., dry sand, rock) require more power or more anodes to achieve
protection.
Testing soil resistivity (typically via the Wenner 4-pin method) helps determine:
- CP system design and layout
- Anode type, spacing, and depth
- Expected current requirement and life of anodes
## Input
### Arguments
- `org_id`: as string which should be a valid `uuid` for the organization
- `project_id`: the id of the data project where the pipeline data is found
- `pipeline_id`: an `array` of `strings` which should be valid UUIDs for pipelines
- `inspection_date`: a `string` formatted as an ISO date representing the date of the soil resistivity report
- `starting_point`: a `float` representing the log distance of the starting point of the soil type
- `ending_point`: a `float` representing the log distance of the end point of the soil type
- `soil_type`: a `string` the soil type for the current section of the pipeline possible values
- `clay`
- `sand`
- `silt`
- `resistivity`: a `float` representing the recorded value of the soil's electrical resistivity at this point and time
- `soil_temperature`: a `float` representing the recorded value of the soil temperature at this point and time
- `cp_practice`: a `string` the cathode protection for this section of the pipeline.
- `no_cp`: No cathode protection
- `no_cp_adjacent_risk`: No cathode protection with risk of stray current from adjacent structure
- `cp_outside`: Cathode protection outside of NACE regulation
- `cp_on`: Cathode protection inline with NACE instance on regulation
- `cp_off`: Cathode protection inline with NACE instance off regulation
- `coating_repair_schedule`: a `string` coating repair schedule
- `repaired_or_regularly_replaced`: Coating regularly repaired or replaced
- `never_or_rarely_replaced`: Coating never or rarely replaced
- `inspector`: a `string` representing the identifier of the inspector
- `remarks`: a `string` for any additional remarks about the inspection
## Creating the function on the platform
To create this function on the platform using the `cli` set up the port forwarding as shown in README.
Then run the following command to create the function.
```bash
cargo run functions create \
-f functions/soil_resistivity \
-d "Add a soil resistivity report" \
-i org_id=string \
-i project_id=string \
-i pipeline_id=array \
-i inspection_date=string \
-i starting_point=float \
-i ending_point=float \
-i soil_type=string \
-i resistivity=float \
-i soil_temperature=float \
-i cp_practice=string \
-i coating_repair_schedule=string \
-i inspector=string \
-i remarks=string
```
## Testing the function locally
You can run and test the function locally by running
```bash
cargo run
```
Then you can check it work with `curl` as follows
```bash
jq '. | tojson' functions/soil_resistivity/example_input.json | curl -d '@-' localhost:8080
```