Upload a LAS and work locally in Python
Upload a supported LAS from your computer, grant a colleague explicit access, and use its exact revision in local Python. Workspace stores and shares data; Python runs on your computer. This bounded pilot does not provide hosted computation.
Prerequisites
Section titled “Prerequisites”Your deployment must enable scientific assets and browser-authorized Python access. An administrator grants project membership and compute permissions to the scientists. The uploader needs administrator and compute permissions. Account/provider provisioning remains deployment setup. Use your own identity and a separate Python credential cache.
Upload and give access
Section titled “Upload and give access”- Open your project’s Import data → Upload LAS original and choose a local file.
- Enter its name, source attribution and optional well context notes. These are declarations; the service does not verify them or convert scientific coordinates.
- Select the permitted collaborators and confirm your retention, derivation and sharing rights. This sets an immutable maximum audience, not actual access. Include everyone needed: widening it later requires a new upload in this pilot.
- Choose Upload private LAS. Inspect the exact revision and source curves.
- Under Share original, explicitly grant read and, where needed, reuse.
The exact bytes are retained as a managed original (ophiolite:uploaded). This is
not a live connection to the originating provider, a native-backend import or an OSDU
publication. Existing connection and native-import workflows remain separate. No
server file path, registry edit, distribution JSON or release capture is required.
Read permits inspection/export; reuse also permits a Python input configuration. Project compute permission is still required. Membership alone never shares the file.
Run ordinary scripts
Section titled “Run ordinary scripts”Download the local Python kit. It contains a detailed START-HERE.md, setup/inspection/plot scripts, editable Alice/Bob examples, parameter files, browser login helper and separate prepare/publish helper. No credentials are included. Downloading a script does not execute it.
The recipient opens the asset in Data, chooses Use as Python input, selects its primary curve and output profile, then saves. Download input configuration provides the gateway/project/binding without copying IDs. Keep each role’s configuration and credentials separate. The primary curve does not remove other channels from LAS.
Activate your local Python environment and run:
python check_setup.py original.laspython inspect_logs.py original.laspython plot_raw_logs.py original.las --output raw-review.png --start 4128 --stop 4140The plotting interval is an example for the NLOG NLW-GT-01 fixture; choose a range appropriate to your data. These scripts only read. Follow START-HERE.md to authorize Python in your browser, prepare exact input, run your edited calculation, inspect it, and publish separately. All numerical changes remain deliberate application choices.
Alice’s example derives VP_QC and VS_QC from DTCO/DTSM in us/ft using 304800/value, and copies/masks RHOB_QC explicitly. Bob derives AI in kg/m2/s (density conversion from g/cm3 ×1000) and dimensionless VPVS. The templates refuse unexpected units and preserve original depth and channels; missing values are never replaced by zero. Candidate spikes are not automatically removed. Parameter files begin with empty rejected-row lists. Scientific suitability remains the scientist’s responsibility.
Share the result and reuse it
Section titled “Share the result and reuse it”Publication creates a private, separate asset in Data. Under Data → Results, its author explicitly grants the colleague read/reuse, within the original distribution ceiling. The colleague selects that exact result as the next Python input. Result sharing does not grant access to its parent: restricted ancestry is labelled accordingly. A receipt proves committed publication, not that external code ran as declared.
Recovery and bounds
Section titled “Recovery and bounds”- Empty selector: verify account/project, completed upload and explicit reuse grant.
- Missing dependency or file: run check_setup.py and follow its message.
- Expired login: authorize your own identity again and retry with the same run folder.
- Interrupted upload: retry the same file/details; identical commands recover one asset.
- Conflicting upload retry: start a new upload; never overwrite an existing original.
- Interrupted publication: preserve run checkpoints and retry the same publication.
- Changed code/parameters: prepare a new run folder. Do not reuse frozen output requests.
- Revoked original reuse stops future reads/runs from it, not already retained children or previously exported files. Children still enforce their own grants.
LAS 2/UTF-8, up to8 MiB per upload,64 curves/100,000 rows; two uploads admitted concurrently. Uploads have a128 MiB sub-cap and100/project, within 512 MiB total retained payload. Derived results retain32 MiB/result,100/project and2,100,000-byte publication request limits. Unknown units/reference context stay unknown. No automatic eviction or source write-back. Python 3.12/Linux and 3.14/Mac are the qualification environments.
This is internal pilot qualification. External-user M4 validation is deferred, not passed. Scientific contract and derived-curve publication remain the public read/write contracts; this increment adds onboarding, not a broad SDK or execution service.
