Tutorial for Interpolation of DAS Channel Locations

By Zefeng Li

1. Introduction to DASInterp

This is a short tutorial for a code that I wrote for interpolation of DAS channel locations. Several DAS arrays in earthquake seismology utilize existing telecom optic fiber networks which are sitting in underground pipelines. Although nominal channel spacing is specified when the fibers are transformed into DAS, the exact locations of the channels are largely unknown due to fiber rolling and sagging in pipelines. A handful of channel locations can be known by tap tests (relatively accurate) or other seismological calibration (usually less accurate).

This code uses locations of a few known channels (longitude, latitude, channel number) to interpolate other channels following the fiber spatial track (longitude and latitude). The code takes input of the starting and ending channel locations, and optionally some in-between ones. It divides the fiber with regular spacing between consecutive known channels and performs linear intepolation for every fiber-track segments. The code treats the known-channel locations accurate and maintain their locations after interpolation. Finally, we define Sag Ratio (SR) to evaluate the average interpolation error: (actual spacing - nominal spacing) / nominal spacing.

Now this code has been only tested in the Goldstone DAS array. Use at your own risk. Questions/suggestions are directed to zefengli"at"caltech.edu.

2. Run DASInterp

Package dependencies:

DASInterp is written in Python. It relies on GeoPy to calculate geographic distance. The distances between lon/lat pairs are calculated with the WGS84 reference. A few other common packages, numpy, scipy, matplotlib, are also required.

Prepare input files

First of all, modify the nominal channel spacing (in meter) in the script d_inv. Then prepare the following files:

fiber_track.txt: ASCII file, contains two columns: longitude and latitude.

known_points.txt: ASCII file, contains three columns: longitude, latitude, and channel number. The points should be in ascending channel order. The start point should begin with 0 rather than 1 to indicate the equipment location. Number "1" is used for the first channel, a real measurement point. This file must at least contain two points: the starting and ending points.

Ready to run:

Python DASInterp.py


interp_channel.txt: contains three columns: longitude, latitude, and channel number.

sag_ratio.txt: contains five columns: starting channel, ending channel, average spacing, nominal spacing, sag ratio. Notice negative sag ratio (i.e. average spacing > nominal spacing) suggests some of your known-channel locations are wrong.

map.png: Map of original fiber track (black line), interpolated channels (red plus), and the known-channel points (black dot).

DAS map
Figure: Map of original fiber track (black lines, maybe overlapped), interpolated channels (red pluses), and the known-channel points (black dots).

  Last updated by Zefeng Li at Caltech, Tue Apr 2 10:48:53 PDT 2019